
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* DWARF original name: __insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,
   std::vector<gold::Input_section_info> >,
   __gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter> > */

void std::
     __insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>
               (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>
                __first,__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>
                        __last,_Iter_comp_iter<gold::Input_section_sorter> __comp)

{
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *__src;
  size_type sVar1;
  size_type *psVar2;
  undefined4 uVar3;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar4;
  bool bVar5;
  size_t sVar6;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar7;
  pointer pcVar8;
  int iVar9;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar10;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar11;
  Input_section_info *local_78;
  int local_70;
  Input_section_sorter local_64;
  value_type __val;
  
  if ((__first._M_current != __last._M_current) && (__last._M_current != __first._M_current + 1)) {
    paVar11 = &__first._M_current[1].section_name_.field_2;
    __src = &__val.section_name_.field_2;
    do {
      bVar5 = gold::Input_section_sorter::operator()
                        (&__comp._M_comp,(Input_section_info *)(paVar11 + 0xfffffffe),
                         __first._M_current);
      if (bVar5) {
        __val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity;
        __val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c);
        __val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18);
        __val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14);
        __val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff);
        __val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc);
        __val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p;
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)__val.section_name_._M_dataplus._M_p == paVar11) {
          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;
          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);
          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);
          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);
          __val.section_name_._M_dataplus._M_p = (pointer)__src;
        }
        else {
          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;
        }
        __val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14);
        __val.size_._0_4_ = paVar11[1]._M_allocated_capacity;
        (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11;
        __val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4);
        iVar9 = (int)(paVar11 + 0xfffffffe) - (int)__first._M_current;
        paVar11->_M_local_buf[0] = '\0';
        __val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c);
        __val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18);
        local_70 = iVar9 >> 6;
        *(size_type *)((int)paVar11 + -4) = 0;
        paVar7 = paVar11;
        paVar4 = paVar11;
        if (0 < iVar9) {
          do {
            paVar10 = paVar4 + -4;
            paVar4[-2]._M_allocated_capacity = paVar4[-6]._M_allocated_capacity;
            *(undefined4 *)((int)paVar4 + -0x1c) = *(undefined4 *)((int)paVar4 + -0x5c);
            *(undefined4 *)((int)paVar4 + -0x18) = *(undefined4 *)((int)paVar4 + -0x58);
            *(undefined4 *)((int)paVar4 + -0x14) = *(undefined4 *)((int)paVar4 + -0x54);
            paVar4[-1]._M_allocated_capacity = paVar4[-5]._M_allocated_capacity;
            *(undefined4 *)((int)paVar4 + -0xc) = *(undefined4 *)((int)paVar4 + -0x4c);
            psVar2 = *(size_type **)((int)paVar4 + -0x48);
            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                 *)psVar2 == paVar10) {
              sVar6 = *(size_t *)((int)paVar4 + -0x44);
              if (sVar6 != 0) {
                if (sVar6 == 1) {
                  paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];
                  sVar6 = *(size_t *)((int)paVar4 + -0x44);
                }
                else {
                  memcpy(paVar7,paVar10,sVar6);
                  sVar6 = *(size_t *)((int)paVar4 + -0x44);
                }
              }
              pcVar8 = (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;
              *(size_t *)((int)paVar4 + -4) = sVar6;
              pcVar8[sVar6] = '\0';
            }
            else {
              if (paVar7 == paVar4) {
                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;
                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);
                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;
              }
              else {
                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;
                sVar1 = paVar4->_M_allocated_capacity;
                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);
                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;
                if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                               *)0x0) {
                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                    **)((int)paVar4 + -0x48) = paVar7;
                  paVar10->_M_allocated_capacity = sVar1;
                  goto LAB_00339b09;
                }
              }
              *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                **)((int)paVar4 + -0x48) = paVar10;
            }
LAB_00339b09:
            *(undefined4 *)((int)paVar4 + -0x44) = 0;
            **(undefined1 **)((int)paVar4 + -0x48) = 0;
            paVar4[1]._M_allocated_capacity = paVar4[-3]._M_allocated_capacity;
            *(undefined4 *)((int)paVar4 + 0x14) = *(undefined4 *)((int)paVar4 + -0x2c);
            *(undefined4 *)((int)paVar4 + 0x18) = *(undefined4 *)((int)paVar4 + -0x28);
            *(undefined4 *)((int)paVar4 + 0x1c) = *(undefined4 *)((int)paVar4 + -0x24);
            local_70 = local_70 + -1;
            if (local_70 == 0) break;
            paVar7 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                       **)((int)paVar4 + -0x48);
            paVar4 = paVar10;
          } while( true );
        }
        ((__first._M_current)->input_section_).shndx_ = __val.input_section_.shndx_;
        ((__first._M_current)->input_section_).p2align_ = __val.input_section_.p2align_;
        *(undefined4 *)&((__first._M_current)->input_section_).u1_ =
             __val.input_section_.u1_.data_size._0_4_;
        *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =
             __val.input_section_.u1_.data_size._4_4_;
        ((__first._M_current)->input_section_).u2_ = __val.input_section_.u2_;
        ((__first._M_current)->input_section_).section_order_index_ =
             __val.input_section_.section_order_index_;
        pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)__val.section_name_._M_dataplus._M_p == __src) {
          if (__val.section_name_._M_string_length != 0) {
            if (__val.section_name_._M_string_length == 1) {
              *pcVar8 = __val.section_name_.field_2._M_local_buf[0];
              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;
            }
            else {
              memcpy(pcVar8,__src,__val.section_name_._M_string_length);
              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;
            }
          }
          ((__first._M_current)->section_name_)._M_string_length =
               __val.section_name_._M_string_length;
          pcVar8[__val.section_name_._M_string_length] = '\0';
          uVar3 = __val.section_name_.field_2._M_allocated_capacity;
        }
        else {
          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
               *)pcVar8 == &((__first._M_current)->section_name_).field_2) {
            ((__first._M_current)->section_name_)._M_dataplus._M_p =
                 __val.section_name_._M_dataplus._M_p;
            ((__first._M_current)->section_name_)._M_string_length =
                 __val.section_name_._M_string_length;
            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =
                 __val.section_name_.field_2._M_allocated_capacity;
          }
          else {
            uVar3 = ((__first._M_current)->section_name_).field_2._M_allocated_capacity;
            ((__first._M_current)->section_name_)._M_dataplus._M_p =
                 __val.section_name_._M_dataplus._M_p;
            ((__first._M_current)->section_name_)._M_string_length =
                 __val.section_name_._M_string_length;
            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =
                 __val.section_name_.field_2._M_allocated_capacity;
            __val.section_name_._M_dataplus._M_p = pcVar8;
            if (pcVar8 != (pointer)0x0) goto LAB_00339c3f;
          }
          __val.section_name_._M_dataplus._M_p = (pointer)__src;
          uVar3 = __val.section_name_.field_2._M_allocated_capacity;
        }
LAB_00339c3f:
        __val.section_name_.field_2._M_allocated_capacity = uVar3;
        __val.section_name_._M_string_length = 0;
        *__val.section_name_._M_dataplus._M_p = '\0';
        *(size_type *)&(__first._M_current)->size_ = (size_type)__val.size_;
        *(size_type *)((int)&(__first._M_current)->size_ + 4) = __val.size_._4_4_;
        *(size_type *)&(__first._M_current)->addralign_ = (size_type)__val.addralign_;
        *(size_type *)((int)&(__first._M_current)->addralign_ + 4) = __val.addralign_._4_4_;
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)__val.section_name_._M_dataplus._M_p != __src) {
          operator_delete(__val.section_name_._M_dataplus._M_p);
        }
      }
      else {
        local_64.section_sort_ = __comp._M_comp.section_sort_;
        __val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity;
        local_64.filename_sort_ = __comp._M_comp.filename_sort_;
        __val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c);
        __val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18);
        __val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14);
        __val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff);
        __val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc);
        __val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p;
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)__val.section_name_._M_dataplus._M_p == paVar11) {
          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;
          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);
          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);
          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);
          __val.section_name_._M_dataplus._M_p = (pointer)__src;
        }
        else {
          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;
        }
        __val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4);
        __val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14);
        (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11;
        *(size_type *)((int)paVar11 + -4) = 0;
        __val.size_._0_4_ = paVar11[1]._M_allocated_capacity;
        __val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c);
        __val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18);
        paVar11->_M_local_buf[0] = '\0';
        paVar4 = paVar11;
        while( true ) {
          paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                     *)(&paVar4->_M_allocated_capacity + -0x10);
                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */
          bVar5 = gold::Input_section_sorter::operator()
                            (&local_64,&__val,
                             (Input_section_info *)(&paVar4->_M_allocated_capacity + -0x18));
          paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                    *)(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;
          if (!bVar5) break;
          (&paVar4->_M_allocated_capacity)[-8] = (&paVar4->_M_allocated_capacity)[-0x18];
          (&paVar4->_M_allocated_capacity)[-7] = (&paVar4->_M_allocated_capacity)[-0x17];
          (&paVar4->_M_allocated_capacity)[-6] = (&paVar4->_M_allocated_capacity)[-0x16];
          (&paVar4->_M_allocated_capacity)[-5] = (&paVar4->_M_allocated_capacity)[-0x15];
          (&paVar4->_M_allocated_capacity)[-4] = (&paVar4->_M_allocated_capacity)[-0x14];
          (&paVar4->_M_allocated_capacity)[-3] = (&paVar4->_M_allocated_capacity)[-0x13];
          psVar2 = (size_type *)(&paVar4->_M_allocated_capacity)[-0x12];
          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
               *)psVar2 == paVar10) {
            sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];
            if (sVar6 != 0) {
              if (sVar6 == 1) {
                paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];
                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];
                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                          *)(&paVar4->_M_allocated_capacity)[-2];
              }
              else {
                memcpy(paVar7,paVar10,sVar6);
                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];
                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                          *)(&paVar4->_M_allocated_capacity)[-2];
              }
            }
            (&paVar4->_M_allocated_capacity)[-1] = sVar6;
            paVar7->_M_local_buf[sVar6] = '\0';
            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                      *)(&paVar4->_M_allocated_capacity)[-0x12];
          }
          else {
            if (paVar4 == paVar7) {
              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;
              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];
              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;
            }
            else {
              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;
              sVar1 = paVar4->_M_allocated_capacity;
              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];
              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;
              if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                             *)0x0) {
                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                  **)((int)paVar4 + -0x48) = paVar7;
                paVar10->_M_allocated_capacity = sVar1;
                goto LAB_0033989e;
              }
            }
            *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
              **)((int)paVar4 + -0x48) = paVar10;
            paVar7 = paVar10;
          }
LAB_0033989e:
          (&paVar4->_M_allocated_capacity)[-0x11] = 0;
          paVar7->_M_local_buf[0] = '\0';
          (&paVar4->_M_allocated_capacity)[4] = (&paVar4->_M_allocated_capacity)[-0xc];
          (&paVar4->_M_allocated_capacity)[5] = (&paVar4->_M_allocated_capacity)[-0xb];
          (&paVar4->_M_allocated_capacity)[6] = (&paVar4->_M_allocated_capacity)[-10];
          (&paVar4->_M_allocated_capacity)[7] = (&paVar4->_M_allocated_capacity)[-9];
          paVar4 = paVar10;
        }
        (&paVar4->_M_allocated_capacity)[-8] = __val.input_section_.shndx_;
        (&paVar4->_M_allocated_capacity)[-7] = __val.input_section_.p2align_;
        (&paVar4->_M_allocated_capacity)[-6] = __val.input_section_.u1_.data_size._0_4_;
        (&paVar4->_M_allocated_capacity)[-5] = __val.input_section_.u1_.data_size._4_4_;
        *(anon_union_4_4_139239c7_for_u2_ *)(&paVar4->_M_allocated_capacity + -4) =
             __val.input_section_.u2_;
        (&paVar4->_M_allocated_capacity)[-3] = __val.input_section_.section_order_index_;
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)__val.section_name_._M_dataplus._M_p == __src) {
          if (__val.section_name_._M_string_length != 0) {
            if (__val.section_name_._M_string_length == 1) {
              paVar7->_M_local_buf[0] = __val.section_name_.field_2._M_local_buf[0];
              (&paVar4->_M_allocated_capacity)[-1] = 1;
              *(undefined1 *)((&paVar4->_M_allocated_capacity)[-2] + 1) = 0;
              uVar3 = __val.section_name_.field_2._M_allocated_capacity;
              goto LAB_003399e3;
            }
            memcpy(paVar7,__src,__val.section_name_._M_string_length);
            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                      *)(&paVar4->_M_allocated_capacity)[-2];
          }
          (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;
          paVar7->_M_local_buf[__val.section_name_._M_string_length] = '\0';
          uVar3 = __val.section_name_.field_2._M_allocated_capacity;
        }
        else {
          if (paVar4 == paVar7) {
            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;
            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;
            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;
          }
          else {
            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;
            uVar3 = paVar4->_M_allocated_capacity;
            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;
            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;
            __val.section_name_._M_dataplus._M_p = (pointer)paVar7;
            if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                           *)0x0) goto LAB_003399e3;
          }
          __val.section_name_._M_dataplus._M_p = (pointer)__src;
          uVar3 = __val.section_name_.field_2._M_allocated_capacity;
        }
LAB_003399e3:
        __val.section_name_.field_2._M_allocated_capacity = uVar3;
        __val.section_name_._M_string_length = 0;
        *__val.section_name_._M_dataplus._M_p = '\0';
        (&paVar4->_M_allocated_capacity)[4] = (size_type)__val.size_;
        (&paVar4->_M_allocated_capacity)[5] = __val.size_._4_4_;
        (&paVar4->_M_allocated_capacity)[6] = (size_type)__val.addralign_;
        (&paVar4->_M_allocated_capacity)[7] = __val.addralign_._4_4_;
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)__val.section_name_._M_dataplus._M_p != __src) {
          operator_delete(__val.section_name_._M_dataplus._M_p);
        }
      }
      local_78 = (Input_section_info *)(paVar11 + 2);
      paVar11 = paVar11 + 4;
    } while (__last._M_current != local_78);
  }
  return;
}



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

void FUN_00339780(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4)

{
  undefined4 uVar1;
  char cVar2;
  size_t sVar3;
  undefined4 *puVar4;
  undefined4 *puVar5;
  int iVar6;
  undefined4 *puVar7;
  undefined4 *puVar8;
  undefined4 *puVar9;
  undefined4 *local_78;
  int local_70;
  undefined4 local_64;
  undefined4 local_60;
  undefined4 local_5c;
  undefined4 local_58;
  undefined4 local_54;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  undefined4 *local_44;
  size_t local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  undefined4 local_20;
  
  if ((param_1 != param_2) && (param_2 != param_1 + 0x10)) {
    puVar9 = param_1 + 0x18;
    do {
      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);
      local_44 = &local_3c;
      if (cVar2 == '\0') {
        local_60 = param_4;
        local_5c = puVar9[-8];
        local_64 = param_3;
        local_58 = puVar9[-7];
        local_54 = puVar9[-6];
        local_50 = puVar9[-5];
        local_4c = puVar9[-4];
        local_48 = puVar9[-3];
        if ((undefined4 *)puVar9[-2] == puVar9) {
          local_3c = *puVar9;
          local_38 = puVar9[1];
          local_34 = puVar9[2];
          local_30 = puVar9[3];
        }
        else {
          local_3c = *puVar9;
          local_44 = (undefined4 *)puVar9[-2];
        }
        local_40 = puVar9[-1];
        local_28 = puVar9[5];
        puVar9[-2] = puVar9;
        puVar9[-1] = 0;
        local_2c = puVar9[4];
        local_20 = puVar9[7];
        local_24 = puVar9[6];
        *(undefined1 *)puVar9 = 0;
        puVar5 = puVar9;
        while( true ) {
          puVar7 = puVar5 + -0x10;
                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */
          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);
          puVar4 = (undefined4 *)puVar5[-2];
          if (cVar2 == '\0') break;
          puVar5[-8] = puVar5[-0x18];
          puVar5[-7] = puVar5[-0x17];
          puVar5[-6] = puVar5[-0x16];
          puVar5[-5] = puVar5[-0x15];
          puVar5[-4] = puVar5[-0x14];
          puVar5[-3] = puVar5[-0x13];
          puVar8 = (undefined4 *)puVar5[-0x12];
          if (puVar8 == puVar7) {
            sVar3 = puVar5[-0x11];
            if (sVar3 != 0) {
              if (sVar3 == 1) {
                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;
                sVar3 = puVar5[-0x11];
                puVar4 = (undefined4 *)puVar5[-2];
              }
              else {
                memcpy(puVar4,puVar7,sVar3);
                sVar3 = puVar5[-0x11];
                puVar4 = (undefined4 *)puVar5[-2];
              }
            }
            puVar5[-1] = sVar3;
            *(undefined1 *)((int)puVar4 + sVar3) = 0;
            puVar4 = (undefined4 *)puVar5[-0x12];
          }
          else {
            if (puVar5 == puVar4) {
              puVar5[-2] = puVar8;
              puVar5[-1] = puVar5[-0x11];
              *puVar5 = *puVar7;
            }
            else {
              puVar5[-2] = puVar8;
              uVar1 = *puVar5;
              puVar5[-1] = puVar5[-0x11];
              *puVar5 = *puVar7;
              if (puVar4 != (undefined4 *)0x0) {
                puVar5[-0x12] = puVar4;
                *puVar7 = uVar1;
                goto LAB_0033989e;
              }
            }
            puVar5[-0x12] = puVar7;
            puVar4 = puVar7;
          }
LAB_0033989e:
          puVar5[-0x11] = 0;
          *(undefined1 *)puVar4 = 0;
          puVar5[4] = puVar5[-0xc];
          puVar5[5] = puVar5[-0xb];
          puVar5[6] = puVar5[-10];
          puVar5[7] = puVar5[-9];
          puVar5 = puVar7;
        }
        puVar5[-8] = local_5c;
        puVar5[-7] = local_58;
        puVar5[-6] = local_54;
        puVar5[-5] = local_50;
        puVar5[-4] = local_4c;
        puVar5[-3] = local_48;
        if (local_44 == &local_3c) {
          if (local_40 != 0) {
            if (local_40 == 1) {
              *(undefined1 *)puVar4 = (undefined1)local_3c;
              puVar5[-1] = 1;
              *(undefined1 *)(puVar5[-2] + 1) = 0;
              uVar1 = local_3c;
              goto LAB_003399e3;
            }
            memcpy(puVar4,&local_3c,local_40);
            puVar4 = (undefined4 *)puVar5[-2];
          }
          puVar5[-1] = local_40;
          *(undefined1 *)((int)puVar4 + local_40) = 0;
          uVar1 = local_3c;
        }
        else {
          if (puVar5 == puVar4) {
            puVar5[-2] = local_44;
            puVar5[-1] = local_40;
            *puVar5 = local_3c;
          }
          else {
            puVar5[-1] = local_40;
            uVar1 = *puVar5;
            puVar5[-2] = local_44;
            *puVar5 = local_3c;
            local_44 = puVar4;
            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;
          }
          local_44 = &local_3c;
          uVar1 = local_3c;
        }
LAB_003399e3:
        local_3c = uVar1;
        local_40 = 0;
        *(undefined1 *)local_44 = 0;
        puVar5[4] = local_2c;
        puVar5[5] = local_28;
        puVar5[6] = local_24;
        puVar5[7] = local_20;
        if (local_44 != &local_3c) {
          FUN_003ae080(local_44);
        }
      }
      else {
        local_5c = puVar9[-8];
        local_58 = puVar9[-7];
        local_54 = puVar9[-6];
        local_50 = puVar9[-5];
        local_4c = puVar9[-4];
        local_48 = puVar9[-3];
        if ((undefined4 *)puVar9[-2] == puVar9) {
          local_3c = *puVar9;
          local_38 = puVar9[1];
          local_34 = puVar9[2];
          local_30 = puVar9[3];
        }
        else {
          local_3c = *puVar9;
          local_44 = (undefined4 *)puVar9[-2];
        }
        local_28 = puVar9[5];
        local_2c = puVar9[4];
        puVar9[-2] = puVar9;
        local_40 = puVar9[-1];
        iVar6 = (int)(puVar9 + -8) - (int)param_1;
        *(undefined1 *)puVar9 = 0;
        local_20 = puVar9[7];
        local_24 = puVar9[6];
        local_70 = iVar6 >> 6;
        puVar9[-1] = 0;
        puVar4 = puVar9;
        puVar5 = puVar9;
        if (0 < iVar6) {
          do {
            puVar8 = puVar5 + -0x10;
            puVar5[-8] = puVar5[-0x18];
            puVar5[-7] = puVar5[-0x17];
            puVar5[-6] = puVar5[-0x16];
            puVar5[-5] = puVar5[-0x15];
            puVar5[-4] = puVar5[-0x14];
            puVar5[-3] = puVar5[-0x13];
            puVar7 = (undefined4 *)puVar5[-0x12];
            if (puVar7 == puVar8) {
              sVar3 = puVar5[-0x11];
              if (sVar3 != 0) {
                if (sVar3 == 1) {
                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;
                  sVar3 = puVar5[-0x11];
                }
                else {
                  memcpy(puVar4,puVar8,sVar3);
                  sVar3 = puVar5[-0x11];
                }
              }
              puVar5[-1] = sVar3;
              *(undefined1 *)(puVar5[-2] + sVar3) = 0;
            }
            else {
              if (puVar4 == puVar5) {
                puVar5[-2] = puVar7;
                puVar5[-1] = puVar5[-0x11];
                *puVar5 = *puVar8;
              }
              else {
                puVar5[-2] = puVar7;
                uVar1 = *puVar5;
                puVar5[-1] = puVar5[-0x11];
                *puVar5 = *puVar8;
                if (puVar4 != (undefined4 *)0x0) {
                  puVar5[-0x12] = puVar4;
                  *puVar8 = uVar1;
                  goto LAB_00339b09;
                }
              }
              puVar5[-0x12] = puVar8;
            }
LAB_00339b09:
            puVar5[-0x11] = 0;
            *(undefined1 *)puVar5[-0x12] = 0;
            puVar5[4] = puVar5[-0xc];
            puVar5[5] = puVar5[-0xb];
            puVar5[6] = puVar5[-10];
            puVar5[7] = puVar5[-9];
            local_70 = local_70 + -1;
            if (local_70 == 0) break;
            puVar4 = (undefined4 *)puVar5[-0x12];
            puVar5 = puVar8;
          } while( true );
        }
        *param_1 = local_5c;
        param_1[1] = local_58;
        param_1[2] = local_54;
        param_1[3] = local_50;
        param_1[4] = local_4c;
        param_1[5] = local_48;
        puVar5 = (undefined4 *)param_1[6];
        if (local_44 == &local_3c) {
          if (local_40 != 0) {
            if (local_40 == 1) {
              *(undefined1 *)puVar5 = (undefined1)local_3c;
              puVar5 = (undefined4 *)param_1[6];
            }
            else {
              memcpy(puVar5,&local_3c,local_40);
              puVar5 = (undefined4 *)param_1[6];
            }
          }
          param_1[7] = local_40;
          *(undefined1 *)((int)puVar5 + local_40) = 0;
          uVar1 = local_3c;
        }
        else {
          if (puVar5 == param_1 + 8) {
            param_1[6] = local_44;
            param_1[7] = local_40;
            param_1[8] = local_3c;
          }
          else {
            uVar1 = param_1[8];
            param_1[6] = local_44;
            param_1[7] = local_40;
            param_1[8] = local_3c;
            local_44 = puVar5;
            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;
          }
          local_44 = &local_3c;
          uVar1 = local_3c;
        }
LAB_00339c3f:
        local_3c = uVar1;
        local_40 = 0;
        *(undefined1 *)local_44 = 0;
        param_1[0xc] = local_2c;
        param_1[0xd] = local_28;
        param_1[0xe] = local_24;
        param_1[0xf] = local_20;
        if (local_44 != &local_3c) {
          FUN_003ae080(local_44);
        }
      }
      local_78 = puVar9 + 8;
      puVar9 = puVar9 + 0x10;
    } while (param_2 != local_78);
  }
  return;
}


CALL 0x00074f02
ADD EAX,0x2b087b
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x7c
MOV dword ptr [EBP + -0x7c],EAX
MOV EAX,dword ptr [EBP + 0xc]
CMP dword ptr [EBP + 0x8],EAX
JZ 0x00339a34
MOV EAX,dword ptr [EBP + 0x8]
ADD EAX,0x40
CMP dword ptr [EBP + 0xc],EAX
JZ 0x00339a34
MOV EAX,dword ptr [EBP + 0x8]
LEA EDI,[EAX + 0x60]
LEA EAX,[EBP + 0x10]
MOV dword ptr [EBP + -0x80],EAX
LEA EAX,[EBP + -0x38]
MOV dword ptr [EBP + -0x70],EAX
MOV dword ptr [EBP + 0xffffff7c],EAX
MOV dword ptr [EBP + 0xffffff78],EAX
NOP
SUB ESP,0x4
LEA EBX,[EDI + -0x20]
PUSH dword ptr [EBP + 0x8]
PUSH EBX
PUSH dword ptr [EBP + -0x80]
CALL 0x00330fc0
MOV dword ptr [EBP + -0x6c],EDI
ADD ESP,0x10
TEST AL,AL
JNZ 0x00339a50
MOV EAX,dword ptr [EBP + 0x14]
MOV EDX,dword ptr [EBP + 0x10]
MOV dword ptr [EBP + -0x5c],EAX
MOV EAX,dword ptr [EDI + -0x20]
MOV dword ptr [EBP + -0x60],EDX
MOV dword ptr [EBP + -0x58],EAX
MOV EAX,dword ptr [EDI + -0x1c]
MOV dword ptr [EBP + -0x54],EAX
MOV EAX,dword ptr [EDI + -0x18]
MOV dword ptr [EBP + -0x50],EAX
MOV EAX,dword ptr [EDI + -0x14]
MOV dword ptr [EBP + -0x4c],EAX
MOV EAX,dword ptr [EDI + -0x10]
MOV dword ptr [EBP + -0x48],EAX
MOV EAX,dword ptr [EDI + -0xc]
MOV dword ptr [EBP + -0x44],EAX
MOV EAX,dword ptr [EBP + -0x70]
MOV dword ptr [EBP + -0x40],EAX
MOV EAX,dword ptr [EDI + -0x8]
CMP EAX,EDI
JZ 0x00339cf0
MOV dword ptr [EBP + -0x40],EAX
MOV EAX,dword ptr [EDI]
MOV dword ptr [EBP + -0x38],EAX
MOV EAX,dword ptr [EDI + -0x4]
MOV EDX,dword ptr [EDI + 0x14]
MOV dword ptr [EDI + -0x8],EDI
LEA ESI,[EDI + -0x40]
MOV dword ptr [EDI + -0x4],0x0
MOV dword ptr [EBP + -0x3c],EAX
MOV EAX,dword ptr [EDI + 0x10]
MOV dword ptr [EBP + -0x24],EDX
MOV EDX,dword ptr [EDI + 0x1c]
MOV dword ptr [EBP + -0x28],EAX
MOV EAX,dword ptr [EDI + 0x18]
MOV byte ptr [EDI],0x0
MOV dword ptr [EBP + -0x20],EAX
LEA EAX,[EBP + -0x58]
MOV dword ptr [EBP + -0x78],EAX
LEA EAX,[EBP + -0x60]
MOV dword ptr [EBP + -0x1c],EDX
MOV dword ptr [EBP + -0x74],EAX
JMP 0x003398cf
CMP ECX,EDX
JZ 0x00339960
MOV dword ptr [ESI + 0x38],EAX
MOV EAX,dword ptr [ESI + -0x4]
MOV ECX,dword ptr [ESI + 0x40]
MOV dword ptr [ESI + 0x3c],EAX
MOV EAX,dword ptr [ESI]
MOV dword ptr [ESI + 0x40],EAX
TEST EDX,EDX
JZ 0x0033996e
MOV dword ptr [ESI + -0x8],EDX
MOV dword ptr [ESI],ECX
MOV dword ptr [ESI + -0x4],0x0
SUB ESI,0x40
MOV byte ptr [EDX],0x0
MOV EAX,dword ptr [ESI + 0x50]
MOV EDX,dword ptr [ESI + 0x54]
MOV dword ptr [ESI + 0x90],EAX
MOV EAX,dword ptr [ESI + 0x58]
MOV dword ptr [ESI + 0x94],EDX
MOV EDX,dword ptr [ESI + 0x5c]
MOV dword ptr [ESI + 0x98],EAX
MOV dword ptr [ESI + 0x9c],EDX
LEA EAX,[ESI + 0x20]
SUB ESP,0x4
MOV dword ptr [EBP + -0x6c],EAX
LEA EAX,[ESI + -0x20]
PUSH EAX
PUSH dword ptr [EBP + -0x78]
PUSH dword ptr [EBP + -0x74]
CALL 0x00330fc0
ADD ESP,0x10
MOV EDX,dword ptr [ESI + 0x38]
LEA ECX,[ESI + 0x40]
TEST AL,AL
JZ 0x00339980
MOV EAX,dword ptr [ESI + -0x20]
MOV dword ptr [ESI + 0x20],EAX
MOV EAX,dword ptr [ESI + -0x1c]
MOV dword ptr [ESI + 0x24],EAX
MOV EAX,dword ptr [ESI + -0x18]
MOV dword ptr [ESI + 0x28],EAX
MOV EAX,dword ptr [ESI + -0x14]
MOV dword ptr [ESI + 0x2c],EAX
MOV EAX,dword ptr [ESI + -0x10]
MOV dword ptr [ESI + 0x30],EAX
MOV EAX,dword ptr [ESI + -0xc]
MOV dword ptr [ESI + 0x34],EAX
MOV EAX,dword ptr [ESI + -0x8]
CMP EAX,ESI
JNZ 0x00339878
MOV EAX,dword ptr [ESI + -0x4]
TEST EAX,EAX
JZ 0x00339950
CMP EAX,0x1
JZ 0x00339a40
SUB ESP,0x4
MOV EBX,dword ptr [EBP + -0x7c]
PUSH EAX
PUSH ESI
PUSH EDX
CALL 0x000392d0
MOV EAX,dword ptr [ESI + -0x4]
MOV EDX,dword ptr [ESI + 0x38]
ADD ESP,0x10
NOP
MOV dword ptr [ESI + 0x3c],EAX
MOV byte ptr [EDX + EAX*0x1],0x0
MOV EDX,dword ptr [ESI + -0x8]
JMP 0x0033989e
MOV dword ptr [ESI + 0x38],EAX
MOV EAX,dword ptr [ESI + -0x4]
MOV dword ptr [ESI + 0x3c],EAX
MOV EAX,dword ptr [ESI]
MOV dword ptr [ESI + 0x40],EAX
MOV dword ptr [ESI + -0x8],ESI
MOV EDX,ESI
JMP 0x0033989e
MOV EBX,dword ptr [EBP + -0x6c]
MOV EAX,dword ptr [EBP + -0x58]
MOV ESI,dword ptr [EBP + -0x40]
MOV dword ptr [EBX],EAX
MOV EAX,dword ptr [EBP + -0x54]
MOV dword ptr [EBX + 0x4],EAX
MOV EAX,dword ptr [EBP + -0x50]
MOV dword ptr [EBX + 0x8],EAX
MOV EAX,dword ptr [EBP + -0x4c]
MOV dword ptr [EBX + 0xc],EAX
MOV EAX,dword ptr [EBP + -0x48]
MOV dword ptr [EBX + 0x10],EAX
MOV EAX,dword ptr [EBP + -0x44]
MOV dword ptr [EBX + 0x14],EAX
MOV EAX,dword ptr [EBP + -0x3c]
CMP ESI,dword ptr [EBP + -0x70]
JZ 0x00339c88
MOV EBX,dword ptr [EBP + -0x38]
CMP ECX,EDX
MOV ECX,dword ptr [EBP + -0x6c]
MOV dword ptr [EBP + -0x74],EBX
JZ 0x00339cc8
MOV dword ptr [ECX + 0x1c],EAX
MOV EAX,dword ptr [EBP + -0x74]
MOV EBX,dword ptr [ECX + 0x20]
MOV dword ptr [ECX + 0x18],ESI
MOV dword ptr [ECX + 0x20],EAX
TEST EDX,EDX
JZ 0x00339cd1
MOV dword ptr [EBP + -0x40],EDX
MOV dword ptr [EBP + -0x38],EBX
MOV ECX,dword ptr [EBP + -0x6c]
MOV dword ptr [EBP + -0x3c],0x0
MOV byte ptr [EDX],0x0
MOV EAX,dword ptr [EBP + -0x28]
MOV EDX,dword ptr [EBP + -0x24]
MOV dword ptr [ECX + 0x30],EAX
MOV EAX,dword ptr [EBP + -0x20]
MOV dword ptr [ECX + 0x34],EDX
MOV EDX,dword ptr [EBP + -0x1c]
MOV dword ptr [ECX + 0x38],EAX
MOV EAX,dword ptr [EBP + -0x40]
MOV dword ptr [ECX + 0x3c],EDX
CMP EAX,dword ptr [EBP + -0x70]
JZ 0x00339a1f
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x7c]
PUSH EAX
CALL 0x003ae080
ADD ESP,0x10
LEA EAX,[EDI + 0x20]
MOV dword ptr [EBP + -0x74],EAX
ADD EDI,0x40
MOV EAX,dword ptr [EBP + -0x74]
CMP dword ptr [EBP + 0xc],EAX
JNZ 0x003397d0
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOVZX EAX,byte ptr [ESI]
MOV byte ptr [EDX],AL
MOV EAX,dword ptr [ESI + -0x4]
MOV EDX,dword ptr [ESI + 0x38]
JMP 0x00339950
MOV EAX,dword ptr [EDI + -0x20]
MOV dword ptr [EBP + -0x58],EAX
MOV EAX,dword ptr [EDI + -0x1c]
MOV dword ptr [EBP + -0x54],EAX
MOV EAX,dword ptr [EDI + -0x18]
MOV dword ptr [EBP + -0x50],EAX
MOV EAX,dword ptr [EDI + -0x14]
MOV dword ptr [EBP + -0x4c],EAX
MOV EAX,dword ptr [EDI + -0x10]
MOV dword ptr [EBP + -0x48],EAX
MOV EAX,dword ptr [EDI + -0xc]
MOV dword ptr [EBP + -0x44],EAX
MOV EAX,dword ptr [EBP + -0x70]
MOV dword ptr [EBP + -0x40],EAX
MOV EAX,dword ptr [EDI + -0x8]
CMP EAX,EDI
JZ 0x00339db8
MOV dword ptr [EBP + -0x40],EAX
MOV EAX,dword ptr [EDI]
MOV dword ptr [EBP + -0x38],EAX
MOV ECX,dword ptr [EDI + 0x14]
MOV EDX,dword ptr [EDI + 0x10]
MOV dword ptr [EDI + -0x8],EDI
MOV EAX,dword ptr [EDI + -0x4]
SUB EBX,dword ptr [EBP + 0x8]
MOV byte ptr [EDI],0x0
MOV dword ptr [EBP + -0x24],ECX
MOV ECX,dword ptr [EDI + 0x1c]
MOV dword ptr [EBP + -0x28],EDX
MOV EDX,dword ptr [EDI + 0x18]
MOV dword ptr [EBP + -0x1c],ECX
LEA ECX,[EDI + 0x20]
MOV dword ptr [EBP + -0x74],ECX
MOV ECX,EBX
MOV dword ptr [EBP + -0x3c],EAX
SAR ECX,0x6
MOV dword ptr [EDI + -0x4],0x0
MOV dword ptr [EBP + -0x20],EDX
TEST EBX,EBX
JLE 0x00339bd3
LEA ESI,[EDI + -0x40]
MOV dword ptr [EBP + -0x6c],ECX
MOV EDX,EDI
JMP 0x00339b4a
LEA ECX,[ESI + 0x40]
CMP EDX,ECX
JZ 0x00339bb0
MOV dword ptr [ESI + 0x38],EAX
MOV EAX,dword ptr [ESI + -0x4]
MOV ECX,dword ptr [ESI + 0x40]
MOV dword ptr [ESI + 0x3c],EAX
MOV EAX,dword ptr [ESI]
MOV dword ptr [ESI + 0x40],EAX
TEST EDX,EDX
JZ 0x00339bbe
MOV dword ptr [ESI + -0x8],EDX
MOV dword ptr [ESI],ECX
MOV EAX,dword ptr [ESI + -0x8]
MOV dword ptr [ESI + -0x4],0x0
SUB ESI,0x40
MOV byte ptr [EAX],0x0
MOV EAX,dword ptr [ESI + 0x50]
MOV EDX,dword ptr [ESI + 0x54]
MOV dword ptr [ESI + 0x90],EAX
MOV EAX,dword ptr [ESI + 0x58]
MOV dword ptr [ESI + 0x94],EDX
MOV EDX,dword ptr [ESI + 0x5c]
MOV dword ptr [ESI + 0x98],EAX
MOV dword ptr [ESI + 0x9c],EDX
SUB dword ptr [EBP + -0x6c],0x1
JZ 0x00339bd0
MOV EDX,dword ptr [ESI + 0x38]
MOV EAX,dword ptr [ESI + -0x20]
MOV dword ptr [ESI + 0x20],EAX
MOV EAX,dword ptr [ESI + -0x1c]
MOV dword ptr [ESI + 0x24],EAX
MOV EAX,dword ptr [ESI + -0x18]
MOV dword ptr [ESI + 0x28],EAX
MOV EAX,dword ptr [ESI + -0x14]
MOV dword ptr [ESI + 0x2c],EAX
MOV EAX,dword ptr [ESI + -0x10]
MOV dword ptr [ESI + 0x30],EAX
MOV EAX,dword ptr [ESI + -0xc]
MOV dword ptr [ESI + 0x34],EAX
MOV EAX,dword ptr [ESI + -0x8]
CMP EAX,ESI
JNZ 0x00339ae0
MOV EAX,dword ptr [ESI + -0x4]
TEST EAX,EAX
JZ 0x00339ba0
CMP EAX,0x1
JZ 0x00339d10
SUB ESP,0x4
MOV EBX,dword ptr [EBP + -0x7c]
PUSH EAX
PUSH ESI
PUSH EDX
CALL 0x000392d0
MOV EAX,dword ptr [ESI + -0x4]
ADD ESP,0x10
LEA ESI,[ESI]
MOV EDX,dword ptr [ESI + 0x38]
MOV dword ptr [ESI + 0x3c],EAX
MOV byte ptr [EDX + EAX*0x1],0x0
JMP 0x00339b09
MOV dword ptr [ESI + 0x38],EAX
MOV EAX,dword ptr [ESI + -0x4]
MOV dword ptr [ESI + 0x3c],EAX
MOV EAX,dword ptr [ESI]
MOV dword ptr [ESI + 0x40],EAX
MOV dword ptr [ESI + -0x8],ESI
JMP 0x00339b09
MOV EAX,dword ptr [EBP + -0x3c]
MOV EBX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EBP + -0x58]
MOV ECX,dword ptr [EBP + -0x40]
MOV dword ptr [EBX],EDX
MOV EDX,dword ptr [EBP + -0x54]
MOV dword ptr [EBX + 0x4],EDX
MOV EDX,dword ptr [EBP + -0x50]
MOV dword ptr [EBX + 0x8],EDX
MOV EDX,dword ptr [EBP + -0x4c]
MOV dword ptr [EBX + 0xc],EDX
MOV EDX,dword ptr [EBP + -0x48]
MOV dword ptr [EBX + 0x10],EDX
MOV EDX,dword ptr [EBP + -0x44]
MOV dword ptr [EBX + 0x14],EDX
MOV EDX,dword ptr [EBX + 0x18]
CMP ECX,dword ptr [EBP + -0x70]
JZ 0x00339d20
MOV EBX,dword ptr [EBP + 0x8]
MOV ESI,dword ptr [EBP + -0x38]
ADD EBX,0x20
CMP EDX,EBX
MOV EBX,dword ptr [EBP + 0x8]
JZ 0x00339d90
MOV EBX,dword ptr [EBX + 0x20]
MOV dword ptr [EBP + -0x6c],EBX
MOV EBX,dword ptr [EBP + 0x8]
MOV dword ptr [EBX + 0x18],ECX
MOV dword ptr [EBX + 0x1c],EAX
MOV dword ptr [EBX + 0x20],ESI
TEST EDX,EDX
JZ 0x00339d99
MOV EAX,dword ptr [EBP + -0x6c]
MOV dword ptr [EBP + -0x40],EDX
MOV dword ptr [EBP + -0x38],EAX
MOV ECX,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x3c],0x0
MOV byte ptr [EDX],0x0
MOV EAX,dword ptr [EBP + -0x28]
MOV EDX,dword ptr [EBP + -0x24]
MOV dword ptr [ECX + 0x30],EAX
MOV EAX,dword ptr [EBP + -0x20]
MOV dword ptr [ECX + 0x34],EDX
MOV EDX,dword ptr [EBP + -0x1c]
MOV dword ptr [ECX + 0x38],EAX
MOV EAX,dword ptr [EBP + -0x40]
MOV dword ptr [ECX + 0x3c],EDX
CMP EAX,dword ptr [EBP + -0x70]
JZ 0x00339a25
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x7c]
PUSH EAX
CALL 0x003ae080
ADD ESP,0x10
JMP 0x00339a25
TEST EAX,EAX
JZ 0x00339cb1
CMP EAX,0x1
JZ 0x00339d68
SUB ESP,0x4
MOV EBX,dword ptr [EBP + -0x7c]
PUSH EAX
PUSH dword ptr [EBP + -0x70]
PUSH EDX
CALL 0x000392d0
MOV EBX,dword ptr [EBP + -0x6c]
MOV EAX,dword ptr [EBP + -0x3c]
ADD ESP,0x10
MOV EDX,dword ptr [EBX + 0x18]
MOV ECX,dword ptr [EBP + -0x6c]
MOV dword ptr [ECX + 0x1c],EAX
MOV byte ptr [EDX + EAX*0x1],0x0
MOV EDX,dword ptr [EBP + -0x40]
JMP 0x003399e3
MOV dword ptr [ECX + 0x18],ESI
MOV dword ptr [ECX + 0x1c],EAX
MOV dword ptr [ECX + 0x20],EBX
MOV EAX,dword ptr [EBP + -0x70]
MOV EDX,dword ptr [EBP + 0xffffff78]
MOV dword ptr [EBP + -0x40],EAX
MOV EAX,dword ptr [EBP + 0xffffff7c]
MOV dword ptr [EBP + -0x70],EAX
JMP 0x003399e3
MOV EBX,dword ptr [EBP + -0x70]
MOV EAX,dword ptr [EDI]
MOV dword ptr [EBX],EAX
MOV EAX,dword ptr [EDI + 0x4]
MOV dword ptr [EBX + 0x4],EAX
MOV EAX,dword ptr [EDI + 0x8]
MOV dword ptr [EBX + 0x8],EAX
MOV EAX,dword ptr [EDI + 0xc]
MOV dword ptr [EBX + 0xc],EAX
JMP 0x00339839
MOVZX EAX,byte ptr [ESI]
MOV byte ptr [EDX],AL
MOV EAX,dword ptr [ESI + -0x4]
JMP 0x00339ba0
TEST EAX,EAX
JZ 0x00339d50
CMP EAX,0x1
JZ 0x00339dd6
SUB ESP,0x4
MOV EBX,dword ptr [EBP + -0x7c]
PUSH EAX
PUSH dword ptr [EBP + -0x70]
PUSH EDX
CALL 0x000392d0
MOV EBX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EBP + -0x3c]
ADD ESP,0x10
MOV EDX,dword ptr [EBX + 0x18]
LEA ESI,[ESI]
MOV EBX,dword ptr [EBP + 0x8]
MOV dword ptr [EBX + 0x1c],EAX
MOV byte ptr [EDX + EAX*0x1],0x0
MOV EDX,dword ptr [EBP + -0x40]
JMP 0x00339c3f
MOVZX EAX,byte ptr [EBP + -0x38]
MOV ECX,dword ptr [EBP + -0x6c]
MOV byte ptr [EDX],AL
MOV EDX,dword ptr [EBX + 0x18]
MOV EAX,dword ptr [EBP + -0x3c]
MOV dword ptr [ECX + 0x1c],EAX
MOV byte ptr [EDX + EAX*0x1],0x0
MOV EDX,dword ptr [EBP + -0x40]
JMP 0x003399e3
MOV dword ptr [EBX + 0x18],ECX
MOV dword ptr [EBX + 0x1c],EAX
MOV dword ptr [EBX + 0x20],ESI
MOV EAX,dword ptr [EBP + -0x70]
MOV EDX,dword ptr [EBP + 0xffffff78]
MOV dword ptr [EBP + -0x40],EAX
MOV EAX,dword ptr [EBP + 0xffffff7c]
MOV dword ptr [EBP + -0x70],EAX
JMP 0x00339c3f
MOV ECX,dword ptr [EBP + -0x70]
MOV EAX,dword ptr [EDI]
MOV dword ptr [ECX],EAX
MOV EAX,dword ptr [EDI + 0x4]
MOV dword ptr [ECX + 0x4],EAX
MOV EAX,dword ptr [EDI + 0x8]
MOV dword ptr [ECX + 0x8],EAX
MOV EAX,dword ptr [EDI + 0xc]
MOV dword ptr [ECX + 0xc],EAX
JMP 0x00339a8d
MOVZX EAX,byte ptr [EBP + -0x38]
MOV byte ptr [EDX],AL
MOV EAX,dword ptr [EBP + -0x3c]
MOV EDX,dword ptr [EBX + 0x18]
JMP 0x00339d50
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_00339780(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  undefined4 uVar1;\n  char cVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  undefined4 *local_78;\n  int local_70;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 *local_44;\n  size_t local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  if ((param_1 != param_2) && (param_2 != param_1 + 0x10)) {\n    puVar9 = param_1 + 0x18;\n    do {\n      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);\n      local_44 = &local_3c;\n      if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      local_78 = puVar9 + 8;\n      puVar9 = puVar9 + 0x10;\n    } while (param_2 != local_78);\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_00339780(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  undefined4 uVar1;\n  char cVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  undefined4 *local_78;\n  int local_70;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 *local_44;\n  size_t local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  if ((param_1 != param_2) && (param_2 != param_1 + 0x10)) {\n    puVar9 = param_1 + 0x18;\n    do {\n      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);\n      local_44 = &local_3c;\n      if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      local_78 = puVar9 + 8;\n      puVar9 = puVar9 + 0x10;\n    } while (param_2 != local_78);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00339780(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4)" identifier (parameter_list "(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 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 "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  char cVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  undefined4 *local_78;\n  int local_70;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 *local_44;\n  size_t local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  if ((param_1 != param_2) && (param_2 != param_1 + 0x10)) {\n    puVar9 = param_1 + 0x18;\n    do {\n      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);\n      local_44 = &local_3c;\n      if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      local_78 = puVar9 + 8;\n      puVar9 = puVar9 + 0x10;\n    } while (param_2 != local_78);\n  }\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "size_t local_40;" primitive_type identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (if_statement "if ((param_1 != param_2) && (param_2 != param_1 + 0x10)) {\n    puVar9 = param_1 + 0x18;\n    do {\n      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);\n      local_44 = &local_3c;\n      if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      local_78 = puVar9 + 8;\n      puVar9 = puVar9 + 0x10;\n    } while (param_2 != local_78);\n  }" if (parenthesized_expression "((param_1 != param_2) && (param_2 != param_1 + 0x10))" ( (binary_expression "(param_1 != param_2) && (param_2 != param_1 + 0x10)" (parenthesized_expression "(param_1 != param_2)" ( (binary_expression "param_1 != param_2" identifier != identifier) )) && (parenthesized_expression "(param_2 != param_1 + 0x10)" ( (binary_expression "param_2 != param_1 + 0x10" identifier != (binary_expression "param_1 + 0x10" identifier + number_literal)) ))) )) (compound_statement "{\n    puVar9 = param_1 + 0x18;\n    do {\n      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);\n      local_44 = &local_3c;\n      if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      local_78 = puVar9 + 8;\n      puVar9 = puVar9 + 0x10;\n    } while (param_2 != local_78);\n  }" { (expression_statement "puVar9 = param_1 + 0x18;" (assignment_expression "puVar9 = param_1 + 0x18" identifier = (binary_expression "param_1 + 0x18" identifier + number_literal)) ;) (do_statement "do {\n      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);\n      local_44 = &local_3c;\n      if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      local_78 = puVar9 + 8;\n      puVar9 = puVar9 + 0x10;\n    } while (param_2 != local_78);" do (compound_statement "{\n      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);\n      local_44 = &local_3c;\n      if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      local_78 = puVar9 + 8;\n      puVar9 = puVar9 + 0x10;\n    }" { (expression_statement "cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);" (assignment_expression "cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1)" identifier = (call_expression "FUN_00330fc0(&param_3,puVar9 + -8,param_1)" identifier (argument_list "(&param_3,puVar9 + -8,param_1)" ( (pointer_expression "&param_3" & identifier) , (binary_expression "puVar9 + -8" identifier + number_literal) , identifier )))) ;) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (if_statement "if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }" { (expression_statement "local_60 = param_4;" (assignment_expression "local_60 = param_4" identifier = identifier) ;) (expression_statement "local_5c = puVar9[-8];" (assignment_expression "local_5c = puVar9[-8]" identifier = (subscript_expression "puVar9[-8]" identifier [ number_literal ])) ;) (expression_statement "local_64 = param_3;" (assignment_expression "local_64 = param_3" identifier = identifier) ;) (expression_statement "local_58 = puVar9[-7];" (assignment_expression "local_58 = puVar9[-7]" identifier = (subscript_expression "puVar9[-7]" identifier [ number_literal ])) ;) (expression_statement "local_54 = puVar9[-6];" (assignment_expression "local_54 = puVar9[-6]" identifier = (subscript_expression "puVar9[-6]" identifier [ number_literal ])) ;) (expression_statement "local_50 = puVar9[-5];" (assignment_expression "local_50 = puVar9[-5]" identifier = (subscript_expression "puVar9[-5]" identifier [ number_literal ])) ;) (expression_statement "local_4c = puVar9[-4];" (assignment_expression "local_4c = puVar9[-4]" identifier = (subscript_expression "puVar9[-4]" identifier [ number_literal ])) ;) (expression_statement "local_48 = puVar9[-3];" (assignment_expression "local_48 = puVar9[-3]" identifier = (subscript_expression "puVar9[-3]" identifier [ number_literal ])) ;) (if_statement "if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }" if (parenthesized_expression "((undefined4 *)puVar9[-2] == puVar9)" ( (binary_expression "(undefined4 *)puVar9[-2] == puVar9" (cast_expression "(undefined4 *)puVar9[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[-2]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }" { (expression_statement "local_3c = *puVar9;" (assignment_expression "local_3c = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "local_38 = puVar9[1];" (assignment_expression "local_38 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "local_34 = puVar9[2];" (assignment_expression "local_34 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "local_30 = puVar9[3];" (assignment_expression "local_30 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }" else (compound_statement "{\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }" { (expression_statement "local_3c = *puVar9;" (assignment_expression "local_3c = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "local_44 = (undefined4 *)puVar9[-2];" (assignment_expression "local_44 = (undefined4 *)puVar9[-2]" identifier = (cast_expression "(undefined4 *)puVar9[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[-2]" identifier [ number_literal ]))) ;) }))) (expression_statement "local_40 = puVar9[-1];" (assignment_expression "local_40 = puVar9[-1]" identifier = (subscript_expression "puVar9[-1]" identifier [ number_literal ])) ;) (expression_statement "local_28 = puVar9[5];" (assignment_expression "local_28 = puVar9[5]" identifier = (subscript_expression "puVar9[5]" identifier [ number_literal ])) ;) (expression_statement "puVar9[-2] = puVar9;" (assignment_expression "puVar9[-2] = puVar9" (subscript_expression "puVar9[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[-1] = 0;" (assignment_expression "puVar9[-1] = 0" (subscript_expression "puVar9[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_2c = puVar9[4];" (assignment_expression "local_2c = puVar9[4]" identifier = (subscript_expression "puVar9[4]" identifier [ number_literal ])) ;) (expression_statement "local_20 = puVar9[7];" (assignment_expression "local_20 = puVar9[7]" identifier = (subscript_expression "puVar9[7]" identifier [ number_literal ])) ;) (expression_statement "local_24 = puVar9[6];" (assignment_expression "local_24 = puVar9[6]" identifier = (subscript_expression "puVar9[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)puVar9 = 0;" (assignment_expression "*(undefined1 *)puVar9 = 0" (pointer_expression "*(undefined1 *)puVar9" * (cast_expression "(undefined1 *)puVar9" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar5 = puVar9;" (assignment_expression "puVar5 = puVar9" identifier = identifier) ;) (while_statement "while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          puVar7 = puVar5 + -0x10;\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }" { (expression_statement "puVar7 = puVar5 + -0x10;" (assignment_expression "puVar7 = puVar5 + -0x10" identifier = (binary_expression "puVar5 + -0x10" identifier + number_literal)) ;) comment (expression_statement "cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);" (assignment_expression "cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18)" identifier = (call_expression "FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18)" identifier (argument_list "(&local_64,&local_5c,puVar5 + -0x18)" ( (pointer_expression "&local_64" & identifier) , (pointer_expression "&local_5c" & identifier) , (binary_expression "puVar5 + -0x18" identifier + number_literal) )))) ;) (expression_statement "puVar4 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar4 = (undefined4 *)puVar5[-2]" identifier = (cast_expression "(undefined4 *)puVar5[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[-2]" identifier [ number_literal ]))) ;) (if_statement "if (cVar2 == '\0') break;" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "puVar5[-8] = puVar5[-0x18];" (assignment_expression "puVar5[-8] = puVar5[-0x18]" (subscript_expression "puVar5[-8]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x18]" identifier [ number_literal ])) ;) (expression_statement "puVar5[-7] = puVar5[-0x17];" (assignment_expression "puVar5[-7] = puVar5[-0x17]" (subscript_expression "puVar5[-7]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x17]" identifier [ number_literal ])) ;) (expression_statement "puVar5[-6] = puVar5[-0x16];" (assignment_expression "puVar5[-6] = puVar5[-0x16]" (subscript_expression "puVar5[-6]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x16]" identifier [ number_literal ])) ;) (expression_statement "puVar5[-5] = puVar5[-0x15];" (assignment_expression "puVar5[-5] = puVar5[-0x15]" (subscript_expression "puVar5[-5]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x15]" identifier [ number_literal ])) ;) (expression_statement "puVar5[-4] = puVar5[-0x14];" (assignment_expression "puVar5[-4] = puVar5[-0x14]" (subscript_expression "puVar5[-4]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x14]" identifier [ number_literal ])) ;) (expression_statement "puVar5[-3] = puVar5[-0x13];" (assignment_expression "puVar5[-3] = puVar5[-0x13]" (subscript_expression "puVar5[-3]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x13]" identifier [ number_literal ])) ;) (expression_statement "puVar8 = (undefined4 *)puVar5[-0x12];" (assignment_expression "puVar8 = (undefined4 *)puVar5[-0x12]" identifier = (cast_expression "(undefined4 *)puVar5[-0x12]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[-0x12]" identifier [ number_literal ]))) ;) (if_statement "if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }" if (parenthesized_expression "(puVar8 == puVar7)" ( (binary_expression "puVar8 == puVar7" identifier == identifier) )) (compound_statement "{\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }" { (expression_statement "sVar3 = puVar5[-0x11];" (assignment_expression "sVar3 = puVar5[-0x11]" identifier = (subscript_expression "puVar5[-0x11]" identifier [ number_literal ])) ;) (if_statement "if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }" if (parenthesized_expression "(sVar3 != 0)" ( (binary_expression "sVar3 != 0" identifier != number_literal) )) (compound_statement "{\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }" { (if_statement "if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }" if (parenthesized_expression "(sVar3 == 1)" ( (binary_expression "sVar3 == 1" identifier == number_literal) )) (compound_statement "{\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }" { (expression_statement "*(undefined1 *)puVar4 = *(undefined1 *)puVar7;" (assignment_expression "*(undefined1 *)puVar4 = *(undefined1 *)puVar7" (pointer_expression "*(undefined1 *)puVar4" * (cast_expression "(undefined1 *)puVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)puVar7" * (cast_expression "(undefined1 *)puVar7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "sVar3 = puVar5[-0x11];" (assignment_expression "sVar3 = puVar5[-0x11]" identifier = (subscript_expression "puVar5[-0x11]" identifier [ number_literal ])) ;) (expression_statement "puVar4 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar4 = (undefined4 *)puVar5[-2]" identifier = (cast_expression "(undefined4 *)puVar5[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[-2]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }" else (compound_statement "{\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }" { (expression_statement "memcpy(puVar4,puVar7,sVar3);" (call_expression "memcpy(puVar4,puVar7,sVar3)" identifier (argument_list "(puVar4,puVar7,sVar3)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar3 = puVar5[-0x11];" (assignment_expression "sVar3 = puVar5[-0x11]" identifier = (subscript_expression "puVar5[-0x11]" identifier [ number_literal ])) ;) (expression_statement "puVar4 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar4 = (undefined4 *)puVar5[-2]" identifier = (cast_expression "(undefined4 *)puVar5[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[-2]" identifier [ number_literal ]))) ;) }))) })) (expression_statement "puVar5[-1] = sVar3;" (assignment_expression "puVar5[-1] = sVar3" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar4 + sVar3) = 0;" (assignment_expression "*(undefined1 *)((int)puVar4 + sVar3) = 0" (pointer_expression "*(undefined1 *)((int)puVar4 + sVar3)" * (cast_expression "(undefined1 *)((int)puVar4 + sVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + sVar3)" ( (binary_expression "(int)puVar4 + sVar3" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "puVar4 = (undefined4 *)puVar5[-0x12];" (assignment_expression "puVar4 = (undefined4 *)puVar5[-0x12]" identifier = (cast_expression "(undefined4 *)puVar5[-0x12]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[-0x12]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }" else (compound_statement "{\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }" { (if_statement "if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }" if (parenthesized_expression "(puVar5 == puVar4)" ( (binary_expression "puVar5 == puVar4" identifier == identifier) )) (compound_statement "{\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }" { (expression_statement "puVar5[-2] = puVar8;" (assignment_expression "puVar5[-2] = puVar8" (subscript_expression "puVar5[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[-1] = puVar5[-0x11];" (assignment_expression "puVar5[-1] = puVar5[-0x11]" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x11]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar7;" (assignment_expression "*puVar5 = *puVar7" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) }) (else_clause "else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }" else (compound_statement "{\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }" { (expression_statement "puVar5[-2] = puVar8;" (assignment_expression "puVar5[-2] = puVar8" (subscript_expression "puVar5[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = *puVar5;" (assignment_expression "uVar1 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar5[-1] = puVar5[-0x11];" (assignment_expression "puVar5[-1] = puVar5[-0x11]" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x11]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar7;" (assignment_expression "*puVar5 = *puVar7" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }" if (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }" { (expression_statement "puVar5[-0x12] = puVar4;" (assignment_expression "puVar5[-0x12] = puVar4" (subscript_expression "puVar5[-0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar7 = uVar1;" (assignment_expression "*puVar7 = uVar1" (pointer_expression "*puVar7" * identifier) = identifier) ;) (goto_statement "goto LAB_0033989e;" goto statement_identifier ;) })) }))) (expression_statement "puVar5[-0x12] = puVar7;" (assignment_expression "puVar5[-0x12] = puVar7" (subscript_expression "puVar5[-0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = puVar7;" (assignment_expression "puVar4 = puVar7" identifier = identifier) ;) }))) (labeled_statement "LAB_0033989e:\n          puVar5[-0x11] = 0;" statement_identifier : (expression_statement "puVar5[-0x11] = 0;" (assignment_expression "puVar5[-0x11] = 0" (subscript_expression "puVar5[-0x11]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "*(undefined1 *)puVar4 = 0;" (assignment_expression "*(undefined1 *)puVar4 = 0" (pointer_expression "*(undefined1 *)puVar4" * (cast_expression "(undefined1 *)puVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar5[4] = puVar5[-0xc];" (assignment_expression "puVar5[4] = puVar5[-0xc]" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0xc]" identifier [ number_literal ])) ;) (expression_statement "puVar5[5] = puVar5[-0xb];" (assignment_expression "puVar5[5] = puVar5[-0xb]" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0xb]" identifier [ number_literal ])) ;) (expression_statement "puVar5[6] = puVar5[-10];" (assignment_expression "puVar5[6] = puVar5[-10]" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = (subscript_expression "puVar5[-10]" identifier [ number_literal ])) ;) (expression_statement "puVar5[7] = puVar5[-9];" (assignment_expression "puVar5[7] = puVar5[-9]" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = (subscript_expression "puVar5[-9]" identifier [ number_literal ])) ;) (expression_statement "puVar5 = puVar7;" (assignment_expression "puVar5 = puVar7" identifier = identifier) ;) })) (expression_statement "puVar5[-8] = local_5c;" (assignment_expression "puVar5[-8] = local_5c" (subscript_expression "puVar5[-8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[-7] = local_58;" (assignment_expression "puVar5[-7] = local_58" (subscript_expression "puVar5[-7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[-6] = local_54;" (assignment_expression "puVar5[-6] = local_54" (subscript_expression "puVar5[-6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[-5] = local_50;" (assignment_expression "puVar5[-5] = local_50" (subscript_expression "puVar5[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[-4] = local_4c;" (assignment_expression "puVar5[-4] = local_4c" (subscript_expression "puVar5[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[-3] = local_48;" (assignment_expression "puVar5[-3] = local_48" (subscript_expression "puVar5[-3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }" if (parenthesized_expression "(local_44 == &local_3c)" ( (binary_expression "local_44 == &local_3c" identifier == (pointer_expression "&local_3c" & identifier)) )) (compound_statement "{\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }" { (if_statement "if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }" if (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) (compound_statement "{\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }" { (if_statement "if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }" if (parenthesized_expression "(local_40 == 1)" ( (binary_expression "local_40 == 1" identifier == number_literal) )) (compound_statement "{\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }" { (expression_statement "*(undefined1 *)puVar4 = (undefined1)local_3c;" (assignment_expression "*(undefined1 *)puVar4 = (undefined1)local_3c" (pointer_expression "*(undefined1 *)puVar4" * (cast_expression "(undefined1 *)puVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined1)local_3c" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puVar5[-1] = 1;" (assignment_expression "puVar5[-1] = 1" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar5[-2] + 1) = 0;" (assignment_expression "*(undefined1 *)(puVar5[-2] + 1) = 0" (pointer_expression "*(undefined1 *)(puVar5[-2] + 1)" * (cast_expression "(undefined1 *)(puVar5[-2] + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5[-2] + 1)" ( (binary_expression "puVar5[-2] + 1" (subscript_expression "puVar5[-2]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "uVar1 = local_3c;" (assignment_expression "uVar1 = local_3c" identifier = identifier) ;) (goto_statement "goto LAB_003399e3;" goto statement_identifier ;) })) (expression_statement "memcpy(puVar4,&local_3c,local_40);" (call_expression "memcpy(puVar4,&local_3c,local_40)" identifier (argument_list "(puVar4,&local_3c,local_40)" ( identifier , (pointer_expression "&local_3c" & identifier) , identifier ))) ;) (expression_statement "puVar4 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar4 = (undefined4 *)puVar5[-2]" identifier = (cast_expression "(undefined4 *)puVar5[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[-2]" identifier [ number_literal ]))) ;) })) (expression_statement "puVar5[-1] = local_40;" (assignment_expression "puVar5[-1] = local_40" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar4 + local_40) = 0;" (assignment_expression "*(undefined1 *)((int)puVar4 + local_40) = 0" (pointer_expression "*(undefined1 *)((int)puVar4 + local_40)" * (cast_expression "(undefined1 *)((int)puVar4 + local_40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + local_40)" ( (binary_expression "(int)puVar4 + local_40" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar1 = local_3c;" (assignment_expression "uVar1 = local_3c" identifier = identifier) ;) }) (else_clause "else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }" else (compound_statement "{\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }" { (if_statement "if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }" if (parenthesized_expression "(puVar5 == puVar4)" ( (binary_expression "puVar5 == puVar4" identifier == identifier) )) (compound_statement "{\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }" { (expression_statement "puVar5[-2] = local_44;" (assignment_expression "puVar5[-2] = local_44" (subscript_expression "puVar5[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[-1] = local_40;" (assignment_expression "puVar5[-1] = local_40" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar5 = local_3c;" (assignment_expression "*puVar5 = local_3c" (pointer_expression "*puVar5" * identifier) = identifier) ;) }) (else_clause "else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }" else (compound_statement "{\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }" { (expression_statement "puVar5[-1] = local_40;" (assignment_expression "puVar5[-1] = local_40" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = *puVar5;" (assignment_expression "uVar1 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar5[-2] = local_44;" (assignment_expression "puVar5[-2] = local_44" (subscript_expression "puVar5[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar5 = local_3c;" (assignment_expression "*puVar5 = local_3c" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "local_44 = puVar4;" (assignment_expression "local_44 = puVar4" identifier = identifier) ;) (if_statement "if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;" if (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_003399e3;" goto statement_identifier ;)) }))) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (expression_statement "uVar1 = local_3c;" (assignment_expression "uVar1 = local_3c" identifier = identifier) ;) }))) (labeled_statement "LAB_003399e3:\n        local_3c = uVar1;" statement_identifier : (expression_statement "local_3c = uVar1;" (assignment_expression "local_3c = uVar1" identifier = identifier) ;)) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)local_44 = 0;" (assignment_expression "*(undefined1 *)local_44 = 0" (pointer_expression "*(undefined1 *)local_44" * (cast_expression "(undefined1 *)local_44" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar5[4] = local_2c;" (assignment_expression "puVar5[4] = local_2c" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[5] = local_28;" (assignment_expression "puVar5[5] = local_28" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[6] = local_24;" (assignment_expression "puVar5[6] = local_24" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[7] = local_20;" (assignment_expression "puVar5[7] = local_20" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }" if (parenthesized_expression "(local_44 != &local_3c)" ( (binary_expression "local_44 != &local_3c" identifier != (pointer_expression "&local_3c" & identifier)) )) (compound_statement "{\n          FUN_003ae080(local_44);\n        }" { (expression_statement "FUN_003ae080(local_44);" (call_expression "FUN_003ae080(local_44)" identifier (argument_list "(local_44)" ( identifier ))) ;) })) }) (else_clause "else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }" else (compound_statement "{\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }" { (expression_statement "local_5c = puVar9[-8];" (assignment_expression "local_5c = puVar9[-8]" identifier = (subscript_expression "puVar9[-8]" identifier [ number_literal ])) ;) (expression_statement "local_58 = puVar9[-7];" (assignment_expression "local_58 = puVar9[-7]" identifier = (subscript_expression "puVar9[-7]" identifier [ number_literal ])) ;) (expression_statement "local_54 = puVar9[-6];" (assignment_expression "local_54 = puVar9[-6]" identifier = (subscript_expression "puVar9[-6]" identifier [ number_literal ])) ;) (expression_statement "local_50 = puVar9[-5];" (assignment_expression "local_50 = puVar9[-5]" identifier = (subscript_expression "puVar9[-5]" identifier [ number_literal ])) ;) (expression_statement "local_4c = puVar9[-4];" (assignment_expression "local_4c = puVar9[-4]" identifier = (subscript_expression "puVar9[-4]" identifier [ number_literal ])) ;) (expression_statement "local_48 = puVar9[-3];" (assignment_expression "local_48 = puVar9[-3]" identifier = (subscript_expression "puVar9[-3]" identifier [ number_literal ])) ;) (if_statement "if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }" if (parenthesized_expression "((undefined4 *)puVar9[-2] == puVar9)" ( (binary_expression "(undefined4 *)puVar9[-2] == puVar9" (cast_expression "(undefined4 *)puVar9[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[-2]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }" { (expression_statement "local_3c = *puVar9;" (assignment_expression "local_3c = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "local_38 = puVar9[1];" (assignment_expression "local_38 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "local_34 = puVar9[2];" (assignment_expression "local_34 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "local_30 = puVar9[3];" (assignment_expression "local_30 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }" else (compound_statement "{\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }" { (expression_statement "local_3c = *puVar9;" (assignment_expression "local_3c = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "local_44 = (undefined4 *)puVar9[-2];" (assignment_expression "local_44 = (undefined4 *)puVar9[-2]" identifier = (cast_expression "(undefined4 *)puVar9[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[-2]" identifier [ number_literal ]))) ;) }))) (expression_statement "local_28 = puVar9[5];" (assignment_expression "local_28 = puVar9[5]" identifier = (subscript_expression "puVar9[5]" identifier [ number_literal ])) ;) (expression_statement "local_2c = puVar9[4];" (assignment_expression "local_2c = puVar9[4]" identifier = (subscript_expression "puVar9[4]" identifier [ number_literal ])) ;) (expression_statement "puVar9[-2] = puVar9;" (assignment_expression "puVar9[-2] = puVar9" (subscript_expression "puVar9[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_40 = puVar9[-1];" (assignment_expression "local_40 = puVar9[-1]" identifier = (subscript_expression "puVar9[-1]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = (int)(puVar9 + -8) - (int)param_1;" (assignment_expression "iVar6 = (int)(puVar9 + -8) - (int)param_1" identifier = (binary_expression "(int)(puVar9 + -8) - (int)param_1" (cast_expression "(int)(puVar9 + -8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar9 + -8)" ( (binary_expression "puVar9 + -8" identifier + number_literal) ))) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(undefined1 *)puVar9 = 0;" (assignment_expression "*(undefined1 *)puVar9 = 0" (pointer_expression "*(undefined1 *)puVar9" * (cast_expression "(undefined1 *)puVar9" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "local_20 = puVar9[7];" (assignment_expression "local_20 = puVar9[7]" identifier = (subscript_expression "puVar9[7]" identifier [ number_literal ])) ;) (expression_statement "local_24 = puVar9[6];" (assignment_expression "local_24 = puVar9[6]" identifier = (subscript_expression "puVar9[6]" identifier [ number_literal ])) ;) (expression_statement "local_70 = iVar6 >> 6;" (assignment_expression "local_70 = iVar6 >> 6" identifier = (binary_expression "iVar6 >> 6" identifier >> number_literal)) ;) (expression_statement "puVar9[-1] = 0;" (assignment_expression "puVar9[-1] = 0" (subscript_expression "puVar9[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4 = puVar9;" (assignment_expression "puVar4 = puVar9" identifier = identifier) ;) (expression_statement "puVar5 = puVar9;" (assignment_expression "puVar5 = puVar9" identifier = identifier) ;) (if_statement "if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }" if (parenthesized_expression "(0 < iVar6)" ( (binary_expression "0 < iVar6" number_literal < identifier) )) (compound_statement "{\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }" { (do_statement "do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );" do (compound_statement "{\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          }" { (expression_statement "puVar8 = puVar5 + -0x10;" (assignment_expression "puVar8 = puVar5 + -0x10" identifier = (binary_expression "puVar5 + -0x10" identifier + number_literal)) ;) (expression_statement "puVar5[-8] = puVar5[-0x18];" (assignment_expression "puVar5[-8] = puVar5[-0x18]" (subscript_expression "puVar5[-8]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x18]" identifier [ number_literal ])) ;) (expression_statement "puVar5[-7] = puVar5[-0x17];" (assignment_expression "puVar5[-7] = puVar5[-0x17]" (subscript_expression "puVar5[-7]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x17]" identifier [ number_literal ])) ;) (expression_statement "puVar5[-6] = puVar5[-0x16];" (assignment_expression "puVar5[-6] = puVar5[-0x16]" (subscript_expression "puVar5[-6]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x16]" identifier [ number_literal ])) ;) (expression_statement "puVar5[-5] = puVar5[-0x15];" (assignment_expression "puVar5[-5] = puVar5[-0x15]" (subscript_expression "puVar5[-5]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x15]" identifier [ number_literal ])) ;) (expression_statement "puVar5[-4] = puVar5[-0x14];" (assignment_expression "puVar5[-4] = puVar5[-0x14]" (subscript_expression "puVar5[-4]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x14]" identifier [ number_literal ])) ;) (expression_statement "puVar5[-3] = puVar5[-0x13];" (assignment_expression "puVar5[-3] = puVar5[-0x13]" (subscript_expression "puVar5[-3]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x13]" identifier [ number_literal ])) ;) (expression_statement "puVar7 = (undefined4 *)puVar5[-0x12];" (assignment_expression "puVar7 = (undefined4 *)puVar5[-0x12]" identifier = (cast_expression "(undefined4 *)puVar5[-0x12]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[-0x12]" identifier [ number_literal ]))) ;) (if_statement "if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }" if (parenthesized_expression "(puVar7 == puVar8)" ( (binary_expression "puVar7 == puVar8" identifier == identifier) )) (compound_statement "{\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }" { (expression_statement "sVar3 = puVar5[-0x11];" (assignment_expression "sVar3 = puVar5[-0x11]" identifier = (subscript_expression "puVar5[-0x11]" identifier [ number_literal ])) ;) (if_statement "if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }" if (parenthesized_expression "(sVar3 != 0)" ( (binary_expression "sVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }" { (if_statement "if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }" if (parenthesized_expression "(sVar3 == 1)" ( (binary_expression "sVar3 == 1" identifier == number_literal) )) (compound_statement "{\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }" { (expression_statement "*(undefined1 *)puVar4 = *(undefined1 *)puVar8;" (assignment_expression "*(undefined1 *)puVar4 = *(undefined1 *)puVar8" (pointer_expression "*(undefined1 *)puVar4" * (cast_expression "(undefined1 *)puVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)puVar8" * (cast_expression "(undefined1 *)puVar8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "sVar3 = puVar5[-0x11];" (assignment_expression "sVar3 = puVar5[-0x11]" identifier = (subscript_expression "puVar5[-0x11]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }" else (compound_statement "{\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }" { (expression_statement "memcpy(puVar4,puVar8,sVar3);" (call_expression "memcpy(puVar4,puVar8,sVar3)" identifier (argument_list "(puVar4,puVar8,sVar3)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar3 = puVar5[-0x11];" (assignment_expression "sVar3 = puVar5[-0x11]" identifier = (subscript_expression "puVar5[-0x11]" identifier [ number_literal ])) ;) }))) })) (expression_statement "puVar5[-1] = sVar3;" (assignment_expression "puVar5[-1] = sVar3" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar5[-2] + sVar3) = 0;" (assignment_expression "*(undefined1 *)(puVar5[-2] + sVar3) = 0" (pointer_expression "*(undefined1 *)(puVar5[-2] + sVar3)" * (cast_expression "(undefined1 *)(puVar5[-2] + sVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5[-2] + sVar3)" ( (binary_expression "puVar5[-2] + sVar3" (subscript_expression "puVar5[-2]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) }) (else_clause "else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }" else (compound_statement "{\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }" { (if_statement "if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }" if (parenthesized_expression "(puVar4 == puVar5)" ( (binary_expression "puVar4 == puVar5" identifier == identifier) )) (compound_statement "{\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }" { (expression_statement "puVar5[-2] = puVar7;" (assignment_expression "puVar5[-2] = puVar7" (subscript_expression "puVar5[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[-1] = puVar5[-0x11];" (assignment_expression "puVar5[-1] = puVar5[-0x11]" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x11]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar8;" (assignment_expression "*puVar5 = *puVar8" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar8" * identifier)) ;) }) (else_clause "else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }" else (compound_statement "{\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }" { (expression_statement "puVar5[-2] = puVar7;" (assignment_expression "puVar5[-2] = puVar7" (subscript_expression "puVar5[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = *puVar5;" (assignment_expression "uVar1 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar5[-1] = puVar5[-0x11];" (assignment_expression "puVar5[-1] = puVar5[-0x11]" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x11]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar8;" (assignment_expression "*puVar5 = *puVar8" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar8" * identifier)) ;) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }" if (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }" { (expression_statement "puVar5[-0x12] = puVar4;" (assignment_expression "puVar5[-0x12] = puVar4" (subscript_expression "puVar5[-0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar8 = uVar1;" (assignment_expression "*puVar8 = uVar1" (pointer_expression "*puVar8" * identifier) = identifier) ;) (goto_statement "goto LAB_00339b09;" goto statement_identifier ;) })) }))) (expression_statement "puVar5[-0x12] = puVar8;" (assignment_expression "puVar5[-0x12] = puVar8" (subscript_expression "puVar5[-0x12]" identifier [ number_literal ]) = identifier) ;) }))) (labeled_statement "LAB_00339b09:\n            puVar5[-0x11] = 0;" statement_identifier : (expression_statement "puVar5[-0x11] = 0;" (assignment_expression "puVar5[-0x11] = 0" (subscript_expression "puVar5[-0x11]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "*(undefined1 *)puVar5[-0x12] = 0;" (assignment_expression "*(undefined1 *)puVar5[-0x12] = 0" (pointer_expression "*(undefined1 *)puVar5[-0x12]" * (cast_expression "(undefined1 *)puVar5[-0x12]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[-0x12]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "puVar5[4] = puVar5[-0xc];" (assignment_expression "puVar5[4] = puVar5[-0xc]" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0xc]" identifier [ number_literal ])) ;) (expression_statement "puVar5[5] = puVar5[-0xb];" (assignment_expression "puVar5[5] = puVar5[-0xb]" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0xb]" identifier [ number_literal ])) ;) (expression_statement "puVar5[6] = puVar5[-10];" (assignment_expression "puVar5[6] = puVar5[-10]" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = (subscript_expression "puVar5[-10]" identifier [ number_literal ])) ;) (expression_statement "puVar5[7] = puVar5[-9];" (assignment_expression "puVar5[7] = puVar5[-9]" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = (subscript_expression "puVar5[-9]" identifier [ number_literal ])) ;) (expression_statement "local_70 = local_70 + -1;" (assignment_expression "local_70 = local_70 + -1" identifier = (binary_expression "local_70 + -1" identifier + number_literal)) ;) (if_statement "if (local_70 == 0) break;" if (parenthesized_expression "(local_70 == 0)" ( (binary_expression "local_70 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar4 = (undefined4 *)puVar5[-0x12];" (assignment_expression "puVar4 = (undefined4 *)puVar5[-0x12]" identifier = (cast_expression "(undefined4 *)puVar5[-0x12]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[-0x12]" identifier [ number_literal ]))) ;) (expression_statement "puVar5 = puVar8;" (assignment_expression "puVar5 = puVar8" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "*param_1 = local_5c;" (assignment_expression "*param_1 = local_5c" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_58;" (assignment_expression "param_1[1] = local_58" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[2] = local_54;" (assignment_expression "param_1[2] = local_54" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = local_50;" (assignment_expression "param_1[3] = local_50" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[4] = local_4c;" (assignment_expression "param_1[4] = local_4c" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = local_48;" (assignment_expression "param_1[5] = local_48" (subscript_expression "param_1[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5 = (undefined4 *)param_1[6];" (assignment_expression "puVar5 = (undefined4 *)param_1[6]" identifier = (cast_expression "(undefined4 *)param_1[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) (if_statement "if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }" if (parenthesized_expression "(local_44 == &local_3c)" ( (binary_expression "local_44 == &local_3c" identifier == (pointer_expression "&local_3c" & identifier)) )) (compound_statement "{\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }" { (if_statement "if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }" if (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) (compound_statement "{\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }" { (if_statement "if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }" if (parenthesized_expression "(local_40 == 1)" ( (binary_expression "local_40 == 1" identifier == number_literal) )) (compound_statement "{\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }" { (expression_statement "*(undefined1 *)puVar5 = (undefined1)local_3c;" (assignment_expression "*(undefined1 *)puVar5 = (undefined1)local_3c" (pointer_expression "*(undefined1 *)puVar5" * (cast_expression "(undefined1 *)puVar5" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined1)local_3c" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puVar5 = (undefined4 *)param_1[6];" (assignment_expression "puVar5 = (undefined4 *)param_1[6]" identifier = (cast_expression "(undefined4 *)param_1[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }" else (compound_statement "{\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }" { (expression_statement "memcpy(puVar5,&local_3c,local_40);" (call_expression "memcpy(puVar5,&local_3c,local_40)" identifier (argument_list "(puVar5,&local_3c,local_40)" ( identifier , (pointer_expression "&local_3c" & identifier) , identifier ))) ;) (expression_statement "puVar5 = (undefined4 *)param_1[6];" (assignment_expression "puVar5 = (undefined4 *)param_1[6]" identifier = (cast_expression "(undefined4 *)param_1[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) }))) })) (expression_statement "param_1[7] = local_40;" (assignment_expression "param_1[7] = local_40" (subscript_expression "param_1[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar5 + local_40) = 0;" (assignment_expression "*(undefined1 *)((int)puVar5 + local_40) = 0" (pointer_expression "*(undefined1 *)((int)puVar5 + local_40)" * (cast_expression "(undefined1 *)((int)puVar5 + local_40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + local_40)" ( (binary_expression "(int)puVar5 + local_40" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar1 = local_3c;" (assignment_expression "uVar1 = local_3c" identifier = identifier) ;) }) (else_clause "else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }" else (compound_statement "{\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }" { (if_statement "if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }" if (parenthesized_expression "(puVar5 == param_1 + 8)" ( (binary_expression "puVar5 == param_1 + 8" identifier == (binary_expression "param_1 + 8" identifier + number_literal)) )) (compound_statement "{\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }" { (expression_statement "param_1[6] = local_44;" (assignment_expression "param_1[6] = local_44" (subscript_expression "param_1[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[7] = local_40;" (assignment_expression "param_1[7] = local_40" (subscript_expression "param_1[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[8] = local_3c;" (assignment_expression "param_1[8] = local_3c" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }" else (compound_statement "{\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }" { (expression_statement "uVar1 = param_1[8];" (assignment_expression "uVar1 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "param_1[6] = local_44;" (assignment_expression "param_1[6] = local_44" (subscript_expression "param_1[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[7] = local_40;" (assignment_expression "param_1[7] = local_40" (subscript_expression "param_1[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[8] = local_3c;" (assignment_expression "param_1[8] = local_3c" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_44 = puVar5;" (assignment_expression "local_44 = puVar5" identifier = identifier) ;) (if_statement "if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;" if (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" ( (binary_expression "puVar5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00339c3f;" goto statement_identifier ;)) }))) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (expression_statement "uVar1 = local_3c;" (assignment_expression "uVar1 = local_3c" identifier = identifier) ;) }))) (labeled_statement "LAB_00339c3f:\n        local_3c = uVar1;" statement_identifier : (expression_statement "local_3c = uVar1;" (assignment_expression "local_3c = uVar1" identifier = identifier) ;)) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)local_44 = 0;" (assignment_expression "*(undefined1 *)local_44 = 0" (pointer_expression "*(undefined1 *)local_44" * (cast_expression "(undefined1 *)local_44" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "param_1[0xc] = local_2c;" (assignment_expression "param_1[0xc] = local_2c" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xd] = local_28;" (assignment_expression "param_1[0xd] = local_28" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xe] = local_24;" (assignment_expression "param_1[0xe] = local_24" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xf] = local_20;" (assignment_expression "param_1[0xf] = local_20" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }" if (parenthesized_expression "(local_44 != &local_3c)" ( (binary_expression "local_44 != &local_3c" identifier != (pointer_expression "&local_3c" & identifier)) )) (compound_statement "{\n          FUN_003ae080(local_44);\n        }" { (expression_statement "FUN_003ae080(local_44);" (call_expression "FUN_003ae080(local_44)" identifier (argument_list "(local_44)" ( identifier ))) ;) })) }))) (expression_statement "local_78 = puVar9 + 8;" (assignment_expression "local_78 = puVar9 + 8" identifier = (binary_expression "puVar9 + 8" identifier + number_literal)) ;) (expression_statement "puVar9 = puVar9 + 0x10;" (assignment_expression "puVar9 = puVar9 + 0x10" identifier = (binary_expression "puVar9 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_2 != local_78)" ( (binary_expression "param_2 != local_78" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* DWARF original name: __insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,\n   std::vector<gold::Input_section_info> >,\n   __gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter> > */\n\nvoid std::\n     __insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n               (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                __first,__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                        __last,_Iter_comp_iter<gold::Input_section_sorter> __comp)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *__src;\n  size_type sVar1;\n  size_type *psVar2;\n  undefined4 uVar3;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar4;\n  bool bVar5;\n  size_t sVar6;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar7;\n  pointer pcVar8;\n  int iVar9;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar10;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar11;\n  Input_section_info *local_78;\n  int local_70;\n  Input_section_sorter local_64;\n  value_type __val;\n  \n  if ((__first._M_current != __last._M_current) && (__last._M_current != __first._M_current + 1)) {\n    paVar11 = &__first._M_current[1].section_name_.field_2;\n    __src = &__val.section_name_.field_2;\n    do {\n      bVar5 = gold::Input_section_sorter::operator()\n                        (&__comp._M_comp,(Input_section_info *)(paVar11 + 0xfffffffe),\n                         __first._M_current);\n      if (bVar5) {\n        __val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity;\n        __val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c);\n        __val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18);\n        __val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14);\n        __val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff);\n        __val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc);\n        __val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -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             *)__val.section_name_._M_dataplus._M_p == paVar11) {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);\n          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);\n          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n        }\n        else {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }\n        __val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14);\n        __val.size_._0_4_ = paVar11[1]._M_allocated_capacity;\n        (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11;\n        __val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4);\n        iVar9 = (int)(paVar11 + 0xfffffffe) - (int)__first._M_current;\n        paVar11->_M_local_buf[0] = '\0';\n        __val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c);\n        __val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18);\n        local_70 = iVar9 >> 6;\n        *(size_type *)((int)paVar11 + -4) = 0;\n        paVar7 = paVar11;\n        paVar4 = paVar11;\n        if (0 < iVar9) {\n          do {\n            paVar10 = paVar4 + -4;\n            paVar4[-2]._M_allocated_capacity = paVar4[-6]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0x1c) = *(undefined4 *)((int)paVar4 + -0x5c);\n            *(undefined4 *)((int)paVar4 + -0x18) = *(undefined4 *)((int)paVar4 + -0x58);\n            *(undefined4 *)((int)paVar4 + -0x14) = *(undefined4 *)((int)paVar4 + -0x54);\n            paVar4[-1]._M_allocated_capacity = paVar4[-5]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0xc) = *(undefined4 *)((int)paVar4 + -0x4c);\n            psVar2 = *(size_type **)((int)paVar4 + -0x48);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar2 == paVar10) {\n              sVar6 = *(size_t *)((int)paVar4 + -0x44);\n              if (sVar6 != 0) {\n                if (sVar6 == 1) {\n                  paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n                else {\n                  memcpy(paVar7,paVar10,sVar6);\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n              }\n              pcVar8 = (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n              *(size_t *)((int)paVar4 + -4) = sVar6;\n              pcVar8[sVar6] = '\0';\n            }\n            else {\n              if (paVar7 == paVar4) {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              }\n              else {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                sVar1 = paVar4->_M_allocated_capacity;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n                if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    **)((int)paVar4 + -0x48) = paVar7;\n                  paVar10->_M_allocated_capacity = sVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)((int)paVar4 + -0x48) = paVar10;\n            }\nLAB_00339b09:\n            *(undefined4 *)((int)paVar4 + -0x44) = 0;\n            **(undefined1 **)((int)paVar4 + -0x48) = 0;\n            paVar4[1]._M_allocated_capacity = paVar4[-3]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + 0x14) = *(undefined4 *)((int)paVar4 + -0x2c);\n            *(undefined4 *)((int)paVar4 + 0x18) = *(undefined4 *)((int)paVar4 + -0x28);\n            *(undefined4 *)((int)paVar4 + 0x1c) = *(undefined4 *)((int)paVar4 + -0x24);\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            paVar7 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)((int)paVar4 + -0x48);\n            paVar4 = paVar10;\n          } while( true );\n        }\n        ((__first._M_current)->input_section_).shndx_ = __val.input_section_.shndx_;\n        ((__first._M_current)->input_section_).p2align_ = __val.input_section_.p2align_;\n        *(undefined4 *)&((__first._M_current)->input_section_).u1_ =\n             __val.input_section_.u1_.data_size._0_4_;\n        *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =\n             __val.input_section_.u1_.data_size._4_4_;\n        ((__first._M_current)->input_section_).u2_ = __val.input_section_.u2_;\n        ((__first._M_current)->input_section_).section_order_index_ =\n             __val.input_section_.section_order_index_;\n        pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == __src) {\n          if (__val.section_name_._M_string_length != 0) {\n            if (__val.section_name_._M_string_length == 1) {\n              *pcVar8 = __val.section_name_.field_2._M_local_buf[0];\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar8,__src,__val.section_name_._M_string_length);\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }\n          ((__first._M_current)->section_name_)._M_string_length =\n               __val.section_name_._M_string_length;\n          pcVar8[__val.section_name_._M_string_length] = '\0';\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar8 == &((__first._M_current)->section_name_).field_2) {\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar3 = ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = pcVar8;\n            if (pcVar8 != (pointer)0x0) goto LAB_00339c3f;\n          }\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\nLAB_00339c3f:\n        __val.section_name_.field_2._M_allocated_capacity = uVar3;\n        __val.section_name_._M_string_length = 0;\n        *__val.section_name_._M_dataplus._M_p = '\0';\n        *(size_type *)&(__first._M_current)->size_ = (size_type)__val.size_;\n        *(size_type *)((int)&(__first._M_current)->size_ + 4) = __val.size_._4_4_;\n        *(size_type *)&(__first._M_current)->addralign_ = (size_type)__val.addralign_;\n        *(size_type *)((int)&(__first._M_current)->addralign_ + 4) = __val.addralign_._4_4_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p != __src) {\n          operator_delete(__val.section_name_._M_dataplus._M_p);\n        }\n      }\n      else {\n        local_64.section_sort_ = __comp._M_comp.section_sort_;\n        __val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity;\n        local_64.filename_sort_ = __comp._M_comp.filename_sort_;\n        __val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c);\n        __val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18);\n        __val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14);\n        __val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff);\n        __val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc);\n        __val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -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             *)__val.section_name_._M_dataplus._M_p == paVar11) {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);\n          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);\n          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n        }\n        else {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }\n        __val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4);\n        __val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14);\n        (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11;\n        *(size_type *)((int)paVar11 + -4) = 0;\n        __val.size_._0_4_ = paVar11[1]._M_allocated_capacity;\n        __val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c);\n        __val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18);\n        paVar11->_M_local_buf[0] = '\0';\n        paVar4 = paVar11;\n        while( true ) {\n          paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)(&paVar4->_M_allocated_capacity + -0x10);\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          bVar5 = gold::Input_section_sorter::operator()\n                            (&local_64,&__val,\n                             (Input_section_info *)(&paVar4->_M_allocated_capacity + -0x18));\n          paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n          if (!bVar5) break;\n          (&paVar4->_M_allocated_capacity)[-8] = (&paVar4->_M_allocated_capacity)[-0x18];\n          (&paVar4->_M_allocated_capacity)[-7] = (&paVar4->_M_allocated_capacity)[-0x17];\n          (&paVar4->_M_allocated_capacity)[-6] = (&paVar4->_M_allocated_capacity)[-0x16];\n          (&paVar4->_M_allocated_capacity)[-5] = (&paVar4->_M_allocated_capacity)[-0x15];\n          (&paVar4->_M_allocated_capacity)[-4] = (&paVar4->_M_allocated_capacity)[-0x14];\n          (&paVar4->_M_allocated_capacity)[-3] = (&paVar4->_M_allocated_capacity)[-0x13];\n          psVar2 = (size_type *)(&paVar4->_M_allocated_capacity)[-0x12];\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar2 == paVar10) {\n            sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n              else {\n                memcpy(paVar7,paVar10,sVar6);\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n            }\n            (&paVar4->_M_allocated_capacity)[-1] = sVar6;\n            paVar7->_M_local_buf[sVar6] = '\0';\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-0x12];\n          }\n          else {\n            if (paVar4 == paVar7) {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            }\n            else {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              sVar1 = paVar4->_M_allocated_capacity;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0) {\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  **)((int)paVar4 + -0x48) = paVar7;\n                paVar10->_M_allocated_capacity = sVar1;\n                goto LAB_0033989e;\n              }\n            }\n            *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)((int)paVar4 + -0x48) = paVar10;\n            paVar7 = paVar10;\n          }\nLAB_0033989e:\n          (&paVar4->_M_allocated_capacity)[-0x11] = 0;\n          paVar7->_M_local_buf[0] = '\0';\n          (&paVar4->_M_allocated_capacity)[4] = (&paVar4->_M_allocated_capacity)[-0xc];\n          (&paVar4->_M_allocated_capacity)[5] = (&paVar4->_M_allocated_capacity)[-0xb];\n          (&paVar4->_M_allocated_capacity)[6] = (&paVar4->_M_allocated_capacity)[-10];\n          (&paVar4->_M_allocated_capacity)[7] = (&paVar4->_M_allocated_capacity)[-9];\n          paVar4 = paVar10;\n        }\n        (&paVar4->_M_allocated_capacity)[-8] = __val.input_section_.shndx_;\n        (&paVar4->_M_allocated_capacity)[-7] = __val.input_section_.p2align_;\n        (&paVar4->_M_allocated_capacity)[-6] = __val.input_section_.u1_.data_size._0_4_;\n        (&paVar4->_M_allocated_capacity)[-5] = __val.input_section_.u1_.data_size._4_4_;\n        *(anon_union_4_4_139239c7_for_u2_ *)(&paVar4->_M_allocated_capacity + -4) =\n             __val.input_section_.u2_;\n        (&paVar4->_M_allocated_capacity)[-3] = __val.input_section_.section_order_index_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == __src) {\n          if (__val.section_name_._M_string_length != 0) {\n            if (__val.section_name_._M_string_length == 1) {\n              paVar7->_M_local_buf[0] = __val.section_name_.field_2._M_local_buf[0];\n              (&paVar4->_M_allocated_capacity)[-1] = 1;\n              *(undefined1 *)((&paVar4->_M_allocated_capacity)[-2] + 1) = 0;\n              uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n              goto LAB_003399e3;\n            }\n            memcpy(paVar7,__src,__val.section_name_._M_string_length);\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-2];\n          }\n          (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n          paVar7->_M_local_buf[__val.section_name_._M_string_length] = '\0';\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if (paVar4 == paVar7) {\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            uVar3 = paVar4->_M_allocated_capacity;\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = (pointer)paVar7;\n            if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) goto LAB_003399e3;\n          }\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\nLAB_003399e3:\n        __val.section_name_.field_2._M_allocated_capacity = uVar3;\n        __val.section_name_._M_string_length = 0;\n        *__val.section_name_._M_dataplus._M_p = '\0';\n        (&paVar4->_M_allocated_capacity)[4] = (size_type)__val.size_;\n        (&paVar4->_M_allocated_capacity)[5] = __val.size_._4_4_;\n        (&paVar4->_M_allocated_capacity)[6] = (size_type)__val.addralign_;\n        (&paVar4->_M_allocated_capacity)[7] = __val.addralign_._4_4_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p != __src) {\n          operator_delete(__val.section_name_._M_dataplus._M_p);\n        }\n      }\n      local_78 = (Input_section_info *)(paVar11 + 2);\n      paVar11 = paVar11 + 4;\n    } while (__last._M_current != local_78);\n  }\n  return;\n}\n\n" comment comment comment comment (declaration "void std::\n     __insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n               (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                __first,__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                        __last,_Iter_comp_iter<gold::Input_section_sorter> __comp)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *__src;" primitive_type (ERROR "std::\n     __insertion_sort<__gnu_cxx::__normal_iterator<gold::" identifier : : identifier < identifier : : identifier < identifier : :) identifier (ERROR "*" *) , (ERROR "_std::vector<gold::Input_section_info>" identifier : : identifier < identifier : : identifier >) identifier (ERROR ">" >) , (ERROR "___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n               (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                __first,__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                        __last,_Iter_comp_iter<gold::Input_section_sorter> __comp)\n\n{" identifier : : identifier : : identifier < identifier : : identifier > (function_declarator "_>\n               (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                __first,__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                        __last,_Iter_comp_iter<gold::Input_section_sorter> __comp)" identifier (ERROR ">" >) (parameter_list "(__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                __first,__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                        __last,_Iter_comp_iter<gold::Input_section_sorter> __comp)" ( (parameter_declaration "__normal_iterator<gold::Input_section_info*" type_identifier (ERROR "<gold::Input_section_info" < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::vector<gold::Input_section_info" type_identifier (ERROR "::vector<gold::" : : identifier < identifier : :) identifier) , (parameter_declaration "_std::allocator<gold::Input_section_info>_>_>\n                __first" type_identifier (ERROR "::allocator<gold::Input_section_info>_>_>" : : identifier < identifier : : identifier > identifier > identifier >) identifier) , (parameter_declaration "__normal_iterator<gold::Input_section_info*" type_identifier (ERROR "<gold::Input_section_info" < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::vector<gold::Input_section_info" type_identifier (ERROR "::vector<gold::" : : identifier < identifier : :) identifier) , (parameter_declaration "_std::allocator<gold::Input_section_info>_>_>\n                        __last" type_identifier (ERROR "::allocator<gold::Input_section_info>_>_>" : : identifier < identifier : : identifier > identifier > identifier >) identifier) , (parameter_declaration "_Iter_comp_iter<gold::Input_section_sorter> __comp" type_identifier (ERROR "<gold::Input_section_sorter>" < identifier : : identifier >) identifier) ))) {) identifier (ERROR "<char" < primitive_type) , (ERROR "_std::" identifier : :) identifier (ERROR "<char>" < primitive_type >) , (ERROR "_std::allocator<char>_>_9" identifier : : identifier < primitive_type > identifier > identifier) (pointer_declarator "*__src" * identifier) ;) (declaration "size_type sVar1;" type_identifier identifier ;) (declaration "size_type *psVar2;" type_identifier (pointer_declarator "*psVar2" * identifier) ;) (declaration "undefined4 uVar3;" 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  *paVar4;" 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  *paVar4;" (binary_expression "allocator<char>_>_9\n  *paVar4" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar4" identifier * identifier)) ;)) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "size_t sVar6;" primitive_type 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  *paVar7;" 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  *paVar7;" (binary_expression "allocator<char>_>_9\n  *paVar7" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar7" identifier * identifier)) ;)) (declaration "pointer pcVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type 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)) ;)) (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  *paVar11;" 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  *paVar11;" (binary_expression "allocator<char>_>_9\n  *paVar11" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar11" identifier * identifier)) ;)) (declaration "Input_section_info *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "Input_section_sorter local_64;" type_identifier identifier ;) (declaration "value_type __val;" type_identifier identifier ;) (if_statement "if ((__first._M_current != __last._M_current) && (__last._M_current != __first._M_current + 1)) {\n    paVar11 = &__first._M_current[1].section_name_.field_2;\n    __src = &__val.section_name_.field_2;\n    do {\n      bVar5 = gold::Input_section_sorter::operator()\n                        (&__comp._M_comp,(Input_section_info *)(paVar11 + 0xfffffffe),\n                         __first._M_current);\n      if (bVar5) {\n        __val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity;\n        __val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c);\n        __val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18);\n        __val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14);\n        __val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff);\n        __val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc);\n        __val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -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             *)__val.section_name_._M_dataplus._M_p == paVar11) {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);\n          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);\n          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n        }\n        else {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }\n        __val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14);\n        __val.size_._0_4_ = paVar11[1]._M_allocated_capacity;\n        (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11;\n        __val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4);\n        iVar9 = (int)(paVar11 + 0xfffffffe) - (int)__first._M_current;\n        paVar11->_M_local_buf[0] = '\0';\n        __val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c);\n        __val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18);\n        local_70 = iVar9 >> 6;\n        *(size_type *)((int)paVar11 + -4) = 0;\n        paVar7 = paVar11;\n        paVar4 = paVar11;\n        if (0 < iVar9) {\n          do {\n            paVar10 = paVar4 + -4;\n            paVar4[-2]._M_allocated_capacity = paVar4[-6]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0x1c) = *(undefined4 *)((int)paVar4 + -0x5c);\n            *(undefined4 *)((int)paVar4 + -0x18) = *(undefined4 *)((int)paVar4 + -0x58);\n            *(undefined4 *)((int)paVar4 + -0x14) = *(undefined4 *)((int)paVar4 + -0x54);\n            paVar4[-1]._M_allocated_capacity = paVar4[-5]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0xc) = *(undefined4 *)((int)paVar4 + -0x4c);\n            psVar2 = *(size_type **)((int)paVar4 + -0x48);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar2 == paVar10) {\n              sVar6 = *(size_t *)((int)paVar4 + -0x44);\n              if (sVar6 != 0) {\n                if (sVar6 == 1) {\n                  paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n                else {\n                  memcpy(paVar7,paVar10,sVar6);\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n              }\n              pcVar8 = (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n              *(size_t *)((int)paVar4 + -4) = sVar6;\n              pcVar8[sVar6] = '\0';\n            }\n            else {\n              if (paVar7 == paVar4) {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              }\n              else {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                sVar1 = paVar4->_M_allocated_capacity;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n                if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    **)((int)paVar4 + -0x48) = paVar7;\n                  paVar10->_M_allocated_capacity = sVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)((int)paVar4 + -0x48) = paVar10;\n            }\nLAB_00339b09:\n            *(undefined4 *)((int)paVar4 + -0x44) = 0;\n            **(undefined1 **)((int)paVar4 + -0x48) = 0;\n            paVar4[1]._M_allocated_capacity = paVar4[-3]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + 0x14) = *(undefined4 *)((int)paVar4 + -0x2c);\n            *(undefined4 *)((int)paVar4 + 0x18) = *(undefined4 *)((int)paVar4 + -0x28);\n            *(undefined4 *)((int)paVar4 + 0x1c) = *(undefined4 *)((int)paVar4 + -0x24);\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            paVar7 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)((int)paVar4 + -0x48);\n            paVar4 = paVar10;\n          } while( true );\n        }\n        ((__first._M_current)->input_section_).shndx_ = __val.input_section_.shndx_;\n        ((__first._M_current)->input_section_).p2align_ = __val.input_section_.p2align_;\n        *(undefined4 *)&((__first._M_current)->input_section_).u1_ =\n             __val.input_section_.u1_.data_size._0_4_;\n        *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =\n             __val.input_section_.u1_.data_size._4_4_;\n        ((__first._M_current)->input_section_).u2_ = __val.input_section_.u2_;\n        ((__first._M_current)->input_section_).section_order_index_ =\n             __val.input_section_.section_order_index_;\n        pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == __src) {\n          if (__val.section_name_._M_string_length != 0) {\n            if (__val.section_name_._M_string_length == 1) {\n              *pcVar8 = __val.section_name_.field_2._M_local_buf[0];\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar8,__src,__val.section_name_._M_string_length);\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }\n          ((__first._M_current)->section_name_)._M_string_length =\n               __val.section_name_._M_string_length;\n          pcVar8[__val.section_name_._M_string_length] = '\0';\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar8 == &((__first._M_current)->section_name_).field_2) {\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar3 = ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = pcVar8;\n            if (pcVar8 != (pointer)0x0) goto LAB_00339c3f;\n          }\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\nLAB_00339c3f:\n        __val.section_name_.field_2._M_allocated_capacity = uVar3;\n        __val.section_name_._M_string_length = 0;\n        *__val.section_name_._M_dataplus._M_p = '\0';\n        *(size_type *)&(__first._M_current)->size_ = (size_type)__val.size_;\n        *(size_type *)((int)&(__first._M_current)->size_ + 4) = __val.size_._4_4_;\n        *(size_type *)&(__first._M_current)->addralign_ = (size_type)__val.addralign_;\n        *(size_type *)((int)&(__first._M_current)->addralign_ + 4) = __val.addralign_._4_4_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p != __src) {\n          operator_delete(__val.section_name_._M_dataplus._M_p);\n        }\n      }\n      else {\n        local_64.section_sort_ = __comp._M_comp.section_sort_;\n        __val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity;\n        local_64.filename_sort_ = __comp._M_comp.filename_sort_;\n        __val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c);\n        __val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18);\n        __val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14);\n        __val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff);\n        __val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc);\n        __val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -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             *)__val.section_name_._M_dataplus._M_p == paVar11) {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);\n          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);\n          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n        }\n        else {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }\n        __val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4);\n        __val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14);\n        (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11;\n        *(size_type *)((int)paVar11 + -4) = 0;\n        __val.size_._0_4_ = paVar11[1]._M_allocated_capacity;\n        __val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c);\n        __val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18);\n        paVar11->_M_local_buf[0] = '\0';\n        paVar4 = paVar11;\n        while( true ) {\n          paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)(&paVar4->_M_allocated_capacity + -0x10);\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          bVar5 = gold::Input_section_sorter::operator()\n                            (&local_64,&__val,\n                             (Input_section_info *)(&paVar4->_M_allocated_capacity + -0x18));\n          paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n          if (!bVar5) break;\n          (&paVar4->_M_allocated_capacity)[-8] = (&paVar4->_M_allocated_capacity)[-0x18];\n          (&paVar4->_M_allocated_capacity)[-7] = (&paVar4->_M_allocated_capacity)[-0x17];\n          (&paVar4->_M_allocated_capacity)[-6] = (&paVar4->_M_allocated_capacity)[-0x16];\n          (&paVar4->_M_allocated_capacity)[-5] = (&paVar4->_M_allocated_capacity)[-0x15];\n          (&paVar4->_M_allocated_capacity)[-4] = (&paVar4->_M_allocated_capacity)[-0x14];\n          (&paVar4->_M_allocated_capacity)[-3] = (&paVar4->_M_allocated_capacity)[-0x13];\n          psVar2 = (size_type *)(&paVar4->_M_allocated_capacity)[-0x12];\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar2 == paVar10) {\n            sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n              else {\n                memcpy(paVar7,paVar10,sVar6);\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n            }\n            (&paVar4->_M_allocated_capacity)[-1] = sVar6;\n            paVar7->_M_local_buf[sVar6] = '\0';\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-0x12];\n          }\n          else {\n            if (paVar4 == paVar7) {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            }\n            else {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              sVar1 = paVar4->_M_allocated_capacity;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0) {\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  **)((int)paVar4 + -0x48) = paVar7;\n                paVar10->_M_allocated_capacity = sVar1;\n                goto LAB_0033989e;\n              }\n            }\n            *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)((int)paVar4 + -0x48) = paVar10;\n            paVar7 = paVar10;\n          }\nLAB_0033989e:\n          (&paVar4->_M_allocated_capacity)[-0x11] = 0;\n          paVar7->_M_local_buf[0] = '\0';\n          (&paVar4->_M_allocated_capacity)[4] = (&paVar4->_M_allocated_capacity)[-0xc];\n          (&paVar4->_M_allocated_capacity)[5] = (&paVar4->_M_allocated_capacity)[-0xb];\n          (&paVar4->_M_allocated_capacity)[6] = (&paVar4->_M_allocated_capacity)[-10];\n          (&paVar4->_M_allocated_capacity)[7] = (&paVar4->_M_allocated_capacity)[-9];\n          paVar4 = paVar10;\n        }\n        (&paVar4->_M_allocated_capacity)[-8] = __val.input_section_.shndx_;\n        (&paVar4->_M_allocated_capacity)[-7] = __val.input_section_.p2align_;\n        (&paVar4->_M_allocated_capacity)[-6] = __val.input_section_.u1_.data_size._0_4_;\n        (&paVar4->_M_allocated_capacity)[-5] = __val.input_section_.u1_.data_size._4_4_;\n        *(anon_union_4_4_139239c7_for_u2_ *)(&paVar4->_M_allocated_capacity + -4) =\n             __val.input_section_.u2_;\n        (&paVar4->_M_allocated_capacity)[-3] = __val.input_section_.section_order_index_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == __src) {\n          if (__val.section_name_._M_string_length != 0) {\n            if (__val.section_name_._M_string_length == 1) {\n              paVar7->_M_local_buf[0] = __val.section_name_.field_2._M_local_buf[0];\n              (&paVar4->_M_allocated_capacity)[-1] = 1;\n              *(undefined1 *)((&paVar4->_M_allocated_capacity)[-2] + 1) = 0;\n              uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n              goto LAB_003399e3;\n            }\n            memcpy(paVar7,__src,__val.section_name_._M_string_length);\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-2];\n          }\n          (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n          paVar7->_M_local_buf[__val.section_name_._M_string_length] = '\0';\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if (paVar4 == paVar7) {\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            uVar3 = paVar4->_M_allocated_capacity;\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = (pointer)paVar7;\n            if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) goto LAB_003399e3;\n          }\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\nLAB_003399e3:\n        __val.section_name_.field_2._M_allocated_capacity = uVar3;\n        __val.section_name_._M_string_length = 0;\n        *__val.section_name_._M_dataplus._M_p = '\0';\n        (&paVar4->_M_allocated_capacity)[4] = (size_type)__val.size_;\n        (&paVar4->_M_allocated_capacity)[5] = __val.size_._4_4_;\n        (&paVar4->_M_allocated_capacity)[6] = (size_type)__val.addralign_;\n        (&paVar4->_M_allocated_capacity)[7] = __val.addralign_._4_4_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p != __src) {\n          operator_delete(__val.section_name_._M_dataplus._M_p);\n        }\n      }\n      local_78 = (Input_section_info *)(paVar11 + 2);\n      paVar11 = paVar11 + 4;\n    } while (__last._M_current != local_78);\n  }" if (parenthesized_expression "((__first._M_current != __last._M_current) && (__last._M_current != __first._M_current + 1))" ( (binary_expression "(__first._M_current != __last._M_current) && (__last._M_current != __first._M_current + 1)" (parenthesized_expression "(__first._M_current != __last._M_current)" ( (binary_expression "__first._M_current != __last._M_current" (field_expression "__first._M_current" identifier . field_identifier) != (field_expression "__last._M_current" identifier . field_identifier)) )) && (parenthesized_expression "(__last._M_current != __first._M_current + 1)" ( (binary_expression "__last._M_current != __first._M_current + 1" (field_expression "__last._M_current" identifier . field_identifier) != (binary_expression "__first._M_current + 1" (field_expression "__first._M_current" identifier . field_identifier) + number_literal)) ))) )) (compound_statement "{\n    paVar11 = &__first._M_current[1].section_name_.field_2;\n    __src = &__val.section_name_.field_2;\n    do {\n      bVar5 = gold::Input_section_sorter::operator()\n                        (&__comp._M_comp,(Input_section_info *)(paVar11 + 0xfffffffe),\n                         __first._M_current);\n      if (bVar5) {\n        __val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity;\n        __val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c);\n        __val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18);\n        __val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14);\n        __val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff);\n        __val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc);\n        __val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -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             *)__val.section_name_._M_dataplus._M_p == paVar11) {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);\n          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);\n          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n        }\n        else {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }\n        __val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14);\n        __val.size_._0_4_ = paVar11[1]._M_allocated_capacity;\n        (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11;\n        __val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4);\n        iVar9 = (int)(paVar11 + 0xfffffffe) - (int)__first._M_current;\n        paVar11->_M_local_buf[0] = '\0';\n        __val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c);\n        __val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18);\n        local_70 = iVar9 >> 6;\n        *(size_type *)((int)paVar11 + -4) = 0;\n        paVar7 = paVar11;\n        paVar4 = paVar11;\n        if (0 < iVar9) {\n          do {\n            paVar10 = paVar4 + -4;\n            paVar4[-2]._M_allocated_capacity = paVar4[-6]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0x1c) = *(undefined4 *)((int)paVar4 + -0x5c);\n            *(undefined4 *)((int)paVar4 + -0x18) = *(undefined4 *)((int)paVar4 + -0x58);\n            *(undefined4 *)((int)paVar4 + -0x14) = *(undefined4 *)((int)paVar4 + -0x54);\n            paVar4[-1]._M_allocated_capacity = paVar4[-5]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0xc) = *(undefined4 *)((int)paVar4 + -0x4c);\n            psVar2 = *(size_type **)((int)paVar4 + -0x48);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar2 == paVar10) {\n              sVar6 = *(size_t *)((int)paVar4 + -0x44);\n              if (sVar6 != 0) {\n                if (sVar6 == 1) {\n                  paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n                else {\n                  memcpy(paVar7,paVar10,sVar6);\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n              }\n              pcVar8 = (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n              *(size_t *)((int)paVar4 + -4) = sVar6;\n              pcVar8[sVar6] = '\0';\n            }\n            else {\n              if (paVar7 == paVar4) {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              }\n              else {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                sVar1 = paVar4->_M_allocated_capacity;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n                if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    **)((int)paVar4 + -0x48) = paVar7;\n                  paVar10->_M_allocated_capacity = sVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)((int)paVar4 + -0x48) = paVar10;\n            }\nLAB_00339b09:\n            *(undefined4 *)((int)paVar4 + -0x44) = 0;\n            **(undefined1 **)((int)paVar4 + -0x48) = 0;\n            paVar4[1]._M_allocated_capacity = paVar4[-3]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + 0x14) = *(undefined4 *)((int)paVar4 + -0x2c);\n            *(undefined4 *)((int)paVar4 + 0x18) = *(undefined4 *)((int)paVar4 + -0x28);\n            *(undefined4 *)((int)paVar4 + 0x1c) = *(undefined4 *)((int)paVar4 + -0x24);\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            paVar7 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)((int)paVar4 + -0x48);\n            paVar4 = paVar10;\n          } while( true );\n        }\n        ((__first._M_current)->input_section_).shndx_ = __val.input_section_.shndx_;\n        ((__first._M_current)->input_section_).p2align_ = __val.input_section_.p2align_;\n        *(undefined4 *)&((__first._M_current)->input_section_).u1_ =\n             __val.input_section_.u1_.data_size._0_4_;\n        *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =\n             __val.input_section_.u1_.data_size._4_4_;\n        ((__first._M_current)->input_section_).u2_ = __val.input_section_.u2_;\n        ((__first._M_current)->input_section_).section_order_index_ =\n             __val.input_section_.section_order_index_;\n        pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == __src) {\n          if (__val.section_name_._M_string_length != 0) {\n            if (__val.section_name_._M_string_length == 1) {\n              *pcVar8 = __val.section_name_.field_2._M_local_buf[0];\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar8,__src,__val.section_name_._M_string_length);\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }\n          ((__first._M_current)->section_name_)._M_string_length =\n               __val.section_name_._M_string_length;\n          pcVar8[__val.section_name_._M_string_length] = '\0';\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar8 == &((__first._M_current)->section_name_).field_2) {\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar3 = ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = pcVar8;\n            if (pcVar8 != (pointer)0x0) goto LAB_00339c3f;\n          }\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\nLAB_00339c3f:\n        __val.section_name_.field_2._M_allocated_capacity = uVar3;\n        __val.section_name_._M_string_length = 0;\n        *__val.section_name_._M_dataplus._M_p = '\0';\n        *(size_type *)&(__first._M_current)->size_ = (size_type)__val.size_;\n        *(size_type *)((int)&(__first._M_current)->size_ + 4) = __val.size_._4_4_;\n        *(size_type *)&(__first._M_current)->addralign_ = (size_type)__val.addralign_;\n        *(size_type *)((int)&(__first._M_current)->addralign_ + 4) = __val.addralign_._4_4_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p != __src) {\n          operator_delete(__val.section_name_._M_dataplus._M_p);\n        }\n      }\n      else {\n        local_64.section_sort_ = __comp._M_comp.section_sort_;\n        __val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity;\n        local_64.filename_sort_ = __comp._M_comp.filename_sort_;\n        __val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c);\n        __val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18);\n        __val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14);\n        __val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff);\n        __val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc);\n        __val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -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             *)__val.section_name_._M_dataplus._M_p == paVar11) {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);\n          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);\n          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n        }\n        else {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }\n        __val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4);\n        __val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14);\n        (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11;\n        *(size_type *)((int)paVar11 + -4) = 0;\n        __val.size_._0_4_ = paVar11[1]._M_allocated_capacity;\n        __val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c);\n        __val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18);\n        paVar11->_M_local_buf[0] = '\0';\n        paVar4 = paVar11;\n        while( true ) {\n          paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)(&paVar4->_M_allocated_capacity + -0x10);\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          bVar5 = gold::Input_section_sorter::operator()\n                            (&local_64,&__val,\n                             (Input_section_info *)(&paVar4->_M_allocated_capacity + -0x18));\n          paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n          if (!bVar5) break;\n          (&paVar4->_M_allocated_capacity)[-8] = (&paVar4->_M_allocated_capacity)[-0x18];\n          (&paVar4->_M_allocated_capacity)[-7] = (&paVar4->_M_allocated_capacity)[-0x17];\n          (&paVar4->_M_allocated_capacity)[-6] = (&paVar4->_M_allocated_capacity)[-0x16];\n          (&paVar4->_M_allocated_capacity)[-5] = (&paVar4->_M_allocated_capacity)[-0x15];\n          (&paVar4->_M_allocated_capacity)[-4] = (&paVar4->_M_allocated_capacity)[-0x14];\n          (&paVar4->_M_allocated_capacity)[-3] = (&paVar4->_M_allocated_capacity)[-0x13];\n          psVar2 = (size_type *)(&paVar4->_M_allocated_capacity)[-0x12];\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar2 == paVar10) {\n            sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n              else {\n                memcpy(paVar7,paVar10,sVar6);\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n            }\n            (&paVar4->_M_allocated_capacity)[-1] = sVar6;\n            paVar7->_M_local_buf[sVar6] = '\0';\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-0x12];\n          }\n          else {\n            if (paVar4 == paVar7) {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            }\n            else {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              sVar1 = paVar4->_M_allocated_capacity;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0) {\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  **)((int)paVar4 + -0x48) = paVar7;\n                paVar10->_M_allocated_capacity = sVar1;\n                goto LAB_0033989e;\n              }\n            }\n            *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)((int)paVar4 + -0x48) = paVar10;\n            paVar7 = paVar10;\n          }\nLAB_0033989e:\n          (&paVar4->_M_allocated_capacity)[-0x11] = 0;\n          paVar7->_M_local_buf[0] = '\0';\n          (&paVar4->_M_allocated_capacity)[4] = (&paVar4->_M_allocated_capacity)[-0xc];\n          (&paVar4->_M_allocated_capacity)[5] = (&paVar4->_M_allocated_capacity)[-0xb];\n          (&paVar4->_M_allocated_capacity)[6] = (&paVar4->_M_allocated_capacity)[-10];\n          (&paVar4->_M_allocated_capacity)[7] = (&paVar4->_M_allocated_capacity)[-9];\n          paVar4 = paVar10;\n        }\n        (&paVar4->_M_allocated_capacity)[-8] = __val.input_section_.shndx_;\n        (&paVar4->_M_allocated_capacity)[-7] = __val.input_section_.p2align_;\n        (&paVar4->_M_allocated_capacity)[-6] = __val.input_section_.u1_.data_size._0_4_;\n        (&paVar4->_M_allocated_capacity)[-5] = __val.input_section_.u1_.data_size._4_4_;\n        *(anon_union_4_4_139239c7_for_u2_ *)(&paVar4->_M_allocated_capacity + -4) =\n             __val.input_section_.u2_;\n        (&paVar4->_M_allocated_capacity)[-3] = __val.input_section_.section_order_index_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == __src) {\n          if (__val.section_name_._M_string_length != 0) {\n            if (__val.section_name_._M_string_length == 1) {\n              paVar7->_M_local_buf[0] = __val.section_name_.field_2._M_local_buf[0];\n              (&paVar4->_M_allocated_capacity)[-1] = 1;\n              *(undefined1 *)((&paVar4->_M_allocated_capacity)[-2] + 1) = 0;\n              uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n              goto LAB_003399e3;\n            }\n            memcpy(paVar7,__src,__val.section_name_._M_string_length);\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-2];\n          }\n          (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n          paVar7->_M_local_buf[__val.section_name_._M_string_length] = '\0';\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if (paVar4 == paVar7) {\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            uVar3 = paVar4->_M_allocated_capacity;\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = (pointer)paVar7;\n            if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) goto LAB_003399e3;\n          }\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\nLAB_003399e3:\n        __val.section_name_.field_2._M_allocated_capacity = uVar3;\n        __val.section_name_._M_string_length = 0;\n        *__val.section_name_._M_dataplus._M_p = '\0';\n        (&paVar4->_M_allocated_capacity)[4] = (size_type)__val.size_;\n        (&paVar4->_M_allocated_capacity)[5] = __val.size_._4_4_;\n        (&paVar4->_M_allocated_capacity)[6] = (size_type)__val.addralign_;\n        (&paVar4->_M_allocated_capacity)[7] = __val.addralign_._4_4_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p != __src) {\n          operator_delete(__val.section_name_._M_dataplus._M_p);\n        }\n      }\n      local_78 = (Input_section_info *)(paVar11 + 2);\n      paVar11 = paVar11 + 4;\n    } while (__last._M_current != local_78);\n  }" { (expression_statement "paVar11 = &__first._M_current[1].section_name_.field_2;" (assignment_expression "paVar11 = &__first._M_current[1].section_name_.field_2" identifier = (pointer_expression "&__first._M_current[1].section_name_.field_2" & (field_expression "__first._M_current[1].section_name_.field_2" (field_expression "__first._M_current[1].section_name_" (subscript_expression "__first._M_current[1]" (field_expression "__first._M_current" identifier . field_identifier) [ number_literal ]) . field_identifier) . field_identifier))) ;) (expression_statement "__src = &__val.section_name_.field_2;" (assignment_expression "__src = &__val.section_name_.field_2" identifier = (pointer_expression "&__val.section_name_.field_2" & (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier))) ;) (do_statement "do {\n      bVar5 = gold::Input_section_sorter::operator()\n                        (&__comp._M_comp,(Input_section_info *)(paVar11 + 0xfffffffe),\n                         __first._M_current);\n      if (bVar5) {\n        __val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity;\n        __val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c);\n        __val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18);\n        __val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14);\n        __val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff);\n        __val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc);\n        __val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -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             *)__val.section_name_._M_dataplus._M_p == paVar11) {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);\n          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);\n          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n        }\n        else {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }\n        __val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14);\n        __val.size_._0_4_ = paVar11[1]._M_allocated_capacity;\n        (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11;\n        __val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4);\n        iVar9 = (int)(paVar11 + 0xfffffffe) - (int)__first._M_current;\n        paVar11->_M_local_buf[0] = '\0';\n        __val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c);\n        __val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18);\n        local_70 = iVar9 >> 6;\n        *(size_type *)((int)paVar11 + -4) = 0;\n        paVar7 = paVar11;\n        paVar4 = paVar11;\n        if (0 < iVar9) {\n          do {\n            paVar10 = paVar4 + -4;\n            paVar4[-2]._M_allocated_capacity = paVar4[-6]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0x1c) = *(undefined4 *)((int)paVar4 + -0x5c);\n            *(undefined4 *)((int)paVar4 + -0x18) = *(undefined4 *)((int)paVar4 + -0x58);\n            *(undefined4 *)((int)paVar4 + -0x14) = *(undefined4 *)((int)paVar4 + -0x54);\n            paVar4[-1]._M_allocated_capacity = paVar4[-5]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0xc) = *(undefined4 *)((int)paVar4 + -0x4c);\n            psVar2 = *(size_type **)((int)paVar4 + -0x48);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar2 == paVar10) {\n              sVar6 = *(size_t *)((int)paVar4 + -0x44);\n              if (sVar6 != 0) {\n                if (sVar6 == 1) {\n                  paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n                else {\n                  memcpy(paVar7,paVar10,sVar6);\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n              }\n              pcVar8 = (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n              *(size_t *)((int)paVar4 + -4) = sVar6;\n              pcVar8[sVar6] = '\0';\n            }\n            else {\n              if (paVar7 == paVar4) {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              }\n              else {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                sVar1 = paVar4->_M_allocated_capacity;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n                if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    **)((int)paVar4 + -0x48) = paVar7;\n                  paVar10->_M_allocated_capacity = sVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)((int)paVar4 + -0x48) = paVar10;\n            }\nLAB_00339b09:\n            *(undefined4 *)((int)paVar4 + -0x44) = 0;\n            **(undefined1 **)((int)paVar4 + -0x48) = 0;\n            paVar4[1]._M_allocated_capacity = paVar4[-3]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + 0x14) = *(undefined4 *)((int)paVar4 + -0x2c);\n            *(undefined4 *)((int)paVar4 + 0x18) = *(undefined4 *)((int)paVar4 + -0x28);\n            *(undefined4 *)((int)paVar4 + 0x1c) = *(undefined4 *)((int)paVar4 + -0x24);\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            paVar7 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)((int)paVar4 + -0x48);\n            paVar4 = paVar10;\n          } while( true );\n        }\n        ((__first._M_current)->input_section_).shndx_ = __val.input_section_.shndx_;\n        ((__first._M_current)->input_section_).p2align_ = __val.input_section_.p2align_;\n        *(undefined4 *)&((__first._M_current)->input_section_).u1_ =\n             __val.input_section_.u1_.data_size._0_4_;\n        *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =\n             __val.input_section_.u1_.data_size._4_4_;\n        ((__first._M_current)->input_section_).u2_ = __val.input_section_.u2_;\n        ((__first._M_current)->input_section_).section_order_index_ =\n             __val.input_section_.section_order_index_;\n        pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == __src) {\n          if (__val.section_name_._M_string_length != 0) {\n            if (__val.section_name_._M_string_length == 1) {\n              *pcVar8 = __val.section_name_.field_2._M_local_buf[0];\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar8,__src,__val.section_name_._M_string_length);\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }\n          ((__first._M_current)->section_name_)._M_string_length =\n               __val.section_name_._M_string_length;\n          pcVar8[__val.section_name_._M_string_length] = '\0';\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar8 == &((__first._M_current)->section_name_).field_2) {\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar3 = ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = pcVar8;\n            if (pcVar8 != (pointer)0x0) goto LAB_00339c3f;\n          }\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\nLAB_00339c3f:\n        __val.section_name_.field_2._M_allocated_capacity = uVar3;\n        __val.section_name_._M_string_length = 0;\n        *__val.section_name_._M_dataplus._M_p = '\0';\n        *(size_type *)&(__first._M_current)->size_ = (size_type)__val.size_;\n        *(size_type *)((int)&(__first._M_current)->size_ + 4) = __val.size_._4_4_;\n        *(size_type *)&(__first._M_current)->addralign_ = (size_type)__val.addralign_;\n        *(size_type *)((int)&(__first._M_current)->addralign_ + 4) = __val.addralign_._4_4_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p != __src) {\n          operator_delete(__val.section_name_._M_dataplus._M_p);\n        }\n      }\n      else {\n        local_64.section_sort_ = __comp._M_comp.section_sort_;\n        __val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity;\n        local_64.filename_sort_ = __comp._M_comp.filename_sort_;\n        __val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c);\n        __val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18);\n        __val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14);\n        __val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff);\n        __val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc);\n        __val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -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             *)__val.section_name_._M_dataplus._M_p == paVar11) {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);\n          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);\n          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n        }\n        else {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }\n        __val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4);\n        __val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14);\n        (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11;\n        *(size_type *)((int)paVar11 + -4) = 0;\n        __val.size_._0_4_ = paVar11[1]._M_allocated_capacity;\n        __val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c);\n        __val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18);\n        paVar11->_M_local_buf[0] = '\0';\n        paVar4 = paVar11;\n        while( true ) {\n          paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)(&paVar4->_M_allocated_capacity + -0x10);\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          bVar5 = gold::Input_section_sorter::operator()\n                            (&local_64,&__val,\n                             (Input_section_info *)(&paVar4->_M_allocated_capacity + -0x18));\n          paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n          if (!bVar5) break;\n          (&paVar4->_M_allocated_capacity)[-8] = (&paVar4->_M_allocated_capacity)[-0x18];\n          (&paVar4->_M_allocated_capacity)[-7] = (&paVar4->_M_allocated_capacity)[-0x17];\n          (&paVar4->_M_allocated_capacity)[-6] = (&paVar4->_M_allocated_capacity)[-0x16];\n          (&paVar4->_M_allocated_capacity)[-5] = (&paVar4->_M_allocated_capacity)[-0x15];\n          (&paVar4->_M_allocated_capacity)[-4] = (&paVar4->_M_allocated_capacity)[-0x14];\n          (&paVar4->_M_allocated_capacity)[-3] = (&paVar4->_M_allocated_capacity)[-0x13];\n          psVar2 = (size_type *)(&paVar4->_M_allocated_capacity)[-0x12];\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar2 == paVar10) {\n            sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n              else {\n                memcpy(paVar7,paVar10,sVar6);\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n            }\n            (&paVar4->_M_allocated_capacity)[-1] = sVar6;\n            paVar7->_M_local_buf[sVar6] = '\0';\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-0x12];\n          }\n          else {\n            if (paVar4 == paVar7) {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            }\n            else {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              sVar1 = paVar4->_M_allocated_capacity;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0) {\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  **)((int)paVar4 + -0x48) = paVar7;\n                paVar10->_M_allocated_capacity = sVar1;\n                goto LAB_0033989e;\n              }\n            }\n            *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)((int)paVar4 + -0x48) = paVar10;\n            paVar7 = paVar10;\n          }\nLAB_0033989e:\n          (&paVar4->_M_allocated_capacity)[-0x11] = 0;\n          paVar7->_M_local_buf[0] = '\0';\n          (&paVar4->_M_allocated_capacity)[4] = (&paVar4->_M_allocated_capacity)[-0xc];\n          (&paVar4->_M_allocated_capacity)[5] = (&paVar4->_M_allocated_capacity)[-0xb];\n          (&paVar4->_M_allocated_capacity)[6] = (&paVar4->_M_allocated_capacity)[-10];\n          (&paVar4->_M_allocated_capacity)[7] = (&paVar4->_M_allocated_capacity)[-9];\n          paVar4 = paVar10;\n        }\n        (&paVar4->_M_allocated_capacity)[-8] = __val.input_section_.shndx_;\n        (&paVar4->_M_allocated_capacity)[-7] = __val.input_section_.p2align_;\n        (&paVar4->_M_allocated_capacity)[-6] = __val.input_section_.u1_.data_size._0_4_;\n        (&paVar4->_M_allocated_capacity)[-5] = __val.input_section_.u1_.data_size._4_4_;\n        *(anon_union_4_4_139239c7_for_u2_ *)(&paVar4->_M_allocated_capacity + -4) =\n             __val.input_section_.u2_;\n        (&paVar4->_M_allocated_capacity)[-3] = __val.input_section_.section_order_index_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == __src) {\n          if (__val.section_name_._M_string_length != 0) {\n            if (__val.section_name_._M_string_length == 1) {\n              paVar7->_M_local_buf[0] = __val.section_name_.field_2._M_local_buf[0];\n              (&paVar4->_M_allocated_capacity)[-1] = 1;\n              *(undefined1 *)((&paVar4->_M_allocated_capacity)[-2] + 1) = 0;\n              uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n              goto LAB_003399e3;\n            }\n            memcpy(paVar7,__src,__val.section_name_._M_string_length);\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-2];\n          }\n          (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n          paVar7->_M_local_buf[__val.section_name_._M_string_length] = '\0';\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if (paVar4 == paVar7) {\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            uVar3 = paVar4->_M_allocated_capacity;\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = (pointer)paVar7;\n            if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) goto LAB_003399e3;\n          }\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\nLAB_003399e3:\n        __val.section_name_.field_2._M_allocated_capacity = uVar3;\n        __val.section_name_._M_string_length = 0;\n        *__val.section_name_._M_dataplus._M_p = '\0';\n        (&paVar4->_M_allocated_capacity)[4] = (size_type)__val.size_;\n        (&paVar4->_M_allocated_capacity)[5] = __val.size_._4_4_;\n        (&paVar4->_M_allocated_capacity)[6] = (size_type)__val.addralign_;\n        (&paVar4->_M_allocated_capacity)[7] = __val.addralign_._4_4_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p != __src) {\n          operator_delete(__val.section_name_._M_dataplus._M_p);\n        }\n      }\n      local_78 = (Input_section_info *)(paVar11 + 2);\n      paVar11 = paVar11 + 4;\n    } while (__last._M_current != local_78);" do (compound_statement "{\n      bVar5 = gold::Input_section_sorter::operator()\n                        (&__comp._M_comp,(Input_section_info *)(paVar11 + 0xfffffffe),\n                         __first._M_current);\n      if (bVar5) {\n        __val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity;\n        __val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c);\n        __val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18);\n        __val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14);\n        __val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff);\n        __val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc);\n        __val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -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             *)__val.section_name_._M_dataplus._M_p == paVar11) {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);\n          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);\n          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n        }\n        else {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }\n        __val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14);\n        __val.size_._0_4_ = paVar11[1]._M_allocated_capacity;\n        (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11;\n        __val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4);\n        iVar9 = (int)(paVar11 + 0xfffffffe) - (int)__first._M_current;\n        paVar11->_M_local_buf[0] = '\0';\n        __val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c);\n        __val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18);\n        local_70 = iVar9 >> 6;\n        *(size_type *)((int)paVar11 + -4) = 0;\n        paVar7 = paVar11;\n        paVar4 = paVar11;\n        if (0 < iVar9) {\n          do {\n            paVar10 = paVar4 + -4;\n            paVar4[-2]._M_allocated_capacity = paVar4[-6]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0x1c) = *(undefined4 *)((int)paVar4 + -0x5c);\n            *(undefined4 *)((int)paVar4 + -0x18) = *(undefined4 *)((int)paVar4 + -0x58);\n            *(undefined4 *)((int)paVar4 + -0x14) = *(undefined4 *)((int)paVar4 + -0x54);\n            paVar4[-1]._M_allocated_capacity = paVar4[-5]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0xc) = *(undefined4 *)((int)paVar4 + -0x4c);\n            psVar2 = *(size_type **)((int)paVar4 + -0x48);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar2 == paVar10) {\n              sVar6 = *(size_t *)((int)paVar4 + -0x44);\n              if (sVar6 != 0) {\n                if (sVar6 == 1) {\n                  paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n                else {\n                  memcpy(paVar7,paVar10,sVar6);\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n              }\n              pcVar8 = (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n              *(size_t *)((int)paVar4 + -4) = sVar6;\n              pcVar8[sVar6] = '\0';\n            }\n            else {\n              if (paVar7 == paVar4) {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              }\n              else {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                sVar1 = paVar4->_M_allocated_capacity;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n                if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    **)((int)paVar4 + -0x48) = paVar7;\n                  paVar10->_M_allocated_capacity = sVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)((int)paVar4 + -0x48) = paVar10;\n            }\nLAB_00339b09:\n            *(undefined4 *)((int)paVar4 + -0x44) = 0;\n            **(undefined1 **)((int)paVar4 + -0x48) = 0;\n            paVar4[1]._M_allocated_capacity = paVar4[-3]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + 0x14) = *(undefined4 *)((int)paVar4 + -0x2c);\n            *(undefined4 *)((int)paVar4 + 0x18) = *(undefined4 *)((int)paVar4 + -0x28);\n            *(undefined4 *)((int)paVar4 + 0x1c) = *(undefined4 *)((int)paVar4 + -0x24);\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            paVar7 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)((int)paVar4 + -0x48);\n            paVar4 = paVar10;\n          } while( true );\n        }\n        ((__first._M_current)->input_section_).shndx_ = __val.input_section_.shndx_;\n        ((__first._M_current)->input_section_).p2align_ = __val.input_section_.p2align_;\n        *(undefined4 *)&((__first._M_current)->input_section_).u1_ =\n             __val.input_section_.u1_.data_size._0_4_;\n        *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =\n             __val.input_section_.u1_.data_size._4_4_;\n        ((__first._M_current)->input_section_).u2_ = __val.input_section_.u2_;\n        ((__first._M_current)->input_section_).section_order_index_ =\n             __val.input_section_.section_order_index_;\n        pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == __src) {\n          if (__val.section_name_._M_string_length != 0) {\n            if (__val.section_name_._M_string_length == 1) {\n              *pcVar8 = __val.section_name_.field_2._M_local_buf[0];\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar8,__src,__val.section_name_._M_string_length);\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }\n          ((__first._M_current)->section_name_)._M_string_length =\n               __val.section_name_._M_string_length;\n          pcVar8[__val.section_name_._M_string_length] = '\0';\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar8 == &((__first._M_current)->section_name_).field_2) {\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar3 = ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = pcVar8;\n            if (pcVar8 != (pointer)0x0) goto LAB_00339c3f;\n          }\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\nLAB_00339c3f:\n        __val.section_name_.field_2._M_allocated_capacity = uVar3;\n        __val.section_name_._M_string_length = 0;\n        *__val.section_name_._M_dataplus._M_p = '\0';\n        *(size_type *)&(__first._M_current)->size_ = (size_type)__val.size_;\n        *(size_type *)((int)&(__first._M_current)->size_ + 4) = __val.size_._4_4_;\n        *(size_type *)&(__first._M_current)->addralign_ = (size_type)__val.addralign_;\n        *(size_type *)((int)&(__first._M_current)->addralign_ + 4) = __val.addralign_._4_4_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p != __src) {\n          operator_delete(__val.section_name_._M_dataplus._M_p);\n        }\n      }\n      else {\n        local_64.section_sort_ = __comp._M_comp.section_sort_;\n        __val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity;\n        local_64.filename_sort_ = __comp._M_comp.filename_sort_;\n        __val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c);\n        __val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18);\n        __val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14);\n        __val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff);\n        __val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc);\n        __val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -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             *)__val.section_name_._M_dataplus._M_p == paVar11) {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);\n          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);\n          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n        }\n        else {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }\n        __val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4);\n        __val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14);\n        (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11;\n        *(size_type *)((int)paVar11 + -4) = 0;\n        __val.size_._0_4_ = paVar11[1]._M_allocated_capacity;\n        __val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c);\n        __val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18);\n        paVar11->_M_local_buf[0] = '\0';\n        paVar4 = paVar11;\n        while( true ) {\n          paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)(&paVar4->_M_allocated_capacity + -0x10);\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          bVar5 = gold::Input_section_sorter::operator()\n                            (&local_64,&__val,\n                             (Input_section_info *)(&paVar4->_M_allocated_capacity + -0x18));\n          paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n          if (!bVar5) break;\n          (&paVar4->_M_allocated_capacity)[-8] = (&paVar4->_M_allocated_capacity)[-0x18];\n          (&paVar4->_M_allocated_capacity)[-7] = (&paVar4->_M_allocated_capacity)[-0x17];\n          (&paVar4->_M_allocated_capacity)[-6] = (&paVar4->_M_allocated_capacity)[-0x16];\n          (&paVar4->_M_allocated_capacity)[-5] = (&paVar4->_M_allocated_capacity)[-0x15];\n          (&paVar4->_M_allocated_capacity)[-4] = (&paVar4->_M_allocated_capacity)[-0x14];\n          (&paVar4->_M_allocated_capacity)[-3] = (&paVar4->_M_allocated_capacity)[-0x13];\n          psVar2 = (size_type *)(&paVar4->_M_allocated_capacity)[-0x12];\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar2 == paVar10) {\n            sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n              else {\n                memcpy(paVar7,paVar10,sVar6);\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n            }\n            (&paVar4->_M_allocated_capacity)[-1] = sVar6;\n            paVar7->_M_local_buf[sVar6] = '\0';\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-0x12];\n          }\n          else {\n            if (paVar4 == paVar7) {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            }\n            else {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              sVar1 = paVar4->_M_allocated_capacity;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0) {\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  **)((int)paVar4 + -0x48) = paVar7;\n                paVar10->_M_allocated_capacity = sVar1;\n                goto LAB_0033989e;\n              }\n            }\n            *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)((int)paVar4 + -0x48) = paVar10;\n            paVar7 = paVar10;\n          }\nLAB_0033989e:\n          (&paVar4->_M_allocated_capacity)[-0x11] = 0;\n          paVar7->_M_local_buf[0] = '\0';\n          (&paVar4->_M_allocated_capacity)[4] = (&paVar4->_M_allocated_capacity)[-0xc];\n          (&paVar4->_M_allocated_capacity)[5] = (&paVar4->_M_allocated_capacity)[-0xb];\n          (&paVar4->_M_allocated_capacity)[6] = (&paVar4->_M_allocated_capacity)[-10];\n          (&paVar4->_M_allocated_capacity)[7] = (&paVar4->_M_allocated_capacity)[-9];\n          paVar4 = paVar10;\n        }\n        (&paVar4->_M_allocated_capacity)[-8] = __val.input_section_.shndx_;\n        (&paVar4->_M_allocated_capacity)[-7] = __val.input_section_.p2align_;\n        (&paVar4->_M_allocated_capacity)[-6] = __val.input_section_.u1_.data_size._0_4_;\n        (&paVar4->_M_allocated_capacity)[-5] = __val.input_section_.u1_.data_size._4_4_;\n        *(anon_union_4_4_139239c7_for_u2_ *)(&paVar4->_M_allocated_capacity + -4) =\n             __val.input_section_.u2_;\n        (&paVar4->_M_allocated_capacity)[-3] = __val.input_section_.section_order_index_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == __src) {\n          if (__val.section_name_._M_string_length != 0) {\n            if (__val.section_name_._M_string_length == 1) {\n              paVar7->_M_local_buf[0] = __val.section_name_.field_2._M_local_buf[0];\n              (&paVar4->_M_allocated_capacity)[-1] = 1;\n              *(undefined1 *)((&paVar4->_M_allocated_capacity)[-2] + 1) = 0;\n              uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n              goto LAB_003399e3;\n            }\n            memcpy(paVar7,__src,__val.section_name_._M_string_length);\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-2];\n          }\n          (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n          paVar7->_M_local_buf[__val.section_name_._M_string_length] = '\0';\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if (paVar4 == paVar7) {\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            uVar3 = paVar4->_M_allocated_capacity;\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = (pointer)paVar7;\n            if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) goto LAB_003399e3;\n          }\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\nLAB_003399e3:\n        __val.section_name_.field_2._M_allocated_capacity = uVar3;\n        __val.section_name_._M_string_length = 0;\n        *__val.section_name_._M_dataplus._M_p = '\0';\n        (&paVar4->_M_allocated_capacity)[4] = (size_type)__val.size_;\n        (&paVar4->_M_allocated_capacity)[5] = __val.size_._4_4_;\n        (&paVar4->_M_allocated_capacity)[6] = (size_type)__val.addralign_;\n        (&paVar4->_M_allocated_capacity)[7] = __val.addralign_._4_4_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p != __src) {\n          operator_delete(__val.section_name_._M_dataplus._M_p);\n        }\n      }" { (ERROR "bVar5 = gold::" (assignment_expression "bVar5 = gold" identifier = identifier) : :) (labeled_statement "Input_section_sorter::operator()\n                        (&__comp._M_comp,(Input_section_info *)(paVar11 + 0xfffffffe),\n                         __first._M_current);" statement_identifier : (ERROR ":" :) (expression_statement "operator()\n                        (&__comp._M_comp,(Input_section_info *)(paVar11 + 0xfffffffe),\n                         __first._M_current);" (call_expression "operator()\n                        (&__comp._M_comp,(Input_section_info *)(paVar11 + 0xfffffffe),\n                         __first._M_current)" (call_expression "operator()" identifier (argument_list "()" ( ))) (argument_list "(&__comp._M_comp,(Input_section_info *)(paVar11 + 0xfffffffe),\n                         __first._M_current)" ( (pointer_expression "&__comp._M_comp" & (field_expression "__comp._M_comp" identifier . field_identifier)) , (cast_expression "(Input_section_info *)(paVar11 + 0xfffffffe)" ( (type_descriptor "Input_section_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar11 + 0xfffffffe)" ( (binary_expression "paVar11 + 0xfffffffe" identifier + number_literal) ))) , (field_expression "__first._M_current" identifier . field_identifier) ))) ;)) (if_statement "if (bVar5) {\n        __val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity;\n        __val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c);\n        __val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18);\n        __val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14);\n        __val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff);\n        __val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc);\n        __val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -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             *)__val.section_name_._M_dataplus._M_p == paVar11) {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);\n          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);\n          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n        }\n        else {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }\n        __val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14);\n        __val.size_._0_4_ = paVar11[1]._M_allocated_capacity;\n        (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11;\n        __val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4);\n        iVar9 = (int)(paVar11 + 0xfffffffe) - (int)__first._M_current;\n        paVar11->_M_local_buf[0] = '\0';\n        __val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c);\n        __val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18);\n        local_70 = iVar9 >> 6;\n        *(size_type *)((int)paVar11 + -4) = 0;\n        paVar7 = paVar11;\n        paVar4 = paVar11;\n        if (0 < iVar9) {\n          do {\n            paVar10 = paVar4 + -4;\n            paVar4[-2]._M_allocated_capacity = paVar4[-6]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0x1c) = *(undefined4 *)((int)paVar4 + -0x5c);\n            *(undefined4 *)((int)paVar4 + -0x18) = *(undefined4 *)((int)paVar4 + -0x58);\n            *(undefined4 *)((int)paVar4 + -0x14) = *(undefined4 *)((int)paVar4 + -0x54);\n            paVar4[-1]._M_allocated_capacity = paVar4[-5]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0xc) = *(undefined4 *)((int)paVar4 + -0x4c);\n            psVar2 = *(size_type **)((int)paVar4 + -0x48);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar2 == paVar10) {\n              sVar6 = *(size_t *)((int)paVar4 + -0x44);\n              if (sVar6 != 0) {\n                if (sVar6 == 1) {\n                  paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n                else {\n                  memcpy(paVar7,paVar10,sVar6);\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n              }\n              pcVar8 = (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n              *(size_t *)((int)paVar4 + -4) = sVar6;\n              pcVar8[sVar6] = '\0';\n            }\n            else {\n              if (paVar7 == paVar4) {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              }\n              else {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                sVar1 = paVar4->_M_allocated_capacity;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n                if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    **)((int)paVar4 + -0x48) = paVar7;\n                  paVar10->_M_allocated_capacity = sVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)((int)paVar4 + -0x48) = paVar10;\n            }\nLAB_00339b09:\n            *(undefined4 *)((int)paVar4 + -0x44) = 0;\n            **(undefined1 **)((int)paVar4 + -0x48) = 0;\n            paVar4[1]._M_allocated_capacity = paVar4[-3]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + 0x14) = *(undefined4 *)((int)paVar4 + -0x2c);\n            *(undefined4 *)((int)paVar4 + 0x18) = *(undefined4 *)((int)paVar4 + -0x28);\n            *(undefined4 *)((int)paVar4 + 0x1c) = *(undefined4 *)((int)paVar4 + -0x24);\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            paVar7 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)((int)paVar4 + -0x48);\n            paVar4 = paVar10;\n          } while( true );\n        }\n        ((__first._M_current)->input_section_).shndx_ = __val.input_section_.shndx_;\n        ((__first._M_current)->input_section_).p2align_ = __val.input_section_.p2align_;\n        *(undefined4 *)&((__first._M_current)->input_section_).u1_ =\n             __val.input_section_.u1_.data_size._0_4_;\n        *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =\n             __val.input_section_.u1_.data_size._4_4_;\n        ((__first._M_current)->input_section_).u2_ = __val.input_section_.u2_;\n        ((__first._M_current)->input_section_).section_order_index_ =\n             __val.input_section_.section_order_index_;\n        pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == __src) {\n          if (__val.section_name_._M_string_length != 0) {\n            if (__val.section_name_._M_string_length == 1) {\n              *pcVar8 = __val.section_name_.field_2._M_local_buf[0];\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar8,__src,__val.section_name_._M_string_length);\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }\n          ((__first._M_current)->section_name_)._M_string_length =\n               __val.section_name_._M_string_length;\n          pcVar8[__val.section_name_._M_string_length] = '\0';\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar8 == &((__first._M_current)->section_name_).field_2) {\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar3 = ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = pcVar8;\n            if (pcVar8 != (pointer)0x0) goto LAB_00339c3f;\n          }\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\nLAB_00339c3f:\n        __val.section_name_.field_2._M_allocated_capacity = uVar3;\n        __val.section_name_._M_string_length = 0;\n        *__val.section_name_._M_dataplus._M_p = '\0';\n        *(size_type *)&(__first._M_current)->size_ = (size_type)__val.size_;\n        *(size_type *)((int)&(__first._M_current)->size_ + 4) = __val.size_._4_4_;\n        *(size_type *)&(__first._M_current)->addralign_ = (size_type)__val.addralign_;\n        *(size_type *)((int)&(__first._M_current)->addralign_ + 4) = __val.addralign_._4_4_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p != __src) {\n          operator_delete(__val.section_name_._M_dataplus._M_p);\n        }\n      }\n      else {\n        local_64.section_sort_ = __comp._M_comp.section_sort_;\n        __val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity;\n        local_64.filename_sort_ = __comp._M_comp.filename_sort_;\n        __val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c);\n        __val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18);\n        __val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14);\n        __val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff);\n        __val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc);\n        __val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -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             *)__val.section_name_._M_dataplus._M_p == paVar11) {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);\n          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);\n          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n        }\n        else {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }\n        __val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4);\n        __val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14);\n        (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11;\n        *(size_type *)((int)paVar11 + -4) = 0;\n        __val.size_._0_4_ = paVar11[1]._M_allocated_capacity;\n        __val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c);\n        __val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18);\n        paVar11->_M_local_buf[0] = '\0';\n        paVar4 = paVar11;\n        while( true ) {\n          paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)(&paVar4->_M_allocated_capacity + -0x10);\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          bVar5 = gold::Input_section_sorter::operator()\n                            (&local_64,&__val,\n                             (Input_section_info *)(&paVar4->_M_allocated_capacity + -0x18));\n          paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n          if (!bVar5) break;\n          (&paVar4->_M_allocated_capacity)[-8] = (&paVar4->_M_allocated_capacity)[-0x18];\n          (&paVar4->_M_allocated_capacity)[-7] = (&paVar4->_M_allocated_capacity)[-0x17];\n          (&paVar4->_M_allocated_capacity)[-6] = (&paVar4->_M_allocated_capacity)[-0x16];\n          (&paVar4->_M_allocated_capacity)[-5] = (&paVar4->_M_allocated_capacity)[-0x15];\n          (&paVar4->_M_allocated_capacity)[-4] = (&paVar4->_M_allocated_capacity)[-0x14];\n          (&paVar4->_M_allocated_capacity)[-3] = (&paVar4->_M_allocated_capacity)[-0x13];\n          psVar2 = (size_type *)(&paVar4->_M_allocated_capacity)[-0x12];\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar2 == paVar10) {\n            sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n              else {\n                memcpy(paVar7,paVar10,sVar6);\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n            }\n            (&paVar4->_M_allocated_capacity)[-1] = sVar6;\n            paVar7->_M_local_buf[sVar6] = '\0';\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-0x12];\n          }\n          else {\n            if (paVar4 == paVar7) {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            }\n            else {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              sVar1 = paVar4->_M_allocated_capacity;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0) {\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  **)((int)paVar4 + -0x48) = paVar7;\n                paVar10->_M_allocated_capacity = sVar1;\n                goto LAB_0033989e;\n              }\n            }\n            *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)((int)paVar4 + -0x48) = paVar10;\n            paVar7 = paVar10;\n          }\nLAB_0033989e:\n          (&paVar4->_M_allocated_capacity)[-0x11] = 0;\n          paVar7->_M_local_buf[0] = '\0';\n          (&paVar4->_M_allocated_capacity)[4] = (&paVar4->_M_allocated_capacity)[-0xc];\n          (&paVar4->_M_allocated_capacity)[5] = (&paVar4->_M_allocated_capacity)[-0xb];\n          (&paVar4->_M_allocated_capacity)[6] = (&paVar4->_M_allocated_capacity)[-10];\n          (&paVar4->_M_allocated_capacity)[7] = (&paVar4->_M_allocated_capacity)[-9];\n          paVar4 = paVar10;\n        }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n        __val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity;\n        __val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c);\n        __val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18);\n        __val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14);\n        __val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff);\n        __val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc);\n        __val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -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             *)__val.section_name_._M_dataplus._M_p == paVar11) {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);\n          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);\n          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n        }\n        else {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }\n        __val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14);\n        __val.size_._0_4_ = paVar11[1]._M_allocated_capacity;\n        (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11;\n        __val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4);\n        iVar9 = (int)(paVar11 + 0xfffffffe) - (int)__first._M_current;\n        paVar11->_M_local_buf[0] = '\0';\n        __val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c);\n        __val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18);\n        local_70 = iVar9 >> 6;\n        *(size_type *)((int)paVar11 + -4) = 0;\n        paVar7 = paVar11;\n        paVar4 = paVar11;\n        if (0 < iVar9) {\n          do {\n            paVar10 = paVar4 + -4;\n            paVar4[-2]._M_allocated_capacity = paVar4[-6]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0x1c) = *(undefined4 *)((int)paVar4 + -0x5c);\n            *(undefined4 *)((int)paVar4 + -0x18) = *(undefined4 *)((int)paVar4 + -0x58);\n            *(undefined4 *)((int)paVar4 + -0x14) = *(undefined4 *)((int)paVar4 + -0x54);\n            paVar4[-1]._M_allocated_capacity = paVar4[-5]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0xc) = *(undefined4 *)((int)paVar4 + -0x4c);\n            psVar2 = *(size_type **)((int)paVar4 + -0x48);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar2 == paVar10) {\n              sVar6 = *(size_t *)((int)paVar4 + -0x44);\n              if (sVar6 != 0) {\n                if (sVar6 == 1) {\n                  paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n                else {\n                  memcpy(paVar7,paVar10,sVar6);\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n              }\n              pcVar8 = (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n              *(size_t *)((int)paVar4 + -4) = sVar6;\n              pcVar8[sVar6] = '\0';\n            }\n            else {\n              if (paVar7 == paVar4) {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              }\n              else {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                sVar1 = paVar4->_M_allocated_capacity;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n                if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    **)((int)paVar4 + -0x48) = paVar7;\n                  paVar10->_M_allocated_capacity = sVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)((int)paVar4 + -0x48) = paVar10;\n            }\nLAB_00339b09:\n            *(undefined4 *)((int)paVar4 + -0x44) = 0;\n            **(undefined1 **)((int)paVar4 + -0x48) = 0;\n            paVar4[1]._M_allocated_capacity = paVar4[-3]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + 0x14) = *(undefined4 *)((int)paVar4 + -0x2c);\n            *(undefined4 *)((int)paVar4 + 0x18) = *(undefined4 *)((int)paVar4 + -0x28);\n            *(undefined4 *)((int)paVar4 + 0x1c) = *(undefined4 *)((int)paVar4 + -0x24);\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            paVar7 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)((int)paVar4 + -0x48);\n            paVar4 = paVar10;\n          } while( true );\n        }\n        ((__first._M_current)->input_section_).shndx_ = __val.input_section_.shndx_;\n        ((__first._M_current)->input_section_).p2align_ = __val.input_section_.p2align_;\n        *(undefined4 *)&((__first._M_current)->input_section_).u1_ =\n             __val.input_section_.u1_.data_size._0_4_;\n        *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =\n             __val.input_section_.u1_.data_size._4_4_;\n        ((__first._M_current)->input_section_).u2_ = __val.input_section_.u2_;\n        ((__first._M_current)->input_section_).section_order_index_ =\n             __val.input_section_.section_order_index_;\n        pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == __src) {\n          if (__val.section_name_._M_string_length != 0) {\n            if (__val.section_name_._M_string_length == 1) {\n              *pcVar8 = __val.section_name_.field_2._M_local_buf[0];\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar8,__src,__val.section_name_._M_string_length);\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }\n          ((__first._M_current)->section_name_)._M_string_length =\n               __val.section_name_._M_string_length;\n          pcVar8[__val.section_name_._M_string_length] = '\0';\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar8 == &((__first._M_current)->section_name_).field_2) {\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar3 = ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = pcVar8;\n            if (pcVar8 != (pointer)0x0) goto LAB_00339c3f;\n          }\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\nLAB_00339c3f:\n        __val.section_name_.field_2._M_allocated_capacity = uVar3;\n        __val.section_name_._M_string_length = 0;\n        *__val.section_name_._M_dataplus._M_p = '\0';\n        *(size_type *)&(__first._M_current)->size_ = (size_type)__val.size_;\n        *(size_type *)((int)&(__first._M_current)->size_ + 4) = __val.size_._4_4_;\n        *(size_type *)&(__first._M_current)->addralign_ = (size_type)__val.addralign_;\n        *(size_type *)((int)&(__first._M_current)->addralign_ + 4) = __val.addralign_._4_4_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p != __src) {\n          operator_delete(__val.section_name_._M_dataplus._M_p);\n        }\n      }" { (expression_statement "__val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity;" (assignment_expression "__val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity" (field_expression "__val.input_section_.shndx_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier) = (field_expression "paVar11[0xfffffffe]._M_allocated_capacity" (subscript_expression "paVar11[0xfffffffe]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "__val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c);" (assignment_expression "__val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c)" (field_expression "__val.input_section_.p2align_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(uint *)((int)paVar11 + -0x1c)" * (cast_expression "(uint *)((int)paVar11 + -0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + -0x1c)" ( (binary_expression "(int)paVar11 + -0x1c" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18);" (assignment_expression "__val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18)" (field_expression "__val.input_section_.u1_.data_size._0_4_" (field_expression "__val.input_section_.u1_.data_size" (field_expression "__val.input_section_.u1_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)paVar11 + -0x18)" * (cast_expression "(undefined4 *)((int)paVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + -0x18)" ( (binary_expression "(int)paVar11 + -0x18" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14);" (assignment_expression "__val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14)" (field_expression "__val.input_section_.u1_.data_size._4_4_" (field_expression "__val.input_section_.u1_.data_size" (field_expression "__val.input_section_.u1_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)paVar11 + -0x14)" * (cast_expression "(undefined4 *)((int)paVar11 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + -0x14)" ( (binary_expression "(int)paVar11 + -0x14" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff);" (assignment_expression "__val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff)" (field_expression "__val.input_section_.u2_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff)" * (cast_expression "(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff)" ( (type_descriptor "anon_union_4_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar11 + 0xffffffff)" ( (binary_expression "paVar11 + 0xffffffff" identifier + number_literal) ))))) ;) (expression_statement "__val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc);" (assignment_expression "__val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc)" (field_expression "__val.input_section_.section_order_index_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(uint *)((int)paVar11 + -0xc)" * (cast_expression "(uint *)((int)paVar11 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + -0xc)" ( (binary_expression "(int)paVar11 + -0xc" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p;" (assignment_expression "__val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p" (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "(((string *)((int)paVar11 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar11 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar11 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar11 + -8))" ( (cast_expression "(string *)((int)paVar11 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + -8)" ( (binary_expression "(int)paVar11 + -8" (cast_expression "(int)paVar11" ( (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             *)__val.section_name_._M_dataplus._M_p == paVar11) {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);\n          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);\n          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n        }\n        else {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == paVar11)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == paVar11)" ( (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             *)__val.section_name_._M_dataplus._M_p == paVar11" (binary_expression "allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)__val.section_name_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier))) == identifier) )) )) (compound_statement "{\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);\n          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);\n          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n        }" { (expression_statement "__val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;" (assignment_expression "__val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity" (field_expression "__val.section_name_.field_2._M_allocated_capacity" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "paVar11->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "__val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);" (assignment_expression "__val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4)" (field_expression "__val.section_name_.field_2._4_4_" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)paVar11 + 4)" * (cast_expression "(undefined4 *)((int)paVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + 4)" ( (binary_expression "(int)paVar11 + 4" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);" (assignment_expression "__val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8)" (field_expression "__val.section_name_.field_2._8_4_" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)paVar11 + 8)" * (cast_expression "(undefined4 *)((int)paVar11 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + 8)" ( (binary_expression "(int)paVar11 + 8" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);" (assignment_expression "__val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc)" (field_expression "__val.section_name_.field_2._12_4_" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)paVar11 + 0xc)" * (cast_expression "(undefined4 *)((int)paVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + 0xc)" ( (binary_expression "(int)paVar11 + 0xc" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__val.section_name_._M_dataplus._M_p = (pointer)__src;" (assignment_expression "__val.section_name_._M_dataplus._M_p = (pointer)__src" (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)__src" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) }) (else_clause "else {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }" else (compound_statement "{\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }" { (expression_statement "__val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;" (assignment_expression "__val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity" (field_expression "__val.section_name_.field_2._M_allocated_capacity" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "paVar11->_M_allocated_capacity" identifier -> field_identifier)) ;) }))) (expression_statement "__val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14);" (assignment_expression "__val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14)" (field_expression "__val.size_._4_4_" (field_expression "__val.size_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(size_type *)((int)paVar11 + 0x14)" * (cast_expression "(size_type *)((int)paVar11 + 0x14)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + 0x14)" ( (binary_expression "(int)paVar11 + 0x14" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__val.size_._0_4_ = paVar11[1]._M_allocated_capacity;" (assignment_expression "__val.size_._0_4_ = paVar11[1]._M_allocated_capacity" (field_expression "__val.size_._0_4_" (field_expression "__val.size_" identifier . field_identifier) . field_identifier) = (field_expression "paVar11[1]._M_allocated_capacity" (subscript_expression "paVar11[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "(((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11;" (assignment_expression "(((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11" (field_expression "(((string *)((int)paVar11 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar11 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar11 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar11 + -8))" ( (cast_expression "(string *)((int)paVar11 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + -8)" ( (binary_expression "(int)paVar11 + -8" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar11" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "__val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4);" (assignment_expression "__val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4)" (field_expression "__val.section_name_._M_string_length" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(size_type *)((int)paVar11 + -4)" * (cast_expression "(size_type *)((int)paVar11 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + -4)" ( (binary_expression "(int)paVar11 + -4" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar9 = (int)(paVar11 + 0xfffffffe) - (int)__first._M_current;" (assignment_expression "iVar9 = (int)(paVar11 + 0xfffffffe) - (int)__first._M_current" identifier = (binary_expression "(int)(paVar11 + 0xfffffffe) - (int)__first._M_current" (cast_expression "(int)(paVar11 + 0xfffffffe)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(paVar11 + 0xfffffffe)" ( (binary_expression "paVar11 + 0xfffffffe" identifier + number_literal) ))) - (cast_expression "(int)__first._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__first._M_current" identifier . field_identifier)))) ;) (expression_statement "paVar11->_M_local_buf[0] = '\0';" (assignment_expression "paVar11->_M_local_buf[0] = '\0'" (subscript_expression "paVar11->_M_local_buf[0]" (field_expression "paVar11->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "__val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c);" (assignment_expression "__val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c)" (field_expression "__val.addralign_._4_4_" (field_expression "__val.addralign_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(size_type *)((int)paVar11 + 0x1c)" * (cast_expression "(size_type *)((int)paVar11 + 0x1c)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + 0x1c)" ( (binary_expression "(int)paVar11 + 0x1c" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18);" (assignment_expression "__val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18)" (field_expression "__val.addralign_._0_4_" (field_expression "__val.addralign_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(size_type *)((int)paVar11 + 0x18)" * (cast_expression "(size_type *)((int)paVar11 + 0x18)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + 0x18)" ( (binary_expression "(int)paVar11 + 0x18" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_70 = iVar9 >> 6;" (assignment_expression "local_70 = iVar9 >> 6" identifier = (binary_expression "iVar9 >> 6" identifier >> number_literal)) ;) (expression_statement "*(size_type *)((int)paVar11 + -4) = 0;" (assignment_expression "*(size_type *)((int)paVar11 + -4) = 0" (pointer_expression "*(size_type *)((int)paVar11 + -4)" * (cast_expression "(size_type *)((int)paVar11 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + -4)" ( (binary_expression "(int)paVar11 + -4" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "paVar7 = paVar11;" (assignment_expression "paVar7 = paVar11" identifier = identifier) ;) (expression_statement "paVar4 = paVar11;" (assignment_expression "paVar4 = paVar11" identifier = identifier) ;) (if_statement "if (0 < iVar9) {\n          do {\n            paVar10 = paVar4 + -4;\n            paVar4[-2]._M_allocated_capacity = paVar4[-6]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0x1c) = *(undefined4 *)((int)paVar4 + -0x5c);\n            *(undefined4 *)((int)paVar4 + -0x18) = *(undefined4 *)((int)paVar4 + -0x58);\n            *(undefined4 *)((int)paVar4 + -0x14) = *(undefined4 *)((int)paVar4 + -0x54);\n            paVar4[-1]._M_allocated_capacity = paVar4[-5]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0xc) = *(undefined4 *)((int)paVar4 + -0x4c);\n            psVar2 = *(size_type **)((int)paVar4 + -0x48);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar2 == paVar10) {\n              sVar6 = *(size_t *)((int)paVar4 + -0x44);\n              if (sVar6 != 0) {\n                if (sVar6 == 1) {\n                  paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n                else {\n                  memcpy(paVar7,paVar10,sVar6);\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n              }\n              pcVar8 = (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n              *(size_t *)((int)paVar4 + -4) = sVar6;\n              pcVar8[sVar6] = '\0';\n            }\n            else {\n              if (paVar7 == paVar4) {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              }\n              else {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                sVar1 = paVar4->_M_allocated_capacity;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n                if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    **)((int)paVar4 + -0x48) = paVar7;\n                  paVar10->_M_allocated_capacity = sVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)((int)paVar4 + -0x48) = paVar10;\n            }\nLAB_00339b09:\n            *(undefined4 *)((int)paVar4 + -0x44) = 0;\n            **(undefined1 **)((int)paVar4 + -0x48) = 0;\n            paVar4[1]._M_allocated_capacity = paVar4[-3]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + 0x14) = *(undefined4 *)((int)paVar4 + -0x2c);\n            *(undefined4 *)((int)paVar4 + 0x18) = *(undefined4 *)((int)paVar4 + -0x28);\n            *(undefined4 *)((int)paVar4 + 0x1c) = *(undefined4 *)((int)paVar4 + -0x24);\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            paVar7 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)((int)paVar4 + -0x48);\n            paVar4 = paVar10;\n          } while( true );\n        }" if (parenthesized_expression "(0 < iVar9)" ( (binary_expression "0 < iVar9" number_literal < identifier) )) (compound_statement "{\n          do {\n            paVar10 = paVar4 + -4;\n            paVar4[-2]._M_allocated_capacity = paVar4[-6]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0x1c) = *(undefined4 *)((int)paVar4 + -0x5c);\n            *(undefined4 *)((int)paVar4 + -0x18) = *(undefined4 *)((int)paVar4 + -0x58);\n            *(undefined4 *)((int)paVar4 + -0x14) = *(undefined4 *)((int)paVar4 + -0x54);\n            paVar4[-1]._M_allocated_capacity = paVar4[-5]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0xc) = *(undefined4 *)((int)paVar4 + -0x4c);\n            psVar2 = *(size_type **)((int)paVar4 + -0x48);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar2 == paVar10) {\n              sVar6 = *(size_t *)((int)paVar4 + -0x44);\n              if (sVar6 != 0) {\n                if (sVar6 == 1) {\n                  paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n                else {\n                  memcpy(paVar7,paVar10,sVar6);\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n              }\n              pcVar8 = (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n              *(size_t *)((int)paVar4 + -4) = sVar6;\n              pcVar8[sVar6] = '\0';\n            }\n            else {\n              if (paVar7 == paVar4) {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              }\n              else {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                sVar1 = paVar4->_M_allocated_capacity;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n                if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    **)((int)paVar4 + -0x48) = paVar7;\n                  paVar10->_M_allocated_capacity = sVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)((int)paVar4 + -0x48) = paVar10;\n            }\nLAB_00339b09:\n            *(undefined4 *)((int)paVar4 + -0x44) = 0;\n            **(undefined1 **)((int)paVar4 + -0x48) = 0;\n            paVar4[1]._M_allocated_capacity = paVar4[-3]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + 0x14) = *(undefined4 *)((int)paVar4 + -0x2c);\n            *(undefined4 *)((int)paVar4 + 0x18) = *(undefined4 *)((int)paVar4 + -0x28);\n            *(undefined4 *)((int)paVar4 + 0x1c) = *(undefined4 *)((int)paVar4 + -0x24);\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            paVar7 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)((int)paVar4 + -0x48);\n            paVar4 = paVar10;\n          } while( true );\n        }" { (do_statement "do {\n            paVar10 = paVar4 + -4;\n            paVar4[-2]._M_allocated_capacity = paVar4[-6]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0x1c) = *(undefined4 *)((int)paVar4 + -0x5c);\n            *(undefined4 *)((int)paVar4 + -0x18) = *(undefined4 *)((int)paVar4 + -0x58);\n            *(undefined4 *)((int)paVar4 + -0x14) = *(undefined4 *)((int)paVar4 + -0x54);\n            paVar4[-1]._M_allocated_capacity = paVar4[-5]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0xc) = *(undefined4 *)((int)paVar4 + -0x4c);\n            psVar2 = *(size_type **)((int)paVar4 + -0x48);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar2 == paVar10) {\n              sVar6 = *(size_t *)((int)paVar4 + -0x44);\n              if (sVar6 != 0) {\n                if (sVar6 == 1) {\n                  paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n                else {\n                  memcpy(paVar7,paVar10,sVar6);\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n              }\n              pcVar8 = (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n              *(size_t *)((int)paVar4 + -4) = sVar6;\n              pcVar8[sVar6] = '\0';\n            }\n            else {\n              if (paVar7 == paVar4) {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              }\n              else {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                sVar1 = paVar4->_M_allocated_capacity;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n                if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    **)((int)paVar4 + -0x48) = paVar7;\n                  paVar10->_M_allocated_capacity = sVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)((int)paVar4 + -0x48) = paVar10;\n            }\nLAB_00339b09:\n            *(undefined4 *)((int)paVar4 + -0x44) = 0;\n            **(undefined1 **)((int)paVar4 + -0x48) = 0;\n            paVar4[1]._M_allocated_capacity = paVar4[-3]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + 0x14) = *(undefined4 *)((int)paVar4 + -0x2c);\n            *(undefined4 *)((int)paVar4 + 0x18) = *(undefined4 *)((int)paVar4 + -0x28);\n            *(undefined4 *)((int)paVar4 + 0x1c) = *(undefined4 *)((int)paVar4 + -0x24);\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            paVar7 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)((int)paVar4 + -0x48);\n            paVar4 = paVar10;\n          } while( true );" do (compound_statement "{\n            paVar10 = paVar4 + -4;\n            paVar4[-2]._M_allocated_capacity = paVar4[-6]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0x1c) = *(undefined4 *)((int)paVar4 + -0x5c);\n            *(undefined4 *)((int)paVar4 + -0x18) = *(undefined4 *)((int)paVar4 + -0x58);\n            *(undefined4 *)((int)paVar4 + -0x14) = *(undefined4 *)((int)paVar4 + -0x54);\n            paVar4[-1]._M_allocated_capacity = paVar4[-5]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + -0xc) = *(undefined4 *)((int)paVar4 + -0x4c);\n            psVar2 = *(size_type **)((int)paVar4 + -0x48);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar2 == paVar10) {\n              sVar6 = *(size_t *)((int)paVar4 + -0x44);\n              if (sVar6 != 0) {\n                if (sVar6 == 1) {\n                  paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n                else {\n                  memcpy(paVar7,paVar10,sVar6);\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n              }\n              pcVar8 = (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n              *(size_t *)((int)paVar4 + -4) = sVar6;\n              pcVar8[sVar6] = '\0';\n            }\n            else {\n              if (paVar7 == paVar4) {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              }\n              else {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                sVar1 = paVar4->_M_allocated_capacity;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n                if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    **)((int)paVar4 + -0x48) = paVar7;\n                  paVar10->_M_allocated_capacity = sVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)((int)paVar4 + -0x48) = paVar10;\n            }" { (expression_statement "paVar10 = paVar4 + -4;" (assignment_expression "paVar10 = paVar4 + -4" identifier = (binary_expression "paVar4 + -4" identifier + number_literal)) ;) (expression_statement "paVar4[-2]._M_allocated_capacity = paVar4[-6]._M_allocated_capacity;" (assignment_expression "paVar4[-2]._M_allocated_capacity = paVar4[-6]._M_allocated_capacity" (field_expression "paVar4[-2]._M_allocated_capacity" (subscript_expression "paVar4[-2]" identifier [ number_literal ]) . field_identifier) = (field_expression "paVar4[-6]._M_allocated_capacity" (subscript_expression "paVar4[-6]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)paVar4 + -0x1c) = *(undefined4 *)((int)paVar4 + -0x5c);" (assignment_expression "*(undefined4 *)((int)paVar4 + -0x1c) = *(undefined4 *)((int)paVar4 + -0x5c)" (pointer_expression "*(undefined4 *)((int)paVar4 + -0x1c)" * (cast_expression "(undefined4 *)((int)paVar4 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar4 + -0x1c)" ( (binary_expression "(int)paVar4 + -0x1c" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)paVar4 + -0x5c)" * (cast_expression "(undefined4 *)((int)paVar4 + -0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar4 + -0x5c)" ( (binary_expression "(int)paVar4 + -0x5c" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)paVar4 + -0x18) = *(undefined4 *)((int)paVar4 + -0x58);" (assignment_expression "*(undefined4 *)((int)paVar4 + -0x18) = *(undefined4 *)((int)paVar4 + -0x58)" (pointer_expression "*(undefined4 *)((int)paVar4 + -0x18)" * (cast_expression "(undefined4 *)((int)paVar4 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar4 + -0x18)" ( (binary_expression "(int)paVar4 + -0x18" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)paVar4 + -0x58)" * (cast_expression "(undefined4 *)((int)paVar4 + -0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar4 + -0x58)" ( (binary_expression "(int)paVar4 + -0x58" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)paVar4 + -0x14) = *(undefined4 *)((int)paVar4 + -0x54);" (assignment_expression "*(undefined4 *)((int)paVar4 + -0x14) = *(undefined4 *)((int)paVar4 + -0x54)" (pointer_expression "*(undefined4 *)((int)paVar4 + -0x14)" * (cast_expression "(undefined4 *)((int)paVar4 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar4 + -0x14)" ( (binary_expression "(int)paVar4 + -0x14" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)paVar4 + -0x54)" * (cast_expression "(undefined4 *)((int)paVar4 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar4 + -0x54)" ( (binary_expression "(int)paVar4 + -0x54" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar4[-1]._M_allocated_capacity = paVar4[-5]._M_allocated_capacity;" (assignment_expression "paVar4[-1]._M_allocated_capacity = paVar4[-5]._M_allocated_capacity" (field_expression "paVar4[-1]._M_allocated_capacity" (subscript_expression "paVar4[-1]" identifier [ number_literal ]) . field_identifier) = (field_expression "paVar4[-5]._M_allocated_capacity" (subscript_expression "paVar4[-5]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)paVar4 + -0xc) = *(undefined4 *)((int)paVar4 + -0x4c);" (assignment_expression "*(undefined4 *)((int)paVar4 + -0xc) = *(undefined4 *)((int)paVar4 + -0x4c)" (pointer_expression "*(undefined4 *)((int)paVar4 + -0xc)" * (cast_expression "(undefined4 *)((int)paVar4 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar4 + -0xc)" ( (binary_expression "(int)paVar4 + -0xc" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)paVar4 + -0x4c)" * (cast_expression "(undefined4 *)((int)paVar4 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar4 + -0x4c)" ( (binary_expression "(int)paVar4 + -0x4c" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "psVar2 = *(size_type **)((int)paVar4 + -0x48);" (assignment_expression "psVar2 = *(size_type **)((int)paVar4 + -0x48)" identifier = (pointer_expression "*(size_type **)((int)paVar4 + -0x48)" * (cast_expression "(size_type **)((int)paVar4 + -0x48)" ( (type_descriptor "size_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)paVar4 + -0x48)" ( (binary_expression "(int)paVar4 + -0x48" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar2 == paVar10) {\n              sVar6 = *(size_t *)((int)paVar4 + -0x44);\n              if (sVar6 != 0) {\n                if (sVar6 == 1) {\n                  paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n                else {\n                  memcpy(paVar7,paVar10,sVar6);\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n              }\n              pcVar8 = (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n              *(size_t *)((int)paVar4 + -4) = sVar6;\n              pcVar8[sVar6] = '\0';\n            }\n            else {\n              if (paVar7 == paVar4) {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              }\n              else {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                sVar1 = paVar4->_M_allocated_capacity;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n                if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    **)((int)paVar4 + -0x48) = paVar7;\n                  paVar10->_M_allocated_capacity = sVar1;\n                  goto LAB_00339b09;\n                }\n              }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar2 == paVar10)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar2 == 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                 *)psVar2 == paVar10" (binary_expression "allocator<char>_>_9\n                 *)psVar2" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                 *)psVar2" identifier * (ERROR ")" )) identifier)) == identifier) )) )) (compound_statement "{\n              sVar6 = *(size_t *)((int)paVar4 + -0x44);\n              if (sVar6 != 0) {\n                if (sVar6 == 1) {\n                  paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n                else {\n                  memcpy(paVar7,paVar10,sVar6);\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n              }\n              pcVar8 = (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n              *(size_t *)((int)paVar4 + -4) = sVar6;\n              pcVar8[sVar6] = '\0';\n            }" { (expression_statement "sVar6 = *(size_t *)((int)paVar4 + -0x44);" (assignment_expression "sVar6 = *(size_t *)((int)paVar4 + -0x44)" identifier = (pointer_expression "*(size_t *)((int)paVar4 + -0x44)" * (cast_expression "(size_t *)((int)paVar4 + -0x44)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar4 + -0x44)" ( (binary_expression "(int)paVar4 + -0x44" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (sVar6 != 0) {\n                if (sVar6 == 1) {\n                  paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n                else {\n                  memcpy(paVar7,paVar10,sVar6);\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n              }" if (parenthesized_expression "(sVar6 != 0)" ( (binary_expression "sVar6 != 0" identifier != number_literal) )) (compound_statement "{\n                if (sVar6 == 1) {\n                  paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n                else {\n                  memcpy(paVar7,paVar10,sVar6);\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n              }" { (if_statement "if (sVar6 == 1) {\n                  paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }\n                else {\n                  memcpy(paVar7,paVar10,sVar6);\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }" if (parenthesized_expression "(sVar6 == 1)" ( (binary_expression "sVar6 == 1" identifier == number_literal) )) (compound_statement "{\n                  paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }" { (expression_statement "paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];" (assignment_expression "paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0]" (subscript_expression "paVar7->_M_local_buf[0]" (field_expression "paVar7->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "paVar10->_M_local_buf[0]" (field_expression "paVar10->_M_local_buf" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "sVar6 = *(size_t *)((int)paVar4 + -0x44);" (assignment_expression "sVar6 = *(size_t *)((int)paVar4 + -0x44)" identifier = (pointer_expression "*(size_t *)((int)paVar4 + -0x44)" * (cast_expression "(size_t *)((int)paVar4 + -0x44)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar4 + -0x44)" ( (binary_expression "(int)paVar4 + -0x44" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n                  memcpy(paVar7,paVar10,sVar6);\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }" else (compound_statement "{\n                  memcpy(paVar7,paVar10,sVar6);\n                  sVar6 = *(size_t *)((int)paVar4 + -0x44);\n                }" { (expression_statement "memcpy(paVar7,paVar10,sVar6);" (call_expression "memcpy(paVar7,paVar10,sVar6)" identifier (argument_list "(paVar7,paVar10,sVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar6 = *(size_t *)((int)paVar4 + -0x44);" (assignment_expression "sVar6 = *(size_t *)((int)paVar4 + -0x44)" identifier = (pointer_expression "*(size_t *)((int)paVar4 + -0x44)" * (cast_expression "(size_t *)((int)paVar4 + -0x44)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar4 + -0x44)" ( (binary_expression "(int)paVar4 + -0x44" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) })) (expression_statement "pcVar8 = (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;" (assignment_expression "pcVar8 = (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p" identifier = (field_expression "(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar4 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar4 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar4 + -8))" ( (cast_expression "(string *)((int)paVar4 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar4 + -8)" ( (binary_expression "(int)paVar4 + -8" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(size_t *)((int)paVar4 + -4) = sVar6;" (assignment_expression "*(size_t *)((int)paVar4 + -4) = sVar6" (pointer_expression "*(size_t *)((int)paVar4 + -4)" * (cast_expression "(size_t *)((int)paVar4 + -4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar4 + -4)" ( (binary_expression "(int)paVar4 + -4" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar8[sVar6] = '\0';" (assignment_expression "pcVar8[sVar6] = '\0'" (subscript_expression "pcVar8[sVar6]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n              if (paVar7 == paVar4) {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              }\n              else {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                sVar1 = paVar4->_M_allocated_capacity;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n                if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    **)((int)paVar4 + -0x48) = paVar7;\n                  paVar10->_M_allocated_capacity = sVar1;\n                  goto LAB_00339b09;\n                }\n              }" else (compound_statement "{\n              if (paVar7 == paVar4) {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              }\n              else {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                sVar1 = paVar4->_M_allocated_capacity;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n                if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    **)((int)paVar4 + -0x48) = paVar7;\n                  paVar10->_M_allocated_capacity = sVar1;\n                  goto LAB_00339b09;\n                }\n              }" { (if_statement "if (paVar7 == paVar4) {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              }\n              else {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                sVar1 = paVar4->_M_allocated_capacity;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n                if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    **)((int)paVar4 + -0x48) = paVar7;\n                  paVar10->_M_allocated_capacity = sVar1;\n                  goto LAB_00339b09;\n                }" if (parenthesized_expression "(paVar7 == paVar4)" ( (binary_expression "paVar7 == paVar4" identifier == identifier) )) (compound_statement "{\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              }" { (expression_statement "(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;" (assignment_expression "(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2" (field_expression "(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar4 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar4 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar4 + -8))" ( (cast_expression "(string *)((int)paVar4 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar4 + -8)" ( (binary_expression "(int)paVar4 + -8" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)psVar2" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "*(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);" (assignment_expression "*(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44)" (pointer_expression "*(size_type *)((int)paVar4 + -4)" * (cast_expression "(size_type *)((int)paVar4 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar4 + -4)" ( (binary_expression "(int)paVar4 + -4" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(size_type *)((int)paVar4 + -0x44)" * (cast_expression "(size_type *)((int)paVar4 + -0x44)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar4 + -0x44)" ( (binary_expression "(int)paVar4 + -0x44" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;" (assignment_expression "paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity" (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier) = (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier)) ;) }) (else_clause "else {\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                sVar1 = paVar4->_M_allocated_capacity;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n                if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    **)((int)paVar4 + -0x48) = paVar7;\n                  paVar10->_M_allocated_capacity = sVar1;\n                  goto LAB_00339b09;\n                }" else (compound_statement "{\n                (((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;\n                sVar1 = paVar4->_M_allocated_capacity;\n                *(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);\n                paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n                if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    **)((int)paVar4 + -0x48) = paVar7;\n                  paVar10->_M_allocated_capacity = sVar1;\n                  goto LAB_00339b09;\n                }" { (expression_statement "(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2;" (assignment_expression "(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p = (pointer)psVar2" (field_expression "(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar4 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar4 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar4 + -8))" ( (cast_expression "(string *)((int)paVar4 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar4 + -8)" ( (binary_expression "(int)paVar4 + -8" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)psVar2" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "sVar1 = paVar4->_M_allocated_capacity;" (assignment_expression "sVar1 = paVar4->_M_allocated_capacity" identifier = (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "*(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44);" (assignment_expression "*(size_type *)((int)paVar4 + -4) = *(size_type *)((int)paVar4 + -0x44)" (pointer_expression "*(size_type *)((int)paVar4 + -4)" * (cast_expression "(size_type *)((int)paVar4 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar4 + -4)" ( (binary_expression "(int)paVar4 + -4" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(size_type *)((int)paVar4 + -0x44)" * (cast_expression "(size_type *)((int)paVar4 + -0x44)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar4 + -0x44)" ( (binary_expression "(int)paVar4 + -0x44" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;" (assignment_expression "paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity" (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier) = (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier)) ;) (if_statement "if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    **)((int)paVar4 + -0x48) = paVar7;" if (parenthesized_expression "(paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    **)" ( (ERROR "paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0) {\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std" (binary_expression "paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0)" identifier != (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                               *)0x0)" ( (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                               *)0x0" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                               *)0x0" identifier * (ERROR ")" )) number_literal)) ))) (ERROR "{\n                  *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>" { * ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<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" identifier < identifier) >) , identifier) : :) (binary_expression "allocator<char>_>_9\n                    **" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                    **" identifier * (pointer_expression "*" * identifier))) )) (expression_statement "((int)paVar4 + -0x48) = paVar7;" (assignment_expression "((int)paVar4 + -0x48) = paVar7" (parenthesized_expression "((int)paVar4 + -0x48)" ( (binary_expression "(int)paVar4 + -0x48" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = identifier) ;)) (expression_statement "paVar10->_M_allocated_capacity = sVar1;" (assignment_expression "paVar10->_M_allocated_capacity = sVar1" (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_00339b09;" goto statement_identifier ;) }))) }))) (expression_statement "*(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)((int)paVar4 + -0x48) = paVar10;" (assignment_expression "*(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)((int)paVar4 + -0x48) = paVar10" (pointer_expression "*(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)((int)paVar4 + -0x48)" * (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                **)((int)paVar4 + -0x48)" (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\n                **" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                **" identifier * (pointer_expression "*" * identifier))) )) (argument_list "((int)paVar4 + -0x48)" ( (binary_expression "(int)paVar4 + -0x48" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) }) (ERROR "LAB_00339b09:\n            *(undefined4 *)((int)paVar4 + -0x44) = 0;\n            **(undefined1 **)((int)paVar4 + -0x48) = 0;\n            paVar4[1]._M_allocated_capacity = paVar4[-3]._M_allocated_capacity;\n            *(undefined4 *)((int)paVar4 + 0x14) = *(undefined4 *)((int)paVar4 + -0x2c);\n            *(undefined4 *)((int)paVar4 + 0x18) = *(undefined4 *)((int)paVar4 + -0x28);\n            *(undefined4 *)((int)paVar4 + 0x1c) = *(undefined4 *)((int)paVar4 + -0x24);\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            paVar7 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)((int)paVar4 + -0x48);\n            paVar4 = paVar10;\n          }" identifier : * ( identifier * ) ( ( primitive_type ) identifier + number_literal ) = number_literal ; * * ( identifier * * ) ( ( primitive_type ) identifier + number_literal ) = number_literal ; identifier [ number_literal ] . identifier = identifier [ number_literal ] . identifier ; * ( identifier * ) ( ( primitive_type ) identifier + number_literal ) = * ( identifier * ) ( ( primitive_type ) identifier + number_literal ) ; * ( identifier * ) ( ( primitive_type ) identifier + number_literal ) = * ( identifier * ) ( ( primitive_type ) identifier + number_literal ) ; * ( identifier * ) ( ( primitive_type ) identifier + number_literal ) = * ( identifier * ) ( ( primitive_type ) identifier + number_literal ) ; identifier = identifier + number_literal ; if ( identifier == number_literal ) break ; identifier = * ( identifier < primitive_type , identifier : : identifier < primitive_type > , identifier : : identifier < primitive_type > identifier > identifier * * ) ( ( primitive_type ) identifier + number_literal ) ; identifier = identifier ; }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "((__first._M_current)->input_section_).shndx_ = __val.input_section_.shndx_;" (assignment_expression "((__first._M_current)->input_section_).shndx_ = __val.input_section_.shndx_" (field_expression "((__first._M_current)->input_section_).shndx_" (parenthesized_expression "((__first._M_current)->input_section_)" ( (field_expression "(__first._M_current)->input_section_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "__val.input_section_.shndx_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "((__first._M_current)->input_section_).p2align_ = __val.input_section_.p2align_;" (assignment_expression "((__first._M_current)->input_section_).p2align_ = __val.input_section_.p2align_" (field_expression "((__first._M_current)->input_section_).p2align_" (parenthesized_expression "((__first._M_current)->input_section_)" ( (field_expression "(__first._M_current)->input_section_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "__val.input_section_.p2align_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)&((__first._M_current)->input_section_).u1_ =\n             __val.input_section_.u1_.data_size._0_4_;" (assignment_expression "*(undefined4 *)&((__first._M_current)->input_section_).u1_ =\n             __val.input_section_.u1_.data_size._0_4_" (pointer_expression "*(undefined4 *)&((__first._M_current)->input_section_).u1_" * (cast_expression "(undefined4 *)&((__first._M_current)->input_section_).u1_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((__first._M_current)->input_section_).u1_" & (field_expression "((__first._M_current)->input_section_).u1_" (parenthesized_expression "((__first._M_current)->input_section_)" ( (field_expression "(__first._M_current)->input_section_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)))) = (field_expression "__val.input_section_.u1_.data_size._0_4_" (field_expression "__val.input_section_.u1_.data_size" (field_expression "__val.input_section_.u1_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =\n             __val.input_section_.u1_.data_size._4_4_;" (assignment_expression "*(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =\n             __val.input_section_.u1_.data_size._4_4_" (pointer_expression "*(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4)" * (cast_expression "(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((__first._M_current)->input_section_).u1_ + 4)" ( (binary_expression "(int)&((__first._M_current)->input_section_).u1_ + 4" (cast_expression "(int)&((__first._M_current)->input_section_).u1_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((__first._M_current)->input_section_).u1_" & (field_expression "((__first._M_current)->input_section_).u1_" (parenthesized_expression "((__first._M_current)->input_section_)" ( (field_expression "(__first._M_current)->input_section_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) + number_literal) )))) = (field_expression "__val.input_section_.u1_.data_size._4_4_" (field_expression "__val.input_section_.u1_.data_size" (field_expression "__val.input_section_.u1_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "((__first._M_current)->input_section_).u2_ = __val.input_section_.u2_;" (assignment_expression "((__first._M_current)->input_section_).u2_ = __val.input_section_.u2_" (field_expression "((__first._M_current)->input_section_).u2_" (parenthesized_expression "((__first._M_current)->input_section_)" ( (field_expression "(__first._M_current)->input_section_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "__val.input_section_.u2_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "((__first._M_current)->input_section_).section_order_index_ =\n             __val.input_section_.section_order_index_;" (assignment_expression "((__first._M_current)->input_section_).section_order_index_ =\n             __val.input_section_.section_order_index_" (field_expression "((__first._M_current)->input_section_).section_order_index_" (parenthesized_expression "((__first._M_current)->input_section_)" ( (field_expression "(__first._M_current)->input_section_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "__val.input_section_.section_order_index_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;" (assignment_expression "pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p" identifier = (field_expression "((__first._M_current)->section_name_)._M_dataplus._M_p" (field_expression "((__first._M_current)->section_name_)._M_dataplus" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == __src) {\n          if (__val.section_name_._M_string_length != 0) {\n            if (__val.section_name_._M_string_length == 1) {\n              *pcVar8 = __val.section_name_.field_2._M_local_buf[0];\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar8,__src,__val.section_name_._M_string_length);\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }\n          ((__first._M_current)->section_name_)._M_string_length =\n               __val.section_name_._M_string_length;\n          pcVar8[__val.section_name_._M_string_length] = '\0';\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar8 == &((__first._M_current)->section_name_).field_2) {\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar3 = ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = pcVar8;\n            if (pcVar8 != (pointer)0x0) goto LAB_00339c3f;\n          }\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == __src)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == __src)" ( (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             *)__val.section_name_._M_dataplus._M_p == __src" (binary_expression "allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)__val.section_name_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier))) == identifier) )) )) (compound_statement "{\n          if (__val.section_name_._M_string_length != 0) {\n            if (__val.section_name_._M_string_length == 1) {\n              *pcVar8 = __val.section_name_.field_2._M_local_buf[0];\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar8,__src,__val.section_name_._M_string_length);\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }\n          ((__first._M_current)->section_name_)._M_string_length =\n               __val.section_name_._M_string_length;\n          pcVar8[__val.section_name_._M_string_length] = '\0';\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }" { (if_statement "if (__val.section_name_._M_string_length != 0) {\n            if (__val.section_name_._M_string_length == 1) {\n              *pcVar8 = __val.section_name_.field_2._M_local_buf[0];\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar8,__src,__val.section_name_._M_string_length);\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }" if (parenthesized_expression "(__val.section_name_._M_string_length != 0)" ( (binary_expression "__val.section_name_._M_string_length != 0" (field_expression "__val.section_name_._M_string_length" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) != number_literal) )) (compound_statement "{\n            if (__val.section_name_._M_string_length == 1) {\n              *pcVar8 = __val.section_name_.field_2._M_local_buf[0];\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar8,__src,__val.section_name_._M_string_length);\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }" { (if_statement "if (__val.section_name_._M_string_length == 1) {\n              *pcVar8 = __val.section_name_.field_2._M_local_buf[0];\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar8,__src,__val.section_name_._M_string_length);\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }" if (parenthesized_expression "(__val.section_name_._M_string_length == 1)" ( (binary_expression "__val.section_name_._M_string_length == 1" (field_expression "__val.section_name_._M_string_length" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) == number_literal) )) (compound_statement "{\n              *pcVar8 = __val.section_name_.field_2._M_local_buf[0];\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }" { (expression_statement "*pcVar8 = __val.section_name_.field_2._M_local_buf[0];" (assignment_expression "*pcVar8 = __val.section_name_.field_2._M_local_buf[0]" (pointer_expression "*pcVar8" * identifier) = (subscript_expression "__val.section_name_.field_2._M_local_buf[0]" (field_expression "__val.section_name_.field_2._M_local_buf" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) ;) (expression_statement "pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;" (assignment_expression "pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p" identifier = (field_expression "((__first._M_current)->section_name_)._M_dataplus._M_p" (field_expression "((__first._M_current)->section_name_)._M_dataplus" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n              memcpy(pcVar8,__src,__val.section_name_._M_string_length);\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }" else (compound_statement "{\n              memcpy(pcVar8,__src,__val.section_name_._M_string_length);\n              pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;\n            }" { (expression_statement "memcpy(pcVar8,__src,__val.section_name_._M_string_length);" (call_expression "memcpy(pcVar8,__src,__val.section_name_._M_string_length)" identifier (argument_list "(pcVar8,__src,__val.section_name_._M_string_length)" ( identifier , identifier , (field_expression "__val.section_name_._M_string_length" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) ))) ;) (expression_statement "pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p;" (assignment_expression "pcVar8 = ((__first._M_current)->section_name_)._M_dataplus._M_p" identifier = (field_expression "((__first._M_current)->section_name_)._M_dataplus._M_p" (field_expression "((__first._M_current)->section_name_)._M_dataplus" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier)) ;) }))) })) (expression_statement "((__first._M_current)->section_name_)._M_string_length =\n               __val.section_name_._M_string_length;" (assignment_expression "((__first._M_current)->section_name_)._M_string_length =\n               __val.section_name_._M_string_length" (field_expression "((__first._M_current)->section_name_)._M_string_length" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "__val.section_name_._M_string_length" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "pcVar8[__val.section_name_._M_string_length] = '\0';" (assignment_expression "pcVar8[__val.section_name_._M_string_length] = '\0'" (subscript_expression "pcVar8[__val.section_name_._M_string_length]" identifier [ (field_expression "__val.section_name_._M_string_length" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar3 = __val.section_name_.field_2._M_allocated_capacity;" (assignment_expression "uVar3 = __val.section_name_.field_2._M_allocated_capacity" identifier = (field_expression "__val.section_name_.field_2._M_allocated_capacity" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar8 == &((__first._M_current)->section_name_).field_2) {\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar3 = ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = pcVar8;\n            if (pcVar8 != (pointer)0x0) goto LAB_00339c3f;\n          }\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }" else (compound_statement "{\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar8 == &((__first._M_current)->section_name_).field_2) {\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar3 = ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = pcVar8;\n            if (pcVar8 != (pointer)0x0) goto LAB_00339c3f;\n          }\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }" { (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar8 == &((__first._M_current)->section_name_).field_2) {\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar3 = ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = pcVar8;\n            if (pcVar8 != (pointer)0x0) goto LAB_00339c3f;\n          }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar8 == &((__first._M_current)->section_name_).field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar8 == &((__first._M_current)->section_name_).field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n               *)pcVar8 == &((__first._M_current)->section_name_).field_2" (binary_expression "allocator<char>_>_9\n               *)pcVar8" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n               *)pcVar8" identifier * (ERROR ")" )) identifier)) == (pointer_expression "&((__first._M_current)->section_name_).field_2" & (field_expression "((__first._M_current)->section_name_).field_2" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) )) )) (compound_statement "{\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n          }" { (expression_statement "((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;" (assignment_expression "((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p" (field_expression "((__first._M_current)->section_name_)._M_dataplus._M_p" (field_expression "((__first._M_current)->section_name_)._M_dataplus" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;" (assignment_expression "((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length" (field_expression "((__first._M_current)->section_name_)._M_string_length" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "__val.section_name_._M_string_length" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;" (assignment_expression "((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity" (field_expression "((__first._M_current)->section_name_).field_2._M_allocated_capacity" (field_expression "((__first._M_current)->section_name_).field_2" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "__val.section_name_.field_2._M_allocated_capacity" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n            uVar3 = ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = pcVar8;\n            if (pcVar8 != (pointer)0x0) goto LAB_00339c3f;\n          }" else (compound_statement "{\n            uVar3 = ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n            ((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;\n            ((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;\n            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = pcVar8;\n            if (pcVar8 != (pointer)0x0) goto LAB_00339c3f;\n          }" { (expression_statement "uVar3 = ((__first._M_current)->section_name_).field_2._M_allocated_capacity;" (assignment_expression "uVar3 = ((__first._M_current)->section_name_).field_2._M_allocated_capacity" identifier = (field_expression "((__first._M_current)->section_name_).field_2._M_allocated_capacity" (field_expression "((__first._M_current)->section_name_).field_2" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p;" (assignment_expression "((__first._M_current)->section_name_)._M_dataplus._M_p =\n                 __val.section_name_._M_dataplus._M_p" (field_expression "((__first._M_current)->section_name_)._M_dataplus._M_p" (field_expression "((__first._M_current)->section_name_)._M_dataplus" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length;" (assignment_expression "((__first._M_current)->section_name_)._M_string_length =\n                 __val.section_name_._M_string_length" (field_expression "((__first._M_current)->section_name_)._M_string_length" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "__val.section_name_._M_string_length" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity;" (assignment_expression "((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n                 __val.section_name_.field_2._M_allocated_capacity" (field_expression "((__first._M_current)->section_name_).field_2._M_allocated_capacity" (field_expression "((__first._M_current)->section_name_).field_2" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "__val.section_name_.field_2._M_allocated_capacity" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "__val.section_name_._M_dataplus._M_p = pcVar8;" (assignment_expression "__val.section_name_._M_dataplus._M_p = pcVar8" (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (pcVar8 != (pointer)0x0) goto LAB_00339c3f;" if (parenthesized_expression "(pcVar8 != (pointer)0x0)" ( (binary_expression "pcVar8 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00339c3f;" goto statement_identifier ;)) }))) (expression_statement "__val.section_name_._M_dataplus._M_p = (pointer)__src;" (assignment_expression "__val.section_name_._M_dataplus._M_p = (pointer)__src" (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)__src" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "uVar3 = __val.section_name_.field_2._M_allocated_capacity;" (assignment_expression "uVar3 = __val.section_name_.field_2._M_allocated_capacity" identifier = (field_expression "__val.section_name_.field_2._M_allocated_capacity" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) }))) (labeled_statement "LAB_00339c3f:\n        __val.section_name_.field_2._M_allocated_capacity = uVar3;" statement_identifier : (expression_statement "__val.section_name_.field_2._M_allocated_capacity = uVar3;" (assignment_expression "__val.section_name_.field_2._M_allocated_capacity = uVar3" (field_expression "__val.section_name_.field_2._M_allocated_capacity" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;)) (expression_statement "__val.section_name_._M_string_length = 0;" (assignment_expression "__val.section_name_._M_string_length = 0" (field_expression "__val.section_name_._M_string_length" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "*__val.section_name_._M_dataplus._M_p = '\0';" (assignment_expression "*__val.section_name_._M_dataplus._M_p = '\0'" (pointer_expression "*__val.section_name_._M_dataplus._M_p" * (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(size_type *)&(__first._M_current)->size_ = (size_type)__val.size_;" (assignment_expression "*(size_type *)&(__first._M_current)->size_ = (size_type)__val.size_" (pointer_expression "*(size_type *)&(__first._M_current)->size_" * (cast_expression "(size_type *)&(__first._M_current)->size_" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(__first._M_current)->size_" & (field_expression "(__first._M_current)->size_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier)))) = (cast_expression "(size_type)__val.size_" ( (type_descriptor "size_type" type_identifier) ) (field_expression "__val.size_" identifier . field_identifier))) ;) (expression_statement "*(size_type *)((int)&(__first._M_current)->size_ + 4) = __val.size_._4_4_;" (assignment_expression "*(size_type *)((int)&(__first._M_current)->size_ + 4) = __val.size_._4_4_" (pointer_expression "*(size_type *)((int)&(__first._M_current)->size_ + 4)" * (cast_expression "(size_type *)((int)&(__first._M_current)->size_ + 4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__first._M_current)->size_ + 4)" ( (binary_expression "(int)&(__first._M_current)->size_ + 4" (cast_expression "(int)&(__first._M_current)->size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__first._M_current)->size_" & (field_expression "(__first._M_current)->size_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier))) + number_literal) )))) = (field_expression "__val.size_._4_4_" (field_expression "__val.size_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(size_type *)&(__first._M_current)->addralign_ = (size_type)__val.addralign_;" (assignment_expression "*(size_type *)&(__first._M_current)->addralign_ = (size_type)__val.addralign_" (pointer_expression "*(size_type *)&(__first._M_current)->addralign_" * (cast_expression "(size_type *)&(__first._M_current)->addralign_" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(__first._M_current)->addralign_" & (field_expression "(__first._M_current)->addralign_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier)))) = (cast_expression "(size_type)__val.addralign_" ( (type_descriptor "size_type" type_identifier) ) (field_expression "__val.addralign_" identifier . field_identifier))) ;) (expression_statement "*(size_type *)((int)&(__first._M_current)->addralign_ + 4) = __val.addralign_._4_4_;" (assignment_expression "*(size_type *)((int)&(__first._M_current)->addralign_ + 4) = __val.addralign_._4_4_" (pointer_expression "*(size_type *)((int)&(__first._M_current)->addralign_ + 4)" * (cast_expression "(size_type *)((int)&(__first._M_current)->addralign_ + 4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__first._M_current)->addralign_ + 4)" ( (binary_expression "(int)&(__first._M_current)->addralign_ + 4" (cast_expression "(int)&(__first._M_current)->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__first._M_current)->addralign_" & (field_expression "(__first._M_current)->addralign_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier))) + number_literal) )))) = (field_expression "__val.addralign_._4_4_" (field_expression "__val.addralign_" identifier . field_identifier) . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p != __src) {\n          operator_delete(__val.section_name_._M_dataplus._M_p);\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p != __src)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p != __src)" ( (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             *)__val.section_name_._M_dataplus._M_p != __src" (binary_expression "allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)__val.section_name_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n          operator_delete(__val.section_name_._M_dataplus._M_p);\n        }" { (expression_statement "operator_delete(__val.section_name_._M_dataplus._M_p);" (call_expression "operator_delete(__val.section_name_._M_dataplus._M_p)" identifier (argument_list "(__val.section_name_._M_dataplus._M_p)" ( (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) ))) ;) })) }) (else_clause "else {\n        local_64.section_sort_ = __comp._M_comp.section_sort_;\n        __val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity;\n        local_64.filename_sort_ = __comp._M_comp.filename_sort_;\n        __val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c);\n        __val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18);\n        __val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14);\n        __val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff);\n        __val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc);\n        __val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -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             *)__val.section_name_._M_dataplus._M_p == paVar11) {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);\n          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);\n          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n        }\n        else {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }\n        __val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4);\n        __val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14);\n        (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11;\n        *(size_type *)((int)paVar11 + -4) = 0;\n        __val.size_._0_4_ = paVar11[1]._M_allocated_capacity;\n        __val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c);\n        __val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18);\n        paVar11->_M_local_buf[0] = '\0';\n        paVar4 = paVar11;\n        while( true ) {\n          paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)(&paVar4->_M_allocated_capacity + -0x10);\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          bVar5 = gold::Input_section_sorter::operator()\n                            (&local_64,&__val,\n                             (Input_section_info *)(&paVar4->_M_allocated_capacity + -0x18));\n          paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n          if (!bVar5) break;\n          (&paVar4->_M_allocated_capacity)[-8] = (&paVar4->_M_allocated_capacity)[-0x18];\n          (&paVar4->_M_allocated_capacity)[-7] = (&paVar4->_M_allocated_capacity)[-0x17];\n          (&paVar4->_M_allocated_capacity)[-6] = (&paVar4->_M_allocated_capacity)[-0x16];\n          (&paVar4->_M_allocated_capacity)[-5] = (&paVar4->_M_allocated_capacity)[-0x15];\n          (&paVar4->_M_allocated_capacity)[-4] = (&paVar4->_M_allocated_capacity)[-0x14];\n          (&paVar4->_M_allocated_capacity)[-3] = (&paVar4->_M_allocated_capacity)[-0x13];\n          psVar2 = (size_type *)(&paVar4->_M_allocated_capacity)[-0x12];\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar2 == paVar10) {\n            sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n              else {\n                memcpy(paVar7,paVar10,sVar6);\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n            }\n            (&paVar4->_M_allocated_capacity)[-1] = sVar6;\n            paVar7->_M_local_buf[sVar6] = '\0';\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-0x12];\n          }\n          else {\n            if (paVar4 == paVar7) {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            }\n            else {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              sVar1 = paVar4->_M_allocated_capacity;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0) {\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  **)((int)paVar4 + -0x48) = paVar7;\n                paVar10->_M_allocated_capacity = sVar1;\n                goto LAB_0033989e;\n              }\n            }\n            *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)((int)paVar4 + -0x48) = paVar10;\n            paVar7 = paVar10;\n          }\nLAB_0033989e:\n          (&paVar4->_M_allocated_capacity)[-0x11] = 0;\n          paVar7->_M_local_buf[0] = '\0';\n          (&paVar4->_M_allocated_capacity)[4] = (&paVar4->_M_allocated_capacity)[-0xc];\n          (&paVar4->_M_allocated_capacity)[5] = (&paVar4->_M_allocated_capacity)[-0xb];\n          (&paVar4->_M_allocated_capacity)[6] = (&paVar4->_M_allocated_capacity)[-10];\n          (&paVar4->_M_allocated_capacity)[7] = (&paVar4->_M_allocated_capacity)[-9];\n          paVar4 = paVar10;\n        }" else (compound_statement "{\n        local_64.section_sort_ = __comp._M_comp.section_sort_;\n        __val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity;\n        local_64.filename_sort_ = __comp._M_comp.filename_sort_;\n        __val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c);\n        __val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18);\n        __val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14);\n        __val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff);\n        __val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc);\n        __val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -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             *)__val.section_name_._M_dataplus._M_p == paVar11) {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);\n          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);\n          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n        }\n        else {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }\n        __val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4);\n        __val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14);\n        (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11;\n        *(size_type *)((int)paVar11 + -4) = 0;\n        __val.size_._0_4_ = paVar11[1]._M_allocated_capacity;\n        __val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c);\n        __val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18);\n        paVar11->_M_local_buf[0] = '\0';\n        paVar4 = paVar11;\n        while( true ) {\n          paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)(&paVar4->_M_allocated_capacity + -0x10);\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          bVar5 = gold::Input_section_sorter::operator()\n                            (&local_64,&__val,\n                             (Input_section_info *)(&paVar4->_M_allocated_capacity + -0x18));\n          paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n          if (!bVar5) break;\n          (&paVar4->_M_allocated_capacity)[-8] = (&paVar4->_M_allocated_capacity)[-0x18];\n          (&paVar4->_M_allocated_capacity)[-7] = (&paVar4->_M_allocated_capacity)[-0x17];\n          (&paVar4->_M_allocated_capacity)[-6] = (&paVar4->_M_allocated_capacity)[-0x16];\n          (&paVar4->_M_allocated_capacity)[-5] = (&paVar4->_M_allocated_capacity)[-0x15];\n          (&paVar4->_M_allocated_capacity)[-4] = (&paVar4->_M_allocated_capacity)[-0x14];\n          (&paVar4->_M_allocated_capacity)[-3] = (&paVar4->_M_allocated_capacity)[-0x13];\n          psVar2 = (size_type *)(&paVar4->_M_allocated_capacity)[-0x12];\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar2 == paVar10) {\n            sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n              else {\n                memcpy(paVar7,paVar10,sVar6);\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n            }\n            (&paVar4->_M_allocated_capacity)[-1] = sVar6;\n            paVar7->_M_local_buf[sVar6] = '\0';\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-0x12];\n          }\n          else {\n            if (paVar4 == paVar7) {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            }\n            else {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              sVar1 = paVar4->_M_allocated_capacity;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0) {\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  **)((int)paVar4 + -0x48) = paVar7;\n                paVar10->_M_allocated_capacity = sVar1;\n                goto LAB_0033989e;\n              }\n            }\n            *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)((int)paVar4 + -0x48) = paVar10;\n            paVar7 = paVar10;\n          }\nLAB_0033989e:\n          (&paVar4->_M_allocated_capacity)[-0x11] = 0;\n          paVar7->_M_local_buf[0] = '\0';\n          (&paVar4->_M_allocated_capacity)[4] = (&paVar4->_M_allocated_capacity)[-0xc];\n          (&paVar4->_M_allocated_capacity)[5] = (&paVar4->_M_allocated_capacity)[-0xb];\n          (&paVar4->_M_allocated_capacity)[6] = (&paVar4->_M_allocated_capacity)[-10];\n          (&paVar4->_M_allocated_capacity)[7] = (&paVar4->_M_allocated_capacity)[-9];\n          paVar4 = paVar10;\n        }" { (expression_statement "local_64.section_sort_ = __comp._M_comp.section_sort_;" (assignment_expression "local_64.section_sort_ = __comp._M_comp.section_sort_" (field_expression "local_64.section_sort_" identifier . field_identifier) = (field_expression "__comp._M_comp.section_sort_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier)) ;) (expression_statement "__val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity;" (assignment_expression "__val.input_section_.shndx_ = paVar11[0xfffffffe]._M_allocated_capacity" (field_expression "__val.input_section_.shndx_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier) = (field_expression "paVar11[0xfffffffe]._M_allocated_capacity" (subscript_expression "paVar11[0xfffffffe]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "local_64.filename_sort_ = __comp._M_comp.filename_sort_;" (assignment_expression "local_64.filename_sort_ = __comp._M_comp.filename_sort_" (field_expression "local_64.filename_sort_" identifier . field_identifier) = (field_expression "__comp._M_comp.filename_sort_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier)) ;) (expression_statement "__val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c);" (assignment_expression "__val.input_section_.p2align_ = *(uint *)((int)paVar11 + -0x1c)" (field_expression "__val.input_section_.p2align_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(uint *)((int)paVar11 + -0x1c)" * (cast_expression "(uint *)((int)paVar11 + -0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + -0x1c)" ( (binary_expression "(int)paVar11 + -0x1c" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18);" (assignment_expression "__val.input_section_.u1_.data_size._0_4_ = *(undefined4 *)((int)paVar11 + -0x18)" (field_expression "__val.input_section_.u1_.data_size._0_4_" (field_expression "__val.input_section_.u1_.data_size" (field_expression "__val.input_section_.u1_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)paVar11 + -0x18)" * (cast_expression "(undefined4 *)((int)paVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + -0x18)" ( (binary_expression "(int)paVar11 + -0x18" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14);" (assignment_expression "__val.input_section_.u1_.data_size._4_4_ = *(undefined4 *)((int)paVar11 + -0x14)" (field_expression "__val.input_section_.u1_.data_size._4_4_" (field_expression "__val.input_section_.u1_.data_size" (field_expression "__val.input_section_.u1_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)paVar11 + -0x14)" * (cast_expression "(undefined4 *)((int)paVar11 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + -0x14)" ( (binary_expression "(int)paVar11 + -0x14" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff);" (assignment_expression "__val.input_section_.u2_ = *(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff)" (field_expression "__val.input_section_.u2_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff)" * (cast_expression "(anon_union_4_4_139239c7_for_u2_ *)(paVar11 + 0xffffffff)" ( (type_descriptor "anon_union_4_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar11 + 0xffffffff)" ( (binary_expression "paVar11 + 0xffffffff" identifier + number_literal) ))))) ;) (expression_statement "__val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc);" (assignment_expression "__val.input_section_.section_order_index_ = *(uint *)((int)paVar11 + -0xc)" (field_expression "__val.input_section_.section_order_index_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(uint *)((int)paVar11 + -0xc)" * (cast_expression "(uint *)((int)paVar11 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + -0xc)" ( (binary_expression "(int)paVar11 + -0xc" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p;" (assignment_expression "__val.section_name_._M_dataplus._M_p = (((string *)((int)paVar11 + -8))->_M_dataplus)._M_p" (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "(((string *)((int)paVar11 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar11 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar11 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar11 + -8))" ( (cast_expression "(string *)((int)paVar11 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + -8)" ( (binary_expression "(int)paVar11 + -8" (cast_expression "(int)paVar11" ( (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             *)__val.section_name_._M_dataplus._M_p == paVar11) {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);\n          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);\n          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n        }\n        else {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == paVar11)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == paVar11)" ( (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             *)__val.section_name_._M_dataplus._M_p == paVar11" (binary_expression "allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)__val.section_name_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier))) == identifier) )) )) (compound_statement "{\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n          __val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);\n          __val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);\n          __val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n        }" { (expression_statement "__val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;" (assignment_expression "__val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity" (field_expression "__val.section_name_.field_2._M_allocated_capacity" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "paVar11->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "__val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4);" (assignment_expression "__val.section_name_.field_2._4_4_ = *(undefined4 *)((int)paVar11 + 4)" (field_expression "__val.section_name_.field_2._4_4_" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)paVar11 + 4)" * (cast_expression "(undefined4 *)((int)paVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + 4)" ( (binary_expression "(int)paVar11 + 4" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8);" (assignment_expression "__val.section_name_.field_2._8_4_ = *(undefined4 *)((int)paVar11 + 8)" (field_expression "__val.section_name_.field_2._8_4_" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)paVar11 + 8)" * (cast_expression "(undefined4 *)((int)paVar11 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + 8)" ( (binary_expression "(int)paVar11 + 8" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc);" (assignment_expression "__val.section_name_.field_2._12_4_ = *(undefined4 *)((int)paVar11 + 0xc)" (field_expression "__val.section_name_.field_2._12_4_" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)paVar11 + 0xc)" * (cast_expression "(undefined4 *)((int)paVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + 0xc)" ( (binary_expression "(int)paVar11 + 0xc" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__val.section_name_._M_dataplus._M_p = (pointer)__src;" (assignment_expression "__val.section_name_._M_dataplus._M_p = (pointer)__src" (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)__src" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) }) (else_clause "else {\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }" else (compound_statement "{\n          __val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;\n        }" { (expression_statement "__val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity;" (assignment_expression "__val.section_name_.field_2._M_allocated_capacity = paVar11->_M_allocated_capacity" (field_expression "__val.section_name_.field_2._M_allocated_capacity" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "paVar11->_M_allocated_capacity" identifier -> field_identifier)) ;) }))) (expression_statement "__val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4);" (assignment_expression "__val.section_name_._M_string_length = *(size_type *)((int)paVar11 + -4)" (field_expression "__val.section_name_._M_string_length" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(size_type *)((int)paVar11 + -4)" * (cast_expression "(size_type *)((int)paVar11 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + -4)" ( (binary_expression "(int)paVar11 + -4" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14);" (assignment_expression "__val.size_._4_4_ = *(size_type *)((int)paVar11 + 0x14)" (field_expression "__val.size_._4_4_" (field_expression "__val.size_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(size_type *)((int)paVar11 + 0x14)" * (cast_expression "(size_type *)((int)paVar11 + 0x14)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + 0x14)" ( (binary_expression "(int)paVar11 + 0x14" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11;" (assignment_expression "(((string *)((int)paVar11 + -8))->_M_dataplus)._M_p = (pointer)paVar11" (field_expression "(((string *)((int)paVar11 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar11 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar11 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar11 + -8))" ( (cast_expression "(string *)((int)paVar11 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + -8)" ( (binary_expression "(int)paVar11 + -8" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar11" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "*(size_type *)((int)paVar11 + -4) = 0;" (assignment_expression "*(size_type *)((int)paVar11 + -4) = 0" (pointer_expression "*(size_type *)((int)paVar11 + -4)" * (cast_expression "(size_type *)((int)paVar11 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + -4)" ( (binary_expression "(int)paVar11 + -4" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__val.size_._0_4_ = paVar11[1]._M_allocated_capacity;" (assignment_expression "__val.size_._0_4_ = paVar11[1]._M_allocated_capacity" (field_expression "__val.size_._0_4_" (field_expression "__val.size_" identifier . field_identifier) . field_identifier) = (field_expression "paVar11[1]._M_allocated_capacity" (subscript_expression "paVar11[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "__val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c);" (assignment_expression "__val.addralign_._4_4_ = *(size_type *)((int)paVar11 + 0x1c)" (field_expression "__val.addralign_._4_4_" (field_expression "__val.addralign_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(size_type *)((int)paVar11 + 0x1c)" * (cast_expression "(size_type *)((int)paVar11 + 0x1c)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + 0x1c)" ( (binary_expression "(int)paVar11 + 0x1c" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18);" (assignment_expression "__val.addralign_._0_4_ = *(size_type *)((int)paVar11 + 0x18)" (field_expression "__val.addralign_._0_4_" (field_expression "__val.addralign_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(size_type *)((int)paVar11 + 0x18)" * (cast_expression "(size_type *)((int)paVar11 + 0x18)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar11 + 0x18)" ( (binary_expression "(int)paVar11 + 0x18" (cast_expression "(int)paVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar11->_M_local_buf[0] = '\0';" (assignment_expression "paVar11->_M_local_buf[0] = '\0'" (subscript_expression "paVar11->_M_local_buf[0]" (field_expression "paVar11->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "paVar4 = paVar11;" (assignment_expression "paVar4 = paVar11" identifier = identifier) ;) (while_statement "while( true ) {\n          paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)(&paVar4->_M_allocated_capacity + -0x10);\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          bVar5 = gold::Input_section_sorter::operator()\n                            (&local_64,&__val,\n                             (Input_section_info *)(&paVar4->_M_allocated_capacity + -0x18));\n          paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n          if (!bVar5) break;\n          (&paVar4->_M_allocated_capacity)[-8] = (&paVar4->_M_allocated_capacity)[-0x18];\n          (&paVar4->_M_allocated_capacity)[-7] = (&paVar4->_M_allocated_capacity)[-0x17];\n          (&paVar4->_M_allocated_capacity)[-6] = (&paVar4->_M_allocated_capacity)[-0x16];\n          (&paVar4->_M_allocated_capacity)[-5] = (&paVar4->_M_allocated_capacity)[-0x15];\n          (&paVar4->_M_allocated_capacity)[-4] = (&paVar4->_M_allocated_capacity)[-0x14];\n          (&paVar4->_M_allocated_capacity)[-3] = (&paVar4->_M_allocated_capacity)[-0x13];\n          psVar2 = (size_type *)(&paVar4->_M_allocated_capacity)[-0x12];\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar2 == paVar10) {\n            sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n              else {\n                memcpy(paVar7,paVar10,sVar6);\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n            }\n            (&paVar4->_M_allocated_capacity)[-1] = sVar6;\n            paVar7->_M_local_buf[sVar6] = '\0';\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-0x12];\n          }\n          else {\n            if (paVar4 == paVar7) {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            }\n            else {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              sVar1 = paVar4->_M_allocated_capacity;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0) {\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  **)((int)paVar4 + -0x48) = paVar7;\n                paVar10->_M_allocated_capacity = sVar1;\n                goto LAB_0033989e;\n              }\n            }\n            *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)((int)paVar4 + -0x48) = paVar10;\n            paVar7 = paVar10;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)(&paVar4->_M_allocated_capacity + -0x10);\n                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */\n          bVar5 = gold::Input_section_sorter::operator()\n                            (&local_64,&__val,\n                             (Input_section_info *)(&paVar4->_M_allocated_capacity + -0x18));\n          paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;\n          if (!bVar5) break;\n          (&paVar4->_M_allocated_capacity)[-8] = (&paVar4->_M_allocated_capacity)[-0x18];\n          (&paVar4->_M_allocated_capacity)[-7] = (&paVar4->_M_allocated_capacity)[-0x17];\n          (&paVar4->_M_allocated_capacity)[-6] = (&paVar4->_M_allocated_capacity)[-0x16];\n          (&paVar4->_M_allocated_capacity)[-5] = (&paVar4->_M_allocated_capacity)[-0x15];\n          (&paVar4->_M_allocated_capacity)[-4] = (&paVar4->_M_allocated_capacity)[-0x14];\n          (&paVar4->_M_allocated_capacity)[-3] = (&paVar4->_M_allocated_capacity)[-0x13];\n          psVar2 = (size_type *)(&paVar4->_M_allocated_capacity)[-0x12];\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar2 == paVar10) {\n            sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n              else {\n                memcpy(paVar7,paVar10,sVar6);\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n            }\n            (&paVar4->_M_allocated_capacity)[-1] = sVar6;\n            paVar7->_M_local_buf[sVar6] = '\0';\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-0x12];\n          }\n          else {\n            if (paVar4 == paVar7) {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            }\n            else {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              sVar1 = paVar4->_M_allocated_capacity;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0) {\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  **)((int)paVar4 + -0x48) = paVar7;\n                paVar10->_M_allocated_capacity = sVar1;\n                goto LAB_0033989e;\n              }\n            }\n            *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)((int)paVar4 + -0x48) = paVar10;\n            paVar7 = paVar10;\n          }" { (expression_statement "paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)(&paVar4->_M_allocated_capacity + -0x10);" (assignment_expression "paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)(&paVar4->_M_allocated_capacity + -0x10)" identifier = (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)(&paVar4->_M_allocated_capacity + -0x10)" (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 "(&paVar4->_M_allocated_capacity + -0x10)" ( (binary_expression "&paVar4->_M_allocated_capacity + -0x10" (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) + number_literal) )))) ;) comment (ERROR "bVar5 = gold::" (assignment_expression "bVar5 = gold" identifier = identifier) : :) (labeled_statement "Input_section_sorter::operator()\n                            (&local_64,&__val,\n                             (Input_section_info *)(&paVar4->_M_allocated_capacity + -0x18));" statement_identifier : (ERROR ":" :) (expression_statement "operator()\n                            (&local_64,&__val,\n                             (Input_section_info *)(&paVar4->_M_allocated_capacity + -0x18));" (call_expression "operator()\n                            (&local_64,&__val,\n                             (Input_section_info *)(&paVar4->_M_allocated_capacity + -0x18))" (call_expression "operator()" identifier (argument_list "()" ( ))) (argument_list "(&local_64,&__val,\n                             (Input_section_info *)(&paVar4->_M_allocated_capacity + -0x18))" ( (pointer_expression "&local_64" & identifier) , (pointer_expression "&__val" & identifier) , (cast_expression "(Input_section_info *)(&paVar4->_M_allocated_capacity + -0x18)" ( (type_descriptor "Input_section_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&paVar4->_M_allocated_capacity + -0x18)" ( (binary_expression "&paVar4->_M_allocated_capacity + -0x18" (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) + number_literal) ))) ))) ;)) (expression_statement "paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p;" (assignment_expression "paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p" identifier = (field_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)((int)paVar4 + -8))->_M_dataplus)._M_p" (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)((int)paVar4 + -8))->_M_dataplus)" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) (argument_list "(((string *)((int)paVar4 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar4 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar4 + -8))" ( (cast_expression "(string *)((int)paVar4 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar4 + -8)" ( (binary_expression "(int)paVar4 + -8" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) ))) . field_identifier)) ;) (if_statement "if (!bVar5) break;" if (parenthesized_expression "(!bVar5)" ( (unary_expression "!bVar5" ! identifier) )) (break_statement "break;" break ;)) (expression_statement "(&paVar4->_M_allocated_capacity)[-8] = (&paVar4->_M_allocated_capacity)[-0x18];" (assignment_expression "(&paVar4->_M_allocated_capacity)[-8] = (&paVar4->_M_allocated_capacity)[-0x18]" (subscript_expression "(&paVar4->_M_allocated_capacity)[-8]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (subscript_expression "(&paVar4->_M_allocated_capacity)[-0x18]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[-7] = (&paVar4->_M_allocated_capacity)[-0x17];" (assignment_expression "(&paVar4->_M_allocated_capacity)[-7] = (&paVar4->_M_allocated_capacity)[-0x17]" (subscript_expression "(&paVar4->_M_allocated_capacity)[-7]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (subscript_expression "(&paVar4->_M_allocated_capacity)[-0x17]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[-6] = (&paVar4->_M_allocated_capacity)[-0x16];" (assignment_expression "(&paVar4->_M_allocated_capacity)[-6] = (&paVar4->_M_allocated_capacity)[-0x16]" (subscript_expression "(&paVar4->_M_allocated_capacity)[-6]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (subscript_expression "(&paVar4->_M_allocated_capacity)[-0x16]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[-5] = (&paVar4->_M_allocated_capacity)[-0x15];" (assignment_expression "(&paVar4->_M_allocated_capacity)[-5] = (&paVar4->_M_allocated_capacity)[-0x15]" (subscript_expression "(&paVar4->_M_allocated_capacity)[-5]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (subscript_expression "(&paVar4->_M_allocated_capacity)[-0x15]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[-4] = (&paVar4->_M_allocated_capacity)[-0x14];" (assignment_expression "(&paVar4->_M_allocated_capacity)[-4] = (&paVar4->_M_allocated_capacity)[-0x14]" (subscript_expression "(&paVar4->_M_allocated_capacity)[-4]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (subscript_expression "(&paVar4->_M_allocated_capacity)[-0x14]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[-3] = (&paVar4->_M_allocated_capacity)[-0x13];" (assignment_expression "(&paVar4->_M_allocated_capacity)[-3] = (&paVar4->_M_allocated_capacity)[-0x13]" (subscript_expression "(&paVar4->_M_allocated_capacity)[-3]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (subscript_expression "(&paVar4->_M_allocated_capacity)[-0x13]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "psVar2 = (size_type *)(&paVar4->_M_allocated_capacity)[-0x12];" (assignment_expression "psVar2 = (size_type *)(&paVar4->_M_allocated_capacity)[-0x12]" identifier = (cast_expression "(size_type *)(&paVar4->_M_allocated_capacity)[-0x12]" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(&paVar4->_M_allocated_capacity)[-0x12]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar2 == paVar10) {\n            sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n              else {\n                memcpy(paVar7,paVar10,sVar6);\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n            }\n            (&paVar4->_M_allocated_capacity)[-1] = sVar6;\n            paVar7->_M_local_buf[sVar6] = '\0';\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-0x12];\n          }\n          else {\n            if (paVar4 == paVar7) {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            }\n            else {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              sVar1 = paVar4->_M_allocated_capacity;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0) {\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  **)((int)paVar4 + -0x48) = paVar7;\n                paVar10->_M_allocated_capacity = sVar1;\n                goto LAB_0033989e;\n              }\n            }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar2 == paVar10)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar2 == 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               *)psVar2 == paVar10" (binary_expression "allocator<char>_>_9\n               *)psVar2" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n               *)psVar2" identifier * (ERROR ")" )) identifier)) == identifier) )) )) (compound_statement "{\n            sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n              else {\n                memcpy(paVar7,paVar10,sVar6);\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n            }\n            (&paVar4->_M_allocated_capacity)[-1] = sVar6;\n            paVar7->_M_local_buf[sVar6] = '\0';\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-0x12];\n          }" { (expression_statement "sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];" (assignment_expression "sVar6 = (&paVar4->_M_allocated_capacity)[-0x11]" identifier = (subscript_expression "(&paVar4->_M_allocated_capacity)[-0x11]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ])) ;) (if_statement "if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n              else {\n                memcpy(paVar7,paVar10,sVar6);\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n            }" if (parenthesized_expression "(sVar6 != 0)" ( (binary_expression "sVar6 != 0" identifier != number_literal) )) (compound_statement "{\n              if (sVar6 == 1) {\n                paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n              else {\n                memcpy(paVar7,paVar10,sVar6);\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n            }" { (if_statement "if (sVar6 == 1) {\n                paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }\n              else {\n                memcpy(paVar7,paVar10,sVar6);\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }" if (parenthesized_expression "(sVar6 == 1)" ( (binary_expression "sVar6 == 1" identifier == number_literal) )) (compound_statement "{\n                paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }" { (expression_statement "paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0];" (assignment_expression "paVar7->_M_local_buf[0] = paVar10->_M_local_buf[0]" (subscript_expression "paVar7->_M_local_buf[0]" (field_expression "paVar7->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "paVar10->_M_local_buf[0]" (field_expression "paVar10->_M_local_buf" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];" (assignment_expression "sVar6 = (&paVar4->_M_allocated_capacity)[-0x11]" identifier = (subscript_expression "(&paVar4->_M_allocated_capacity)[-0x11]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];" (assignment_expression "paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2]" identifier = (subscript_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2]" (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)" (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 "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) ))) [ number_literal ])) ;) }) (else_clause "else {\n                memcpy(paVar7,paVar10,sVar6);\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }" else (compound_statement "{\n                memcpy(paVar7,paVar10,sVar6);\n                sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];\n                paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];\n              }" { (expression_statement "memcpy(paVar7,paVar10,sVar6);" (call_expression "memcpy(paVar7,paVar10,sVar6)" identifier (argument_list "(paVar7,paVar10,sVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar6 = (&paVar4->_M_allocated_capacity)[-0x11];" (assignment_expression "sVar6 = (&paVar4->_M_allocated_capacity)[-0x11]" identifier = (subscript_expression "(&paVar4->_M_allocated_capacity)[-0x11]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2];" (assignment_expression "paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2]" identifier = (subscript_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)[-2]" (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                          *)(&paVar4->_M_allocated_capacity)" (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 "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) ))) [ number_literal ])) ;) }))) })) (expression_statement "(&paVar4->_M_allocated_capacity)[-1] = sVar6;" (assignment_expression "(&paVar4->_M_allocated_capacity)[-1] = sVar6" (subscript_expression "(&paVar4->_M_allocated_capacity)[-1]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = identifier) ;) (expression_statement "paVar7->_M_local_buf[sVar6] = '\0';" (assignment_expression "paVar7->_M_local_buf[sVar6] = '\0'" (subscript_expression "paVar7->_M_local_buf[sVar6]" (field_expression "paVar7->_M_local_buf" identifier -> field_identifier) [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-0x12];" (assignment_expression "paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-0x12]" identifier = (subscript_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-0x12]" (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)" (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 "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) ))) [ number_literal ])) ;) }) (else_clause "else {\n            if (paVar4 == paVar7) {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            }\n            else {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              sVar1 = paVar4->_M_allocated_capacity;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0) {\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  **)((int)paVar4 + -0x48) = paVar7;\n                paVar10->_M_allocated_capacity = sVar1;\n                goto LAB_0033989e;\n              }\n            }" else (compound_statement "{\n            if (paVar4 == paVar7) {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            }\n            else {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              sVar1 = paVar4->_M_allocated_capacity;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0) {\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  **)((int)paVar4 + -0x48) = paVar7;\n                paVar10->_M_allocated_capacity = sVar1;\n                goto LAB_0033989e;\n              }\n            }" { (if_statement "if (paVar4 == paVar7) {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            }\n            else {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              sVar1 = paVar4->_M_allocated_capacity;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0) {\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  **)((int)paVar4 + -0x48) = paVar7;\n                paVar10->_M_allocated_capacity = sVar1;\n                goto LAB_0033989e;\n              }" if (parenthesized_expression "(paVar4 == paVar7)" ( (binary_expression "paVar4 == paVar7" identifier == identifier) )) (compound_statement "{\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            }" { (expression_statement "(&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;" (assignment_expression "(&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2" (subscript_expression "(&paVar4->_M_allocated_capacity)[-2]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (cast_expression "(size_type)psVar2" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];" (assignment_expression "(&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11]" (subscript_expression "(&paVar4->_M_allocated_capacity)[-1]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (subscript_expression "(&paVar4->_M_allocated_capacity)[-0x11]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;" (assignment_expression "paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity" (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier) = (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier)) ;) }) (else_clause "else {\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              sVar1 = paVar4->_M_allocated_capacity;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0) {\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  **)((int)paVar4 + -0x48) = paVar7;\n                paVar10->_M_allocated_capacity = sVar1;\n                goto LAB_0033989e;\n              }" else (compound_statement "{\n              (&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;\n              sVar1 = paVar4->_M_allocated_capacity;\n              (&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];\n              paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n              if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0) {\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  **)((int)paVar4 + -0x48) = paVar7;\n                paVar10->_M_allocated_capacity = sVar1;\n                goto LAB_0033989e;\n              }" { (expression_statement "(&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2;" (assignment_expression "(&paVar4->_M_allocated_capacity)[-2] = (size_type)psVar2" (subscript_expression "(&paVar4->_M_allocated_capacity)[-2]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (cast_expression "(size_type)psVar2" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;) (expression_statement "sVar1 = paVar4->_M_allocated_capacity;" (assignment_expression "sVar1 = paVar4->_M_allocated_capacity" identifier = (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11];" (assignment_expression "(&paVar4->_M_allocated_capacity)[-1] = (&paVar4->_M_allocated_capacity)[-0x11]" (subscript_expression "(&paVar4->_M_allocated_capacity)[-1]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (subscript_expression "(&paVar4->_M_allocated_capacity)[-0x11]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity;" (assignment_expression "paVar4->_M_allocated_capacity = paVar10->_M_allocated_capacity" (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier) = (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier)) ;) (if_statement "if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0) {\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  **)((int)paVar4 + -0x48) = paVar7;" if (parenthesized_expression "(paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0) {\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  **)" ( (ERROR "paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0) {\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0) {\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std" (binary_expression "paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0)" identifier != (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                             *)0x0)" ( (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                             *)0x0" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                             *)0x0" identifier * (ERROR ")" )) number_literal)) ))) (ERROR "{\n                *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>" { * ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<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" identifier < identifier) >) , identifier) : :) (binary_expression "allocator<char>_>_9\n                  **" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                  **" identifier * (pointer_expression "*" * identifier))) )) (expression_statement "((int)paVar4 + -0x48) = paVar7;" (assignment_expression "((int)paVar4 + -0x48) = paVar7" (parenthesized_expression "((int)paVar4 + -0x48)" ( (binary_expression "(int)paVar4 + -0x48" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = identifier) ;)) (expression_statement "paVar10->_M_allocated_capacity = sVar1;" (assignment_expression "paVar10->_M_allocated_capacity = sVar1" (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_0033989e;" goto statement_identifier ;) }))) }))) (expression_statement "*(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)((int)paVar4 + -0x48) = paVar10;" (assignment_expression "*(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)((int)paVar4 + -0x48) = paVar10" (pointer_expression "*(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)((int)paVar4 + -0x48)" * (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              **)((int)paVar4 + -0x48)" (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\n              **" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n              **" identifier * (pointer_expression "*" * identifier))) )) (argument_list "((int)paVar4 + -0x48)" ( (binary_expression "(int)paVar4 + -0x48" (cast_expression "(int)paVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "paVar7 = paVar10;" (assignment_expression "paVar7 = paVar10" identifier = identifier) ;) })) (labeled_statement "LAB_0033989e:\n          (&paVar4->_M_allocated_capacity)[-0x11] = 0;" statement_identifier : (expression_statement "(&paVar4->_M_allocated_capacity)[-0x11] = 0;" (assignment_expression "(&paVar4->_M_allocated_capacity)[-0x11] = 0" (subscript_expression "(&paVar4->_M_allocated_capacity)[-0x11]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = number_literal) ;)) (expression_statement "paVar7->_M_local_buf[0] = '\0';" (assignment_expression "paVar7->_M_local_buf[0] = '\0'" (subscript_expression "paVar7->_M_local_buf[0]" (field_expression "paVar7->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[4] = (&paVar4->_M_allocated_capacity)[-0xc];" (assignment_expression "(&paVar4->_M_allocated_capacity)[4] = (&paVar4->_M_allocated_capacity)[-0xc]" (subscript_expression "(&paVar4->_M_allocated_capacity)[4]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (subscript_expression "(&paVar4->_M_allocated_capacity)[-0xc]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[5] = (&paVar4->_M_allocated_capacity)[-0xb];" (assignment_expression "(&paVar4->_M_allocated_capacity)[5] = (&paVar4->_M_allocated_capacity)[-0xb]" (subscript_expression "(&paVar4->_M_allocated_capacity)[5]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (subscript_expression "(&paVar4->_M_allocated_capacity)[-0xb]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[6] = (&paVar4->_M_allocated_capacity)[-10];" (assignment_expression "(&paVar4->_M_allocated_capacity)[6] = (&paVar4->_M_allocated_capacity)[-10]" (subscript_expression "(&paVar4->_M_allocated_capacity)[6]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (subscript_expression "(&paVar4->_M_allocated_capacity)[-10]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[7] = (&paVar4->_M_allocated_capacity)[-9];" (assignment_expression "(&paVar4->_M_allocated_capacity)[7] = (&paVar4->_M_allocated_capacity)[-9]" (subscript_expression "(&paVar4->_M_allocated_capacity)[7]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (subscript_expression "(&paVar4->_M_allocated_capacity)[-9]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "paVar4 = paVar10;" (assignment_expression "paVar4 = paVar10" identifier = identifier) ;) }))) (expression_statement "(&paVar4->_M_allocated_capacity)[-8] = __val.input_section_.shndx_;" (assignment_expression "(&paVar4->_M_allocated_capacity)[-8] = __val.input_section_.shndx_" (subscript_expression "(&paVar4->_M_allocated_capacity)[-8]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (field_expression "__val.input_section_.shndx_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[-7] = __val.input_section_.p2align_;" (assignment_expression "(&paVar4->_M_allocated_capacity)[-7] = __val.input_section_.p2align_" (subscript_expression "(&paVar4->_M_allocated_capacity)[-7]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (field_expression "__val.input_section_.p2align_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[-6] = __val.input_section_.u1_.data_size._0_4_;" (assignment_expression "(&paVar4->_M_allocated_capacity)[-6] = __val.input_section_.u1_.data_size._0_4_" (subscript_expression "(&paVar4->_M_allocated_capacity)[-6]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (field_expression "__val.input_section_.u1_.data_size._0_4_" (field_expression "__val.input_section_.u1_.data_size" (field_expression "__val.input_section_.u1_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[-5] = __val.input_section_.u1_.data_size._4_4_;" (assignment_expression "(&paVar4->_M_allocated_capacity)[-5] = __val.input_section_.u1_.data_size._4_4_" (subscript_expression "(&paVar4->_M_allocated_capacity)[-5]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (field_expression "__val.input_section_.u1_.data_size._4_4_" (field_expression "__val.input_section_.u1_.data_size" (field_expression "__val.input_section_.u1_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(anon_union_4_4_139239c7_for_u2_ *)(&paVar4->_M_allocated_capacity + -4) =\n             __val.input_section_.u2_;" (assignment_expression "*(anon_union_4_4_139239c7_for_u2_ *)(&paVar4->_M_allocated_capacity + -4) =\n             __val.input_section_.u2_" (pointer_expression "*(anon_union_4_4_139239c7_for_u2_ *)(&paVar4->_M_allocated_capacity + -4)" * (cast_expression "(anon_union_4_4_139239c7_for_u2_ *)(&paVar4->_M_allocated_capacity + -4)" ( (type_descriptor "anon_union_4_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&paVar4->_M_allocated_capacity + -4)" ( (binary_expression "&paVar4->_M_allocated_capacity + -4" (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) + number_literal) )))) = (field_expression "__val.input_section_.u2_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[-3] = __val.input_section_.section_order_index_;" (assignment_expression "(&paVar4->_M_allocated_capacity)[-3] = __val.input_section_.section_order_index_" (subscript_expression "(&paVar4->_M_allocated_capacity)[-3]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (field_expression "__val.input_section_.section_order_index_" (field_expression "__val.input_section_" identifier . field_identifier) . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == __src) {\n          if (__val.section_name_._M_string_length != 0) {\n            if (__val.section_name_._M_string_length == 1) {\n              paVar7->_M_local_buf[0] = __val.section_name_.field_2._M_local_buf[0];\n              (&paVar4->_M_allocated_capacity)[-1] = 1;\n              *(undefined1 *)((&paVar4->_M_allocated_capacity)[-2] + 1) = 0;\n              uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n              goto LAB_003399e3;\n            }\n            memcpy(paVar7,__src,__val.section_name_._M_string_length);\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-2];\n          }\n          (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n          paVar7->_M_local_buf[__val.section_name_._M_string_length] = '\0';\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if (paVar4 == paVar7) {\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            uVar3 = paVar4->_M_allocated_capacity;\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = (pointer)paVar7;\n            if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) goto LAB_003399e3;\n          }\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == __src)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p == __src)" ( (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             *)__val.section_name_._M_dataplus._M_p == __src" (binary_expression "allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)__val.section_name_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier))) == identifier) )) )) (compound_statement "{\n          if (__val.section_name_._M_string_length != 0) {\n            if (__val.section_name_._M_string_length == 1) {\n              paVar7->_M_local_buf[0] = __val.section_name_.field_2._M_local_buf[0];\n              (&paVar4->_M_allocated_capacity)[-1] = 1;\n              *(undefined1 *)((&paVar4->_M_allocated_capacity)[-2] + 1) = 0;\n              uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n              goto LAB_003399e3;\n            }\n            memcpy(paVar7,__src,__val.section_name_._M_string_length);\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-2];\n          }\n          (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n          paVar7->_M_local_buf[__val.section_name_._M_string_length] = '\0';\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }" { (if_statement "if (__val.section_name_._M_string_length != 0) {\n            if (__val.section_name_._M_string_length == 1) {\n              paVar7->_M_local_buf[0] = __val.section_name_.field_2._M_local_buf[0];\n              (&paVar4->_M_allocated_capacity)[-1] = 1;\n              *(undefined1 *)((&paVar4->_M_allocated_capacity)[-2] + 1) = 0;\n              uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n              goto LAB_003399e3;\n            }\n            memcpy(paVar7,__src,__val.section_name_._M_string_length);\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-2];\n          }" if (parenthesized_expression "(__val.section_name_._M_string_length != 0)" ( (binary_expression "__val.section_name_._M_string_length != 0" (field_expression "__val.section_name_._M_string_length" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) != number_literal) )) (compound_statement "{\n            if (__val.section_name_._M_string_length == 1) {\n              paVar7->_M_local_buf[0] = __val.section_name_.field_2._M_local_buf[0];\n              (&paVar4->_M_allocated_capacity)[-1] = 1;\n              *(undefined1 *)((&paVar4->_M_allocated_capacity)[-2] + 1) = 0;\n              uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n              goto LAB_003399e3;\n            }\n            memcpy(paVar7,__src,__val.section_name_._M_string_length);\n            paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-2];\n          }" { (if_statement "if (__val.section_name_._M_string_length == 1) {\n              paVar7->_M_local_buf[0] = __val.section_name_.field_2._M_local_buf[0];\n              (&paVar4->_M_allocated_capacity)[-1] = 1;\n              *(undefined1 *)((&paVar4->_M_allocated_capacity)[-2] + 1) = 0;\n              uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n              goto LAB_003399e3;\n            }" if (parenthesized_expression "(__val.section_name_._M_string_length == 1)" ( (binary_expression "__val.section_name_._M_string_length == 1" (field_expression "__val.section_name_._M_string_length" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) == number_literal) )) (compound_statement "{\n              paVar7->_M_local_buf[0] = __val.section_name_.field_2._M_local_buf[0];\n              (&paVar4->_M_allocated_capacity)[-1] = 1;\n              *(undefined1 *)((&paVar4->_M_allocated_capacity)[-2] + 1) = 0;\n              uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n              goto LAB_003399e3;\n            }" { (expression_statement "paVar7->_M_local_buf[0] = __val.section_name_.field_2._M_local_buf[0];" (assignment_expression "paVar7->_M_local_buf[0] = __val.section_name_.field_2._M_local_buf[0]" (subscript_expression "paVar7->_M_local_buf[0]" (field_expression "paVar7->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "__val.section_name_.field_2._M_local_buf[0]" (field_expression "__val.section_name_.field_2._M_local_buf" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[-1] = 1;" (assignment_expression "(&paVar4->_M_allocated_capacity)[-1] = 1" (subscript_expression "(&paVar4->_M_allocated_capacity)[-1]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)((&paVar4->_M_allocated_capacity)[-2] + 1) = 0;" (assignment_expression "*(undefined1 *)((&paVar4->_M_allocated_capacity)[-2] + 1) = 0" (pointer_expression "*(undefined1 *)((&paVar4->_M_allocated_capacity)[-2] + 1)" * (cast_expression "(undefined1 *)((&paVar4->_M_allocated_capacity)[-2] + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((&paVar4->_M_allocated_capacity)[-2] + 1)" ( (binary_expression "(&paVar4->_M_allocated_capacity)[-2] + 1" (subscript_expression "(&paVar4->_M_allocated_capacity)[-2]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "uVar3 = __val.section_name_.field_2._M_allocated_capacity;" (assignment_expression "uVar3 = __val.section_name_.field_2._M_allocated_capacity" identifier = (field_expression "__val.section_name_.field_2._M_allocated_capacity" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (goto_statement "goto LAB_003399e3;" goto statement_identifier ;) })) (expression_statement "memcpy(paVar7,__src,__val.section_name_._M_string_length);" (call_expression "memcpy(paVar7,__src,__val.section_name_._M_string_length)" identifier (argument_list "(paVar7,__src,__val.section_name_._M_string_length)" ( identifier , identifier , (field_expression "__val.section_name_._M_string_length" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) ))) ;) (expression_statement "paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-2];" (assignment_expression "paVar7 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-2]" identifier = (subscript_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)[-2]" (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(&paVar4->_M_allocated_capacity)" (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 "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) ))) [ number_literal ])) ;) })) (expression_statement "(&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;" (assignment_expression "(&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length" (subscript_expression "(&paVar4->_M_allocated_capacity)[-1]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (field_expression "__val.section_name_._M_string_length" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "paVar7->_M_local_buf[__val.section_name_._M_string_length] = '\0';" (assignment_expression "paVar7->_M_local_buf[__val.section_name_._M_string_length] = '\0'" (subscript_expression "paVar7->_M_local_buf[__val.section_name_._M_string_length]" (field_expression "paVar7->_M_local_buf" identifier -> field_identifier) [ (field_expression "__val.section_name_._M_string_length" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar3 = __val.section_name_.field_2._M_allocated_capacity;" (assignment_expression "uVar3 = __val.section_name_.field_2._M_allocated_capacity" identifier = (field_expression "__val.section_name_.field_2._M_allocated_capacity" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n          if (paVar4 == paVar7) {\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            uVar3 = paVar4->_M_allocated_capacity;\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = (pointer)paVar7;\n            if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) goto LAB_003399e3;\n          }\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }" else (compound_statement "{\n          if (paVar4 == paVar7) {\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            uVar3 = paVar4->_M_allocated_capacity;\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = (pointer)paVar7;\n            if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) goto LAB_003399e3;\n          }\n          __val.section_name_._M_dataplus._M_p = (pointer)__src;\n          uVar3 = __val.section_name_.field_2._M_allocated_capacity;\n        }" { (if_statement "if (paVar4 == paVar7) {\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            uVar3 = paVar4->_M_allocated_capacity;\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = (pointer)paVar7;\n            if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) goto LAB_003399e3;\n          }" if (parenthesized_expression "(paVar4 == paVar7)" ( (binary_expression "paVar4 == paVar7" identifier == identifier) )) (compound_statement "{\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n          }" { (expression_statement "(&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;" (assignment_expression "(&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p" (subscript_expression "(&paVar4->_M_allocated_capacity)[-2]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (cast_expression "(size_type)__val.section_name_._M_dataplus._M_p" ( (type_descriptor "size_type" type_identifier) ) (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;" (assignment_expression "(&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length" (subscript_expression "(&paVar4->_M_allocated_capacity)[-1]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (field_expression "__val.section_name_._M_string_length" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;" (assignment_expression "paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity" (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier) = (field_expression "__val.section_name_.field_2._M_allocated_capacity" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            uVar3 = paVar4->_M_allocated_capacity;\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = (pointer)paVar7;\n            if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) goto LAB_003399e3;\n          }" else (compound_statement "{\n            (&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;\n            uVar3 = paVar4->_M_allocated_capacity;\n            (&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;\n            paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;\n            __val.section_name_._M_dataplus._M_p = (pointer)paVar7;\n            if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) goto LAB_003399e3;\n          }" { (expression_statement "(&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;" (assignment_expression "(&paVar4->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length" (subscript_expression "(&paVar4->_M_allocated_capacity)[-1]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (field_expression "__val.section_name_._M_string_length" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "uVar3 = paVar4->_M_allocated_capacity;" (assignment_expression "uVar3 = paVar4->_M_allocated_capacity" identifier = (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p;" (assignment_expression "(&paVar4->_M_allocated_capacity)[-2] = (size_type)__val.section_name_._M_dataplus._M_p" (subscript_expression "(&paVar4->_M_allocated_capacity)[-2]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (cast_expression "(size_type)__val.section_name_._M_dataplus._M_p" ( (type_descriptor "size_type" type_identifier) ) (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;" (assignment_expression "paVar4->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity" (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier) = (field_expression "__val.section_name_.field_2._M_allocated_capacity" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "__val.section_name_._M_dataplus._M_p = (pointer)paVar7;" (assignment_expression "__val.section_name_._M_dataplus._M_p = (pointer)paVar7" (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar7" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if (paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) goto LAB_003399e3;" if (parenthesized_expression "(paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0)" ( (binary_expression "paVar7 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0)" identifier != (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0)" ( (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                           *)0x0" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                           *)0x0" identifier * (ERROR ")" )) number_literal)) ))) )) (goto_statement "goto LAB_003399e3;" goto statement_identifier ;)) }))) (expression_statement "__val.section_name_._M_dataplus._M_p = (pointer)__src;" (assignment_expression "__val.section_name_._M_dataplus._M_p = (pointer)__src" (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)__src" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "uVar3 = __val.section_name_.field_2._M_allocated_capacity;" (assignment_expression "uVar3 = __val.section_name_.field_2._M_allocated_capacity" identifier = (field_expression "__val.section_name_.field_2._M_allocated_capacity" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) }))) (labeled_statement "LAB_003399e3:\n        __val.section_name_.field_2._M_allocated_capacity = uVar3;" statement_identifier : (expression_statement "__val.section_name_.field_2._M_allocated_capacity = uVar3;" (assignment_expression "__val.section_name_.field_2._M_allocated_capacity = uVar3" (field_expression "__val.section_name_.field_2._M_allocated_capacity" (field_expression "__val.section_name_.field_2" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;)) (expression_statement "__val.section_name_._M_string_length = 0;" (assignment_expression "__val.section_name_._M_string_length = 0" (field_expression "__val.section_name_._M_string_length" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "*__val.section_name_._M_dataplus._M_p = '\0';" (assignment_expression "*__val.section_name_._M_dataplus._M_p = '\0'" (pointer_expression "*__val.section_name_._M_dataplus._M_p" * (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[4] = (size_type)__val.size_;" (assignment_expression "(&paVar4->_M_allocated_capacity)[4] = (size_type)__val.size_" (subscript_expression "(&paVar4->_M_allocated_capacity)[4]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (cast_expression "(size_type)__val.size_" ( (type_descriptor "size_type" type_identifier) ) (field_expression "__val.size_" identifier . field_identifier))) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[5] = __val.size_._4_4_;" (assignment_expression "(&paVar4->_M_allocated_capacity)[5] = __val.size_._4_4_" (subscript_expression "(&paVar4->_M_allocated_capacity)[5]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (field_expression "__val.size_._4_4_" (field_expression "__val.size_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[6] = (size_type)__val.addralign_;" (assignment_expression "(&paVar4->_M_allocated_capacity)[6] = (size_type)__val.addralign_" (subscript_expression "(&paVar4->_M_allocated_capacity)[6]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (cast_expression "(size_type)__val.addralign_" ( (type_descriptor "size_type" type_identifier) ) (field_expression "__val.addralign_" identifier . field_identifier))) ;) (expression_statement "(&paVar4->_M_allocated_capacity)[7] = __val.addralign_._4_4_;" (assignment_expression "(&paVar4->_M_allocated_capacity)[7] = __val.addralign_._4_4_" (subscript_expression "(&paVar4->_M_allocated_capacity)[7]" (parenthesized_expression "(&paVar4->_M_allocated_capacity)" ( (pointer_expression "&paVar4->_M_allocated_capacity" & (field_expression "paVar4->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (field_expression "__val.addralign_._4_4_" (field_expression "__val.addralign_" identifier . field_identifier) . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p != __src) {\n          operator_delete(__val.section_name_._M_dataplus._M_p);\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p != __src)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p != __src)" ( (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             *)__val.section_name_._M_dataplus._M_p != __src" (binary_expression "allocator<char>_>_9\n             *)__val.section_name_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)__val.section_name_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n          operator_delete(__val.section_name_._M_dataplus._M_p);\n        }" { (expression_statement "operator_delete(__val.section_name_._M_dataplus._M_p);" (call_expression "operator_delete(__val.section_name_._M_dataplus._M_p)" identifier (argument_list "(__val.section_name_._M_dataplus._M_p)" ( (field_expression "__val.section_name_._M_dataplus._M_p" (field_expression "__val.section_name_._M_dataplus" (field_expression "__val.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) ))) ;) })) }) (ERROR "local_78 = (Input_section_info *)(paVar11 + 2);\n      paVar11 = paVar11 + 4;\n    }" identifier = ( identifier * ) ( identifier + number_literal ) ; identifier = identifier + number_literal ; }) while (parenthesized_expression "(__last._M_current != local_78)" ( (binary_expression "__last._M_current != local_78" (field_expression "__last._M_current" identifier . field_identifier) != identifier) )) ;) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_00339780(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  undefined4 uVar1;\n  char cVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  undefined4 *local_78;\n  int local_70;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 *local_44;\n  size_t local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  if ((param_1 != param_2) && (param_2 != param_1 + 0x10)) {\n    puVar9 = param_1 + 0x18;\n    do {\n      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);\n      local_44 = &local_3c;\n      if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      local_78 = puVar9 + 8;\n      puVar9 = puVar9 + 0x10;\n    } while (param_2 != local_78);\n  }\n  return;\n}\n\n" (function_definition "void FUN_00339780(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  undefined4 uVar1;\n  char cVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  undefined4 *local_78;\n  int local_70;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 *local_44;\n  size_t local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  if ((param_1 != param_2) && (param_2 != param_1 + 0x10)) {\n    puVar9 = param_1 + 0x18;\n    do {\n      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);\n      local_44 = &local_3c;\n      if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      local_78 = puVar9 + 8;\n      puVar9 = puVar9 + 0x10;\n    } while (param_2 != local_78);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00339780(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4)" identifier (parameter_list "(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 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 "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  char cVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  undefined4 *local_78;\n  int local_70;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 *local_44;\n  size_t local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  if ((param_1 != param_2) && (param_2 != param_1 + 0x10)) {\n    puVar9 = param_1 + 0x18;\n    do {\n      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);\n      local_44 = &local_3c;\n      if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      local_78 = puVar9 + 8;\n      puVar9 = puVar9 + 0x10;\n    } while (param_2 != local_78);\n  }\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "size_t local_40;" primitive_type identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (if_statement "if ((param_1 != param_2) && (param_2 != param_1 + 0x10)) {\n    puVar9 = param_1 + 0x18;\n    do {\n      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);\n      local_44 = &local_3c;\n      if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      local_78 = puVar9 + 8;\n      puVar9 = puVar9 + 0x10;\n    } while (param_2 != local_78);\n  }" if (parenthesized_expression "((param_1 != param_2) && (param_2 != param_1 + 0x10))" ( (binary_expression "(param_1 != param_2) && (param_2 != param_1 + 0x10)" (parenthesized_expression "(param_1 != param_2)" ( (binary_expression "param_1 != param_2" identifier != identifier) )) && (parenthesized_expression "(param_2 != param_1 + 0x10)" ( (binary_expression "param_2 != param_1 + 0x10" identifier != (binary_expression "param_1 + 0x10" identifier + number_literal)) ))) )) (compound_statement "{\n    puVar9 = param_1 + 0x18;\n    do {\n      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);\n      local_44 = &local_3c;\n      if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      local_78 = puVar9 + 8;\n      puVar9 = puVar9 + 0x10;\n    } while (param_2 != local_78);\n  }" { (expression_statement "puVar9 = param_1 + 0x18;" (assignment_expression "puVar9 = param_1 + 0x18" identifier = (binary_expression "param_1 + 0x18" identifier + number_literal)) ;) (do_statement "do {\n      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);\n      local_44 = &local_3c;\n      if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      local_78 = puVar9 + 8;\n      puVar9 = puVar9 + 0x10;\n    } while (param_2 != local_78);" do (compound_statement "{\n      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);\n      local_44 = &local_3c;\n      if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      local_78 = puVar9 + 8;\n      puVar9 = puVar9 + 0x10;\n    }" { (expression_statement "cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);" (assignment_expression "cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1)" identifier = (call_expression "FUN_00330fc0(&param_3,puVar9 + -8,param_1)" identifier (argument_list "(&param_3,puVar9 + -8,param_1)" ( (pointer_expression "&param_3" & identifier) , (binary_expression "puVar9 + -8" identifier + number_literal) , identifier )))) ;) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (if_statement "if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }" { (expression_statement "local_60 = param_4;" (assignment_expression "local_60 = param_4" identifier = identifier) ;) (expression_statement "local_5c = puVar9[-8];" (assignment_expression "local_5c = puVar9[-8]" identifier = (subscript_expression "puVar9[-8]" identifier [ number_literal ])) ;) (expression_statement "local_64 = param_3;" (assignment_expression "local_64 = param_3" identifier = identifier) ;) (expression_statement "local_58 = puVar9[-7];" (assignment_expression "local_58 = puVar9[-7]" identifier = (subscript_expression "puVar9[-7]" identifier [ number_literal ])) ;) (expression_statement "local_54 = puVar9[-6];" (assignment_expression "local_54 = puVar9[-6]" identifier = (subscript_expression "puVar9[-6]" identifier [ number_literal ])) ;) (expression_statement "local_50 = puVar9[-5];" (assignment_expression "local_50 = puVar9[-5]" identifier = (subscript_expression "puVar9[-5]" identifier [ number_literal ])) ;) (expression_statement "local_4c = puVar9[-4];" (assignment_expression "local_4c = puVar9[-4]" identifier = (subscript_expression "puVar9[-4]" identifier [ number_literal ])) ;) (expression_statement "local_48 = puVar9[-3];" (assignment_expression "local_48 = puVar9[-3]" identifier = (subscript_expression "puVar9[-3]" identifier [ number_literal ])) ;) (if_statement "if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }" if (parenthesized_expression "((undefined4 *)puVar9[-2] == puVar9)" ( (binary_expression "(undefined4 *)puVar9[-2] == puVar9" (cast_expression "(undefined4 *)puVar9[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[-2]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }" { (expression_statement "local_3c = *puVar9;" (assignment_expression "local_3c = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "local_38 = puVar9[1];" (assignment_expression "local_38 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "local_34 = puVar9[2];" (assignment_expression "local_34 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "local_30 = puVar9[3];" (assignment_expression "local_30 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }" else (compound_statement "{\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }" { (expression_statement "local_3c = *puVar9;" (assignment_expression "local_3c = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "local_44 = (undefined4 *)puVar9[-2];" (assignment_expression "local_44 = (undefined4 *)puVar9[-2]" identifier = (cast_expression "(undefined4 *)puVar9[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[-2]" identifier [ number_literal ]))) ;) }))) (expression_statement "local_40 = puVar9[-1];" (assignment_expression "local_40 = puVar9[-1]" identifier = (subscript_expression "puVar9[-1]" identifier [ number_literal ])) ;) (expression_statement "local_28 = puVar9[5];" (assignment_expression "local_28 = puVar9[5]" identifier = (subscript_expression "puVar9[5]" identifier [ number_literal ])) ;) (expression_statement "puVar9[-2] = puVar9;" (assignment_expression "puVar9[-2] = puVar9" (subscript_expression "puVar9[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[-1] = 0;" (assignment_expression "puVar9[-1] = 0" (subscript_expression "puVar9[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_2c = puVar9[4];" (assignment_expression "local_2c = puVar9[4]" identifier = (subscript_expression "puVar9[4]" identifier [ number_literal ])) ;) (expression_statement "local_20 = puVar9[7];" (assignment_expression "local_20 = puVar9[7]" identifier = (subscript_expression "puVar9[7]" identifier [ number_literal ])) ;) (expression_statement "local_24 = puVar9[6];" (assignment_expression "local_24 = puVar9[6]" identifier = (subscript_expression "puVar9[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)puVar9 = 0;" (assignment_expression "*(undefined1 *)puVar9 = 0" (pointer_expression "*(undefined1 *)puVar9" * (cast_expression "(undefined1 *)puVar9" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar5 = puVar9;" (assignment_expression "puVar5 = puVar9" identifier = identifier) ;) (while_statement "while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }" { (expression_statement "puVar7 = puVar5 + -0x10;" (assignment_expression "puVar7 = puVar5 + -0x10" identifier = (binary_expression "puVar5 + -0x10" identifier + number_literal)) ;) (expression_statement "cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);" (assignment_expression "cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18)" identifier = (call_expression "FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18)" identifier (argument_list "(&local_64,&local_5c,puVar5 + -0x18)" ( (pointer_expression "&local_64" & identifier) , (pointer_expression "&local_5c" & identifier) , (binary_expression "puVar5 + -0x18" identifier + number_literal) )))) ;) (expression_statement "puVar4 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar4 = (undefined4 *)puVar5[-2]" identifier = (cast_expression "(undefined4 *)puVar5[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[-2]" identifier [ number_literal ]))) ;) (if_statement "if (cVar2 == '\0') break;" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "puVar5[-8] = puVar5[-0x18];" (assignment_expression "puVar5[-8] = puVar5[-0x18]" (subscript_expression "puVar5[-8]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x18]" identifier [ number_literal ])) ;) (expression_statement "puVar5[-7] = puVar5[-0x17];" (assignment_expression "puVar5[-7] = puVar5[-0x17]" (subscript_expression "puVar5[-7]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x17]" identifier [ number_literal ])) ;) (expression_statement "puVar5[-6] = puVar5[-0x16];" (assignment_expression "puVar5[-6] = puVar5[-0x16]" (subscript_expression "puVar5[-6]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x16]" identifier [ number_literal ])) ;) (expression_statement "puVar5[-5] = puVar5[-0x15];" (assignment_expression "puVar5[-5] = puVar5[-0x15]" (subscript_expression "puVar5[-5]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x15]" identifier [ number_literal ])) ;) (expression_statement "puVar5[-4] = puVar5[-0x14];" (assignment_expression "puVar5[-4] = puVar5[-0x14]" (subscript_expression "puVar5[-4]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x14]" identifier [ number_literal ])) ;) (expression_statement "puVar5[-3] = puVar5[-0x13];" (assignment_expression "puVar5[-3] = puVar5[-0x13]" (subscript_expression "puVar5[-3]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x13]" identifier [ number_literal ])) ;) (expression_statement "puVar8 = (undefined4 *)puVar5[-0x12];" (assignment_expression "puVar8 = (undefined4 *)puVar5[-0x12]" identifier = (cast_expression "(undefined4 *)puVar5[-0x12]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[-0x12]" identifier [ number_literal ]))) ;) (if_statement "if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }" if (parenthesized_expression "(puVar8 == puVar7)" ( (binary_expression "puVar8 == puVar7" identifier == identifier) )) (compound_statement "{\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }" { (expression_statement "sVar3 = puVar5[-0x11];" (assignment_expression "sVar3 = puVar5[-0x11]" identifier = (subscript_expression "puVar5[-0x11]" identifier [ number_literal ])) ;) (if_statement "if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }" if (parenthesized_expression "(sVar3 != 0)" ( (binary_expression "sVar3 != 0" identifier != number_literal) )) (compound_statement "{\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }" { (if_statement "if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }" if (parenthesized_expression "(sVar3 == 1)" ( (binary_expression "sVar3 == 1" identifier == number_literal) )) (compound_statement "{\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }" { (expression_statement "*(undefined1 *)puVar4 = *(undefined1 *)puVar7;" (assignment_expression "*(undefined1 *)puVar4 = *(undefined1 *)puVar7" (pointer_expression "*(undefined1 *)puVar4" * (cast_expression "(undefined1 *)puVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)puVar7" * (cast_expression "(undefined1 *)puVar7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "sVar3 = puVar5[-0x11];" (assignment_expression "sVar3 = puVar5[-0x11]" identifier = (subscript_expression "puVar5[-0x11]" identifier [ number_literal ])) ;) (expression_statement "puVar4 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar4 = (undefined4 *)puVar5[-2]" identifier = (cast_expression "(undefined4 *)puVar5[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[-2]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }" else (compound_statement "{\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }" { (expression_statement "memcpy(puVar4,puVar7,sVar3);" (call_expression "memcpy(puVar4,puVar7,sVar3)" identifier (argument_list "(puVar4,puVar7,sVar3)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar3 = puVar5[-0x11];" (assignment_expression "sVar3 = puVar5[-0x11]" identifier = (subscript_expression "puVar5[-0x11]" identifier [ number_literal ])) ;) (expression_statement "puVar4 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar4 = (undefined4 *)puVar5[-2]" identifier = (cast_expression "(undefined4 *)puVar5[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[-2]" identifier [ number_literal ]))) ;) }))) })) (expression_statement "puVar5[-1] = sVar3;" (assignment_expression "puVar5[-1] = sVar3" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar4 + sVar3) = 0;" (assignment_expression "*(undefined1 *)((int)puVar4 + sVar3) = 0" (pointer_expression "*(undefined1 *)((int)puVar4 + sVar3)" * (cast_expression "(undefined1 *)((int)puVar4 + sVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + sVar3)" ( (binary_expression "(int)puVar4 + sVar3" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "puVar4 = (undefined4 *)puVar5[-0x12];" (assignment_expression "puVar4 = (undefined4 *)puVar5[-0x12]" identifier = (cast_expression "(undefined4 *)puVar5[-0x12]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[-0x12]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }" else (compound_statement "{\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }" { (if_statement "if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }" if (parenthesized_expression "(puVar5 == puVar4)" ( (binary_expression "puVar5 == puVar4" identifier == identifier) )) (compound_statement "{\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }" { (expression_statement "puVar5[-2] = puVar8;" (assignment_expression "puVar5[-2] = puVar8" (subscript_expression "puVar5[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[-1] = puVar5[-0x11];" (assignment_expression "puVar5[-1] = puVar5[-0x11]" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x11]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar7;" (assignment_expression "*puVar5 = *puVar7" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) }) (else_clause "else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }" else (compound_statement "{\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }" { (expression_statement "puVar5[-2] = puVar8;" (assignment_expression "puVar5[-2] = puVar8" (subscript_expression "puVar5[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = *puVar5;" (assignment_expression "uVar1 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar5[-1] = puVar5[-0x11];" (assignment_expression "puVar5[-1] = puVar5[-0x11]" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x11]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar7;" (assignment_expression "*puVar5 = *puVar7" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }" if (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }" { (expression_statement "puVar5[-0x12] = puVar4;" (assignment_expression "puVar5[-0x12] = puVar4" (subscript_expression "puVar5[-0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar7 = uVar1;" (assignment_expression "*puVar7 = uVar1" (pointer_expression "*puVar7" * identifier) = identifier) ;) (goto_statement "goto LAB_0033989e;" goto statement_identifier ;) })) }))) (expression_statement "puVar5[-0x12] = puVar7;" (assignment_expression "puVar5[-0x12] = puVar7" (subscript_expression "puVar5[-0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = puVar7;" (assignment_expression "puVar4 = puVar7" identifier = identifier) ;) }))) (labeled_statement "LAB_0033989e:\n          puVar5[-0x11] = 0;" statement_identifier : (expression_statement "puVar5[-0x11] = 0;" (assignment_expression "puVar5[-0x11] = 0" (subscript_expression "puVar5[-0x11]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "*(undefined1 *)puVar4 = 0;" (assignment_expression "*(undefined1 *)puVar4 = 0" (pointer_expression "*(undefined1 *)puVar4" * (cast_expression "(undefined1 *)puVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar5[4] = puVar5[-0xc];" (assignment_expression "puVar5[4] = puVar5[-0xc]" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0xc]" identifier [ number_literal ])) ;) (expression_statement "puVar5[5] = puVar5[-0xb];" (assignment_expression "puVar5[5] = puVar5[-0xb]" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0xb]" identifier [ number_literal ])) ;) (expression_statement "puVar5[6] = puVar5[-10];" (assignment_expression "puVar5[6] = puVar5[-10]" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = (subscript_expression "puVar5[-10]" identifier [ number_literal ])) ;) (expression_statement "puVar5[7] = puVar5[-9];" (assignment_expression "puVar5[7] = puVar5[-9]" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = (subscript_expression "puVar5[-9]" identifier [ number_literal ])) ;) (expression_statement "puVar5 = puVar7;" (assignment_expression "puVar5 = puVar7" identifier = identifier) ;) })) (expression_statement "puVar5[-8] = local_5c;" (assignment_expression "puVar5[-8] = local_5c" (subscript_expression "puVar5[-8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[-7] = local_58;" (assignment_expression "puVar5[-7] = local_58" (subscript_expression "puVar5[-7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[-6] = local_54;" (assignment_expression "puVar5[-6] = local_54" (subscript_expression "puVar5[-6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[-5] = local_50;" (assignment_expression "puVar5[-5] = local_50" (subscript_expression "puVar5[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[-4] = local_4c;" (assignment_expression "puVar5[-4] = local_4c" (subscript_expression "puVar5[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[-3] = local_48;" (assignment_expression "puVar5[-3] = local_48" (subscript_expression "puVar5[-3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }" if (parenthesized_expression "(local_44 == &local_3c)" ( (binary_expression "local_44 == &local_3c" identifier == (pointer_expression "&local_3c" & identifier)) )) (compound_statement "{\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }" { (if_statement "if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }" if (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) (compound_statement "{\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }" { (if_statement "if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }" if (parenthesized_expression "(local_40 == 1)" ( (binary_expression "local_40 == 1" identifier == number_literal) )) (compound_statement "{\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }" { (expression_statement "*(undefined1 *)puVar4 = (undefined1)local_3c;" (assignment_expression "*(undefined1 *)puVar4 = (undefined1)local_3c" (pointer_expression "*(undefined1 *)puVar4" * (cast_expression "(undefined1 *)puVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined1)local_3c" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puVar5[-1] = 1;" (assignment_expression "puVar5[-1] = 1" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar5[-2] + 1) = 0;" (assignment_expression "*(undefined1 *)(puVar5[-2] + 1) = 0" (pointer_expression "*(undefined1 *)(puVar5[-2] + 1)" * (cast_expression "(undefined1 *)(puVar5[-2] + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5[-2] + 1)" ( (binary_expression "puVar5[-2] + 1" (subscript_expression "puVar5[-2]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "uVar1 = local_3c;" (assignment_expression "uVar1 = local_3c" identifier = identifier) ;) (goto_statement "goto LAB_003399e3;" goto statement_identifier ;) })) (expression_statement "memcpy(puVar4,&local_3c,local_40);" (call_expression "memcpy(puVar4,&local_3c,local_40)" identifier (argument_list "(puVar4,&local_3c,local_40)" ( identifier , (pointer_expression "&local_3c" & identifier) , identifier ))) ;) (expression_statement "puVar4 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar4 = (undefined4 *)puVar5[-2]" identifier = (cast_expression "(undefined4 *)puVar5[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[-2]" identifier [ number_literal ]))) ;) })) (expression_statement "puVar5[-1] = local_40;" (assignment_expression "puVar5[-1] = local_40" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar4 + local_40) = 0;" (assignment_expression "*(undefined1 *)((int)puVar4 + local_40) = 0" (pointer_expression "*(undefined1 *)((int)puVar4 + local_40)" * (cast_expression "(undefined1 *)((int)puVar4 + local_40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + local_40)" ( (binary_expression "(int)puVar4 + local_40" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar1 = local_3c;" (assignment_expression "uVar1 = local_3c" identifier = identifier) ;) }) (else_clause "else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }" else (compound_statement "{\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }" { (if_statement "if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }" if (parenthesized_expression "(puVar5 == puVar4)" ( (binary_expression "puVar5 == puVar4" identifier == identifier) )) (compound_statement "{\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }" { (expression_statement "puVar5[-2] = local_44;" (assignment_expression "puVar5[-2] = local_44" (subscript_expression "puVar5[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[-1] = local_40;" (assignment_expression "puVar5[-1] = local_40" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar5 = local_3c;" (assignment_expression "*puVar5 = local_3c" (pointer_expression "*puVar5" * identifier) = identifier) ;) }) (else_clause "else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }" else (compound_statement "{\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }" { (expression_statement "puVar5[-1] = local_40;" (assignment_expression "puVar5[-1] = local_40" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = *puVar5;" (assignment_expression "uVar1 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar5[-2] = local_44;" (assignment_expression "puVar5[-2] = local_44" (subscript_expression "puVar5[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar5 = local_3c;" (assignment_expression "*puVar5 = local_3c" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "local_44 = puVar4;" (assignment_expression "local_44 = puVar4" identifier = identifier) ;) (if_statement "if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;" if (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_003399e3;" goto statement_identifier ;)) }))) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (expression_statement "uVar1 = local_3c;" (assignment_expression "uVar1 = local_3c" identifier = identifier) ;) }))) (labeled_statement "LAB_003399e3:\n        local_3c = uVar1;" statement_identifier : (expression_statement "local_3c = uVar1;" (assignment_expression "local_3c = uVar1" identifier = identifier) ;)) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)local_44 = 0;" (assignment_expression "*(undefined1 *)local_44 = 0" (pointer_expression "*(undefined1 *)local_44" * (cast_expression "(undefined1 *)local_44" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar5[4] = local_2c;" (assignment_expression "puVar5[4] = local_2c" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[5] = local_28;" (assignment_expression "puVar5[5] = local_28" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[6] = local_24;" (assignment_expression "puVar5[6] = local_24" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[7] = local_20;" (assignment_expression "puVar5[7] = local_20" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }" if (parenthesized_expression "(local_44 != &local_3c)" ( (binary_expression "local_44 != &local_3c" identifier != (pointer_expression "&local_3c" & identifier)) )) (compound_statement "{\n          FUN_003ae080(local_44);\n        }" { (expression_statement "FUN_003ae080(local_44);" (call_expression "FUN_003ae080(local_44)" identifier (argument_list "(local_44)" ( identifier ))) ;) })) }) (else_clause "else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }" else (compound_statement "{\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }" { (expression_statement "local_5c = puVar9[-8];" (assignment_expression "local_5c = puVar9[-8]" identifier = (subscript_expression "puVar9[-8]" identifier [ number_literal ])) ;) (expression_statement "local_58 = puVar9[-7];" (assignment_expression "local_58 = puVar9[-7]" identifier = (subscript_expression "puVar9[-7]" identifier [ number_literal ])) ;) (expression_statement "local_54 = puVar9[-6];" (assignment_expression "local_54 = puVar9[-6]" identifier = (subscript_expression "puVar9[-6]" identifier [ number_literal ])) ;) (expression_statement "local_50 = puVar9[-5];" (assignment_expression "local_50 = puVar9[-5]" identifier = (subscript_expression "puVar9[-5]" identifier [ number_literal ])) ;) (expression_statement "local_4c = puVar9[-4];" (assignment_expression "local_4c = puVar9[-4]" identifier = (subscript_expression "puVar9[-4]" identifier [ number_literal ])) ;) (expression_statement "local_48 = puVar9[-3];" (assignment_expression "local_48 = puVar9[-3]" identifier = (subscript_expression "puVar9[-3]" identifier [ number_literal ])) ;) (if_statement "if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }" if (parenthesized_expression "((undefined4 *)puVar9[-2] == puVar9)" ( (binary_expression "(undefined4 *)puVar9[-2] == puVar9" (cast_expression "(undefined4 *)puVar9[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[-2]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }" { (expression_statement "local_3c = *puVar9;" (assignment_expression "local_3c = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "local_38 = puVar9[1];" (assignment_expression "local_38 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "local_34 = puVar9[2];" (assignment_expression "local_34 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "local_30 = puVar9[3];" (assignment_expression "local_30 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }" else (compound_statement "{\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }" { (expression_statement "local_3c = *puVar9;" (assignment_expression "local_3c = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "local_44 = (undefined4 *)puVar9[-2];" (assignment_expression "local_44 = (undefined4 *)puVar9[-2]" identifier = (cast_expression "(undefined4 *)puVar9[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[-2]" identifier [ number_literal ]))) ;) }))) (expression_statement "local_28 = puVar9[5];" (assignment_expression "local_28 = puVar9[5]" identifier = (subscript_expression "puVar9[5]" identifier [ number_literal ])) ;) (expression_statement "local_2c = puVar9[4];" (assignment_expression "local_2c = puVar9[4]" identifier = (subscript_expression "puVar9[4]" identifier [ number_literal ])) ;) (expression_statement "puVar9[-2] = puVar9;" (assignment_expression "puVar9[-2] = puVar9" (subscript_expression "puVar9[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_40 = puVar9[-1];" (assignment_expression "local_40 = puVar9[-1]" identifier = (subscript_expression "puVar9[-1]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = (int)(puVar9 + -8) - (int)param_1;" (assignment_expression "iVar6 = (int)(puVar9 + -8) - (int)param_1" identifier = (binary_expression "(int)(puVar9 + -8) - (int)param_1" (cast_expression "(int)(puVar9 + -8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar9 + -8)" ( (binary_expression "puVar9 + -8" identifier + number_literal) ))) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(undefined1 *)puVar9 = 0;" (assignment_expression "*(undefined1 *)puVar9 = 0" (pointer_expression "*(undefined1 *)puVar9" * (cast_expression "(undefined1 *)puVar9" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "local_20 = puVar9[7];" (assignment_expression "local_20 = puVar9[7]" identifier = (subscript_expression "puVar9[7]" identifier [ number_literal ])) ;) (expression_statement "local_24 = puVar9[6];" (assignment_expression "local_24 = puVar9[6]" identifier = (subscript_expression "puVar9[6]" identifier [ number_literal ])) ;) (expression_statement "local_70 = iVar6 >> 6;" (assignment_expression "local_70 = iVar6 >> 6" identifier = (binary_expression "iVar6 >> 6" identifier >> number_literal)) ;) (expression_statement "puVar9[-1] = 0;" (assignment_expression "puVar9[-1] = 0" (subscript_expression "puVar9[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4 = puVar9;" (assignment_expression "puVar4 = puVar9" identifier = identifier) ;) (expression_statement "puVar5 = puVar9;" (assignment_expression "puVar5 = puVar9" identifier = identifier) ;) (if_statement "if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }" if (parenthesized_expression "(0 < iVar6)" ( (binary_expression "0 < iVar6" number_literal < identifier) )) (compound_statement "{\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }" { (do_statement "do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );" do (compound_statement "{\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          }" { (expression_statement "puVar8 = puVar5 + -0x10;" (assignment_expression "puVar8 = puVar5 + -0x10" identifier = (binary_expression "puVar5 + -0x10" identifier + number_literal)) ;) (expression_statement "puVar5[-8] = puVar5[-0x18];" (assignment_expression "puVar5[-8] = puVar5[-0x18]" (subscript_expression "puVar5[-8]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x18]" identifier [ number_literal ])) ;) (expression_statement "puVar5[-7] = puVar5[-0x17];" (assignment_expression "puVar5[-7] = puVar5[-0x17]" (subscript_expression "puVar5[-7]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x17]" identifier [ number_literal ])) ;) (expression_statement "puVar5[-6] = puVar5[-0x16];" (assignment_expression "puVar5[-6] = puVar5[-0x16]" (subscript_expression "puVar5[-6]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x16]" identifier [ number_literal ])) ;) (expression_statement "puVar5[-5] = puVar5[-0x15];" (assignment_expression "puVar5[-5] = puVar5[-0x15]" (subscript_expression "puVar5[-5]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x15]" identifier [ number_literal ])) ;) (expression_statement "puVar5[-4] = puVar5[-0x14];" (assignment_expression "puVar5[-4] = puVar5[-0x14]" (subscript_expression "puVar5[-4]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x14]" identifier [ number_literal ])) ;) (expression_statement "puVar5[-3] = puVar5[-0x13];" (assignment_expression "puVar5[-3] = puVar5[-0x13]" (subscript_expression "puVar5[-3]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x13]" identifier [ number_literal ])) ;) (expression_statement "puVar7 = (undefined4 *)puVar5[-0x12];" (assignment_expression "puVar7 = (undefined4 *)puVar5[-0x12]" identifier = (cast_expression "(undefined4 *)puVar5[-0x12]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[-0x12]" identifier [ number_literal ]))) ;) (if_statement "if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }" if (parenthesized_expression "(puVar7 == puVar8)" ( (binary_expression "puVar7 == puVar8" identifier == identifier) )) (compound_statement "{\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }" { (expression_statement "sVar3 = puVar5[-0x11];" (assignment_expression "sVar3 = puVar5[-0x11]" identifier = (subscript_expression "puVar5[-0x11]" identifier [ number_literal ])) ;) (if_statement "if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }" if (parenthesized_expression "(sVar3 != 0)" ( (binary_expression "sVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }" { (if_statement "if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }" if (parenthesized_expression "(sVar3 == 1)" ( (binary_expression "sVar3 == 1" identifier == number_literal) )) (compound_statement "{\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }" { (expression_statement "*(undefined1 *)puVar4 = *(undefined1 *)puVar8;" (assignment_expression "*(undefined1 *)puVar4 = *(undefined1 *)puVar8" (pointer_expression "*(undefined1 *)puVar4" * (cast_expression "(undefined1 *)puVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)puVar8" * (cast_expression "(undefined1 *)puVar8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "sVar3 = puVar5[-0x11];" (assignment_expression "sVar3 = puVar5[-0x11]" identifier = (subscript_expression "puVar5[-0x11]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }" else (compound_statement "{\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }" { (expression_statement "memcpy(puVar4,puVar8,sVar3);" (call_expression "memcpy(puVar4,puVar8,sVar3)" identifier (argument_list "(puVar4,puVar8,sVar3)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar3 = puVar5[-0x11];" (assignment_expression "sVar3 = puVar5[-0x11]" identifier = (subscript_expression "puVar5[-0x11]" identifier [ number_literal ])) ;) }))) })) (expression_statement "puVar5[-1] = sVar3;" (assignment_expression "puVar5[-1] = sVar3" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar5[-2] + sVar3) = 0;" (assignment_expression "*(undefined1 *)(puVar5[-2] + sVar3) = 0" (pointer_expression "*(undefined1 *)(puVar5[-2] + sVar3)" * (cast_expression "(undefined1 *)(puVar5[-2] + sVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5[-2] + sVar3)" ( (binary_expression "puVar5[-2] + sVar3" (subscript_expression "puVar5[-2]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) }) (else_clause "else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }" else (compound_statement "{\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }" { (if_statement "if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }" if (parenthesized_expression "(puVar4 == puVar5)" ( (binary_expression "puVar4 == puVar5" identifier == identifier) )) (compound_statement "{\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }" { (expression_statement "puVar5[-2] = puVar7;" (assignment_expression "puVar5[-2] = puVar7" (subscript_expression "puVar5[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[-1] = puVar5[-0x11];" (assignment_expression "puVar5[-1] = puVar5[-0x11]" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x11]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar8;" (assignment_expression "*puVar5 = *puVar8" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar8" * identifier)) ;) }) (else_clause "else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }" else (compound_statement "{\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }" { (expression_statement "puVar5[-2] = puVar7;" (assignment_expression "puVar5[-2] = puVar7" (subscript_expression "puVar5[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = *puVar5;" (assignment_expression "uVar1 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar5[-1] = puVar5[-0x11];" (assignment_expression "puVar5[-1] = puVar5[-0x11]" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0x11]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar8;" (assignment_expression "*puVar5 = *puVar8" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar8" * identifier)) ;) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }" if (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }" { (expression_statement "puVar5[-0x12] = puVar4;" (assignment_expression "puVar5[-0x12] = puVar4" (subscript_expression "puVar5[-0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar8 = uVar1;" (assignment_expression "*puVar8 = uVar1" (pointer_expression "*puVar8" * identifier) = identifier) ;) (goto_statement "goto LAB_00339b09;" goto statement_identifier ;) })) }))) (expression_statement "puVar5[-0x12] = puVar8;" (assignment_expression "puVar5[-0x12] = puVar8" (subscript_expression "puVar5[-0x12]" identifier [ number_literal ]) = identifier) ;) }))) (labeled_statement "LAB_00339b09:\n            puVar5[-0x11] = 0;" statement_identifier : (expression_statement "puVar5[-0x11] = 0;" (assignment_expression "puVar5[-0x11] = 0" (subscript_expression "puVar5[-0x11]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "*(undefined1 *)puVar5[-0x12] = 0;" (assignment_expression "*(undefined1 *)puVar5[-0x12] = 0" (pointer_expression "*(undefined1 *)puVar5[-0x12]" * (cast_expression "(undefined1 *)puVar5[-0x12]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[-0x12]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "puVar5[4] = puVar5[-0xc];" (assignment_expression "puVar5[4] = puVar5[-0xc]" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0xc]" identifier [ number_literal ])) ;) (expression_statement "puVar5[5] = puVar5[-0xb];" (assignment_expression "puVar5[5] = puVar5[-0xb]" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = (subscript_expression "puVar5[-0xb]" identifier [ number_literal ])) ;) (expression_statement "puVar5[6] = puVar5[-10];" (assignment_expression "puVar5[6] = puVar5[-10]" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = (subscript_expression "puVar5[-10]" identifier [ number_literal ])) ;) (expression_statement "puVar5[7] = puVar5[-9];" (assignment_expression "puVar5[7] = puVar5[-9]" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = (subscript_expression "puVar5[-9]" identifier [ number_literal ])) ;) (expression_statement "local_70 = local_70 + -1;" (assignment_expression "local_70 = local_70 + -1" identifier = (binary_expression "local_70 + -1" identifier + number_literal)) ;) (if_statement "if (local_70 == 0) break;" if (parenthesized_expression "(local_70 == 0)" ( (binary_expression "local_70 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar4 = (undefined4 *)puVar5[-0x12];" (assignment_expression "puVar4 = (undefined4 *)puVar5[-0x12]" identifier = (cast_expression "(undefined4 *)puVar5[-0x12]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[-0x12]" identifier [ number_literal ]))) ;) (expression_statement "puVar5 = puVar8;" (assignment_expression "puVar5 = puVar8" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "*param_1 = local_5c;" (assignment_expression "*param_1 = local_5c" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_58;" (assignment_expression "param_1[1] = local_58" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[2] = local_54;" (assignment_expression "param_1[2] = local_54" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = local_50;" (assignment_expression "param_1[3] = local_50" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[4] = local_4c;" (assignment_expression "param_1[4] = local_4c" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = local_48;" (assignment_expression "param_1[5] = local_48" (subscript_expression "param_1[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5 = (undefined4 *)param_1[6];" (assignment_expression "puVar5 = (undefined4 *)param_1[6]" identifier = (cast_expression "(undefined4 *)param_1[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) (if_statement "if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }" if (parenthesized_expression "(local_44 == &local_3c)" ( (binary_expression "local_44 == &local_3c" identifier == (pointer_expression "&local_3c" & identifier)) )) (compound_statement "{\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }" { (if_statement "if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }" if (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) (compound_statement "{\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }" { (if_statement "if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }" if (parenthesized_expression "(local_40 == 1)" ( (binary_expression "local_40 == 1" identifier == number_literal) )) (compound_statement "{\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }" { (expression_statement "*(undefined1 *)puVar5 = (undefined1)local_3c;" (assignment_expression "*(undefined1 *)puVar5 = (undefined1)local_3c" (pointer_expression "*(undefined1 *)puVar5" * (cast_expression "(undefined1 *)puVar5" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined1)local_3c" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puVar5 = (undefined4 *)param_1[6];" (assignment_expression "puVar5 = (undefined4 *)param_1[6]" identifier = (cast_expression "(undefined4 *)param_1[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }" else (compound_statement "{\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }" { (expression_statement "memcpy(puVar5,&local_3c,local_40);" (call_expression "memcpy(puVar5,&local_3c,local_40)" identifier (argument_list "(puVar5,&local_3c,local_40)" ( identifier , (pointer_expression "&local_3c" & identifier) , identifier ))) ;) (expression_statement "puVar5 = (undefined4 *)param_1[6];" (assignment_expression "puVar5 = (undefined4 *)param_1[6]" identifier = (cast_expression "(undefined4 *)param_1[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) }))) })) (expression_statement "param_1[7] = local_40;" (assignment_expression "param_1[7] = local_40" (subscript_expression "param_1[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar5 + local_40) = 0;" (assignment_expression "*(undefined1 *)((int)puVar5 + local_40) = 0" (pointer_expression "*(undefined1 *)((int)puVar5 + local_40)" * (cast_expression "(undefined1 *)((int)puVar5 + local_40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + local_40)" ( (binary_expression "(int)puVar5 + local_40" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar1 = local_3c;" (assignment_expression "uVar1 = local_3c" identifier = identifier) ;) }) (else_clause "else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }" else (compound_statement "{\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }" { (if_statement "if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }" if (parenthesized_expression "(puVar5 == param_1 + 8)" ( (binary_expression "puVar5 == param_1 + 8" identifier == (binary_expression "param_1 + 8" identifier + number_literal)) )) (compound_statement "{\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }" { (expression_statement "param_1[6] = local_44;" (assignment_expression "param_1[6] = local_44" (subscript_expression "param_1[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[7] = local_40;" (assignment_expression "param_1[7] = local_40" (subscript_expression "param_1[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[8] = local_3c;" (assignment_expression "param_1[8] = local_3c" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }" else (compound_statement "{\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }" { (expression_statement "uVar1 = param_1[8];" (assignment_expression "uVar1 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "param_1[6] = local_44;" (assignment_expression "param_1[6] = local_44" (subscript_expression "param_1[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[7] = local_40;" (assignment_expression "param_1[7] = local_40" (subscript_expression "param_1[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[8] = local_3c;" (assignment_expression "param_1[8] = local_3c" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_44 = puVar5;" (assignment_expression "local_44 = puVar5" identifier = identifier) ;) (if_statement "if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;" if (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" ( (binary_expression "puVar5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00339c3f;" goto statement_identifier ;)) }))) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (expression_statement "uVar1 = local_3c;" (assignment_expression "uVar1 = local_3c" identifier = identifier) ;) }))) (labeled_statement "LAB_00339c3f:\n        local_3c = uVar1;" statement_identifier : (expression_statement "local_3c = uVar1;" (assignment_expression "local_3c = uVar1" identifier = identifier) ;)) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)local_44 = 0;" (assignment_expression "*(undefined1 *)local_44 = 0" (pointer_expression "*(undefined1 *)local_44" * (cast_expression "(undefined1 *)local_44" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "param_1[0xc] = local_2c;" (assignment_expression "param_1[0xc] = local_2c" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xd] = local_28;" (assignment_expression "param_1[0xd] = local_28" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xe] = local_24;" (assignment_expression "param_1[0xe] = local_24" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xf] = local_20;" (assignment_expression "param_1[0xf] = local_20" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }" if (parenthesized_expression "(local_44 != &local_3c)" ( (binary_expression "local_44 != &local_3c" identifier != (pointer_expression "&local_3c" & identifier)) )) (compound_statement "{\n          FUN_003ae080(local_44);\n        }" { (expression_statement "FUN_003ae080(local_44);" (call_expression "FUN_003ae080(local_44)" identifier (argument_list "(local_44)" ( identifier ))) ;) })) }))) (expression_statement "local_78 = puVar9 + 8;" (assignment_expression "local_78 = puVar9 + 8" identifier = (binary_expression "puVar9 + 8" identifier + number_literal)) ;) (expression_statement "puVar9 = puVar9 + 0x10;" (assignment_expression "puVar9 = puVar9 + 0x10" identifier = (binary_expression "puVar9 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_2 != local_78)" ( (binary_expression "param_2 != local_78" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE 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 ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * 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 IDENT = (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 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (break_statement break ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) })) (expression_statement (assignment_expression (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_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 (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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * 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 IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (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) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_00339780(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  undefined4 uVar1;\n  char cVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  undefined4 *local_78;\n  int local_70;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 *local_44;\n  size_t local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  if ((param_1 != param_2) && (param_2 != param_1 + 0x10)) {\n    puVar9 = param_1 + 0x18;\n    do {\n      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);\n      local_44 = &local_3c;\n      if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      local_78 = puVar9 + 8;\n      puVar9 = puVar9 + 0x10;\n    } while (param_2 != local_78);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00339780(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4)" (identifier "FUN_00339780") (parameter_list "(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 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 "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  char cVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  undefined4 *local_78;\n  int local_70;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 *local_44;\n  size_t local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  if ((param_1 != param_2) && (param_2 != param_1 + 0x10)) {\n    puVar9 = param_1 + 0x18;\n    do {\n      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);\n      local_44 = &local_3c;\n      if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      local_78 = puVar9 + 8;\n      puVar9 = puVar9 + 0x10;\n    } while (param_2 != local_78);\n  }\n  return;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "size_t sVar3;" (primitive_type "size_t") (identifier "sVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "undefined4 *local_78;" (type_identifier "undefined4") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "int local_70;" (primitive_type "int") (identifier "local_70") (; ";")) (declaration "undefined4 local_64;" (type_identifier "undefined4") (identifier "local_64") (; ";")) (declaration "undefined4 local_60;" (type_identifier "undefined4") (identifier "local_60") (; ";")) (declaration "undefined4 local_5c;" (type_identifier "undefined4") (identifier "local_5c") (; ";")) (declaration "undefined4 local_58;" (type_identifier "undefined4") (identifier "local_58") (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "undefined4 *local_44;" (type_identifier "undefined4") (pointer_declarator "*local_44" (* "*") (identifier "local_44")) (; ";")) (declaration "size_t local_40;" (primitive_type "size_t") (identifier "local_40") (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (if_statement "if ((param_1 != param_2) && (param_2 != param_1 + 0x10)) {\n    puVar9 = param_1 + 0x18;\n    do {\n      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);\n      local_44 = &local_3c;\n      if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      local_78 = puVar9 + 8;\n      puVar9 = puVar9 + 0x10;\n    } while (param_2 != local_78);\n  }" (if "if") (parenthesized_expression "((param_1 != param_2) && (param_2 != param_1 + 0x10))" (( "(") (binary_expression "(param_1 != param_2) && (param_2 != param_1 + 0x10)" (parenthesized_expression "(param_1 != param_2)" (( "(") (binary_expression "param_1 != param_2" (identifier "param_1") (!= "!=") (identifier "param_2")) () ")")) (&& "&&") (parenthesized_expression "(param_2 != param_1 + 0x10)" (( "(") (binary_expression "param_2 != param_1 + 0x10" (identifier "param_2") (!= "!=") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10"))) () ")"))) () ")")) (compound_statement "{\n    puVar9 = param_1 + 0x18;\n    do {\n      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);\n      local_44 = &local_3c;\n      if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      local_78 = puVar9 + 8;\n      puVar9 = puVar9 + 0x10;\n    } while (param_2 != local_78);\n  }" ({ "{") (expression_statement "puVar9 = param_1 + 0x18;" (assignment_expression "puVar9 = param_1 + 0x18" (identifier "puVar9") (= "=") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18"))) (; ";")) (do_statement "do {\n      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);\n      local_44 = &local_3c;\n      if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      local_78 = puVar9 + 8;\n      puVar9 = puVar9 + 0x10;\n    } while (param_2 != local_78);" (do "do") (compound_statement "{\n      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);\n      local_44 = &local_3c;\n      if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      local_78 = puVar9 + 8;\n      puVar9 = puVar9 + 0x10;\n    }" ({ "{") (expression_statement "cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);" (assignment_expression "cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1)" (identifier "cVar2") (= "=") (call_expression "FUN_00330fc0(&param_3,puVar9 + -8,param_1)" (identifier "FUN_00330fc0") (argument_list "(&param_3,puVar9 + -8,param_1)" (( "(") (pointer_expression "&param_3" (& "&") (identifier "param_3")) (, ",") (binary_expression "puVar9 + -8" (identifier "puVar9") (+ "+") (number_literal "-8")) (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" (identifier "local_44") (= "=") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) (; ";")) (if_statement "if (cVar2 == '\0') {\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }\n      else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        local_60 = param_4;\n        local_5c = puVar9[-8];\n        local_64 = param_3;\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_40 = puVar9[-1];\n        local_28 = puVar9[5];\n        puVar9[-2] = puVar9;\n        puVar9[-1] = 0;\n        local_2c = puVar9[4];\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        *(undefined1 *)puVar9 = 0;\n        puVar5 = puVar9;\n        while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }\n        puVar5[-8] = local_5c;\n        puVar5[-7] = local_58;\n        puVar5[-6] = local_54;\n        puVar5[-5] = local_50;\n        puVar5[-4] = local_4c;\n        puVar5[-3] = local_48;\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_003399e3:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        puVar5[4] = local_2c;\n        puVar5[5] = local_28;\n        puVar5[6] = local_24;\n        puVar5[7] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }" ({ "{") (expression_statement "local_60 = param_4;" (assignment_expression "local_60 = param_4" (identifier "local_60") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_5c = puVar9[-8];" (assignment_expression "local_5c = puVar9[-8]" (identifier "local_5c") (= "=") (subscript_expression "puVar9[-8]" (identifier "puVar9") ([ "[") (number_literal "-8") (] "]"))) (; ";")) (expression_statement "local_64 = param_3;" (assignment_expression "local_64 = param_3" (identifier "local_64") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_58 = puVar9[-7];" (assignment_expression "local_58 = puVar9[-7]" (identifier "local_58") (= "=") (subscript_expression "puVar9[-7]" (identifier "puVar9") ([ "[") (number_literal "-7") (] "]"))) (; ";")) (expression_statement "local_54 = puVar9[-6];" (assignment_expression "local_54 = puVar9[-6]" (identifier "local_54") (= "=") (subscript_expression "puVar9[-6]" (identifier "puVar9") ([ "[") (number_literal "-6") (] "]"))) (; ";")) (expression_statement "local_50 = puVar9[-5];" (assignment_expression "local_50 = puVar9[-5]" (identifier "local_50") (= "=") (subscript_expression "puVar9[-5]" (identifier "puVar9") ([ "[") (number_literal "-5") (] "]"))) (; ";")) (expression_statement "local_4c = puVar9[-4];" (assignment_expression "local_4c = puVar9[-4]" (identifier "local_4c") (= "=") (subscript_expression "puVar9[-4]" (identifier "puVar9") ([ "[") (number_literal "-4") (] "]"))) (; ";")) (expression_statement "local_48 = puVar9[-3];" (assignment_expression "local_48 = puVar9[-3]" (identifier "local_48") (= "=") (subscript_expression "puVar9[-3]" (identifier "puVar9") ([ "[") (number_literal "-3") (] "]"))) (; ";")) (if_statement "if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }" (if "if") (parenthesized_expression "((undefined4 *)puVar9[-2] == puVar9)" (( "(") (binary_expression "(undefined4 *)puVar9[-2] == puVar9" (cast_expression "(undefined4 *)puVar9[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[-2]" (identifier "puVar9") ([ "[") (number_literal "-2") (] "]"))) (== "==") (identifier "puVar9")) () ")")) (compound_statement "{\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }" ({ "{") (expression_statement "local_3c = *puVar9;" (assignment_expression "local_3c = *puVar9" (identifier "local_3c") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "local_38 = puVar9[1];" (assignment_expression "local_38 = puVar9[1]" (identifier "local_38") (= "=") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_34 = puVar9[2];" (assignment_expression "local_34 = puVar9[2]" (identifier "local_34") (= "=") (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_30 = puVar9[3];" (assignment_expression "local_30 = puVar9[3]" (identifier "local_30") (= "=") (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }" (else "else") (compound_statement "{\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }" ({ "{") (expression_statement "local_3c = *puVar9;" (assignment_expression "local_3c = *puVar9" (identifier "local_3c") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "local_44 = (undefined4 *)puVar9[-2];" (assignment_expression "local_44 = (undefined4 *)puVar9[-2]" (identifier "local_44") (= "=") (cast_expression "(undefined4 *)puVar9[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[-2]" (identifier "puVar9") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (} "}")))) (expression_statement "local_40 = puVar9[-1];" (assignment_expression "local_40 = puVar9[-1]" (identifier "local_40") (= "=") (subscript_expression "puVar9[-1]" (identifier "puVar9") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "local_28 = puVar9[5];" (assignment_expression "local_28 = puVar9[5]" (identifier "local_28") (= "=") (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar9[-2] = puVar9;" (assignment_expression "puVar9[-2] = puVar9" (subscript_expression "puVar9[-2]" (identifier "puVar9") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "puVar9[-1] = 0;" (assignment_expression "puVar9[-1] = 0" (subscript_expression "puVar9[-1]" (identifier "puVar9") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c = puVar9[4];" (assignment_expression "local_2c = puVar9[4]" (identifier "local_2c") (= "=") (subscript_expression "puVar9[4]" (identifier "puVar9") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "local_20 = puVar9[7];" (assignment_expression "local_20 = puVar9[7]" (identifier "local_20") (= "=") (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "local_24 = puVar9[6];" (assignment_expression "local_24 = puVar9[6]" (identifier "local_24") (= "=") (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)puVar9 = 0;" (assignment_expression "*(undefined1 *)puVar9 = 0" (pointer_expression "*(undefined1 *)puVar9" (* "*") (cast_expression "(undefined1 *)puVar9" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5 = puVar9;" (assignment_expression "puVar5 = puVar9" (identifier "puVar5") (= "=") (identifier "puVar9")) (; ";")) (while_statement "while( true ) {\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          puVar7 = puVar5 + -0x10;\n                    \n          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);\n          puVar4 = (undefined4 *)puVar5[-2];\n          if (cVar2 == '\0') break;\n          puVar5[-8] = puVar5[-0x18];\n          puVar5[-7] = puVar5[-0x17];\n          puVar5[-6] = puVar5[-0x16];\n          puVar5[-5] = puVar5[-0x15];\n          puVar5[-4] = puVar5[-0x14];\n          puVar5[-3] = puVar5[-0x13];\n          puVar8 = (undefined4 *)puVar5[-0x12];\n          if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }\nLAB_0033989e:\n          puVar5[-0x11] = 0;\n          *(undefined1 *)puVar4 = 0;\n          puVar5[4] = puVar5[-0xc];\n          puVar5[5] = puVar5[-0xb];\n          puVar5[6] = puVar5[-10];\n          puVar5[7] = puVar5[-9];\n          puVar5 = puVar7;\n        }" ({ "{") (expression_statement "puVar7 = puVar5 + -0x10;" (assignment_expression "puVar7 = puVar5 + -0x10" (identifier "puVar7") (= "=") (binary_expression "puVar5 + -0x10" (identifier "puVar5") (+ "+") (number_literal "-0x10"))) (; ";")) (expression_statement "cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);" (assignment_expression "cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18)" (identifier "cVar2") (= "=") (call_expression "FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18)" (identifier "FUN_00330fc0") (argument_list "(&local_64,&local_5c,puVar5 + -0x18)" (( "(") (pointer_expression "&local_64" (& "&") (identifier "local_64")) (, ",") (pointer_expression "&local_5c" (& "&") (identifier "local_5c")) (, ",") (binary_expression "puVar5 + -0x18" (identifier "puVar5") (+ "+") (number_literal "-0x18")) () ")")))) (; ";")) (expression_statement "puVar4 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar4 = (undefined4 *)puVar5[-2]" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)puVar5[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[-2]" (identifier "puVar5") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (if_statement "if (cVar2 == '\0') break;" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar5[-8] = puVar5[-0x18];" (assignment_expression "puVar5[-8] = puVar5[-0x18]" (subscript_expression "puVar5[-8]" (identifier "puVar5") ([ "[") (number_literal "-8") (] "]")) (= "=") (subscript_expression "puVar5[-0x18]" (identifier "puVar5") ([ "[") (number_literal "-0x18") (] "]"))) (; ";")) (expression_statement "puVar5[-7] = puVar5[-0x17];" (assignment_expression "puVar5[-7] = puVar5[-0x17]" (subscript_expression "puVar5[-7]" (identifier "puVar5") ([ "[") (number_literal "-7") (] "]")) (= "=") (subscript_expression "puVar5[-0x17]" (identifier "puVar5") ([ "[") (number_literal "-0x17") (] "]"))) (; ";")) (expression_statement "puVar5[-6] = puVar5[-0x16];" (assignment_expression "puVar5[-6] = puVar5[-0x16]" (subscript_expression "puVar5[-6]" (identifier "puVar5") ([ "[") (number_literal "-6") (] "]")) (= "=") (subscript_expression "puVar5[-0x16]" (identifier "puVar5") ([ "[") (number_literal "-0x16") (] "]"))) (; ";")) (expression_statement "puVar5[-5] = puVar5[-0x15];" (assignment_expression "puVar5[-5] = puVar5[-0x15]" (subscript_expression "puVar5[-5]" (identifier "puVar5") ([ "[") (number_literal "-5") (] "]")) (= "=") (subscript_expression "puVar5[-0x15]" (identifier "puVar5") ([ "[") (number_literal "-0x15") (] "]"))) (; ";")) (expression_statement "puVar5[-4] = puVar5[-0x14];" (assignment_expression "puVar5[-4] = puVar5[-0x14]" (subscript_expression "puVar5[-4]" (identifier "puVar5") ([ "[") (number_literal "-4") (] "]")) (= "=") (subscript_expression "puVar5[-0x14]" (identifier "puVar5") ([ "[") (number_literal "-0x14") (] "]"))) (; ";")) (expression_statement "puVar5[-3] = puVar5[-0x13];" (assignment_expression "puVar5[-3] = puVar5[-0x13]" (subscript_expression "puVar5[-3]" (identifier "puVar5") ([ "[") (number_literal "-3") (] "]")) (= "=") (subscript_expression "puVar5[-0x13]" (identifier "puVar5") ([ "[") (number_literal "-0x13") (] "]"))) (; ";")) (expression_statement "puVar8 = (undefined4 *)puVar5[-0x12];" (assignment_expression "puVar8 = (undefined4 *)puVar5[-0x12]" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)puVar5[-0x12]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[-0x12]" (identifier "puVar5") ([ "[") (number_literal "-0x12") (] "]")))) (; ";")) (if_statement "if (puVar8 == puVar7) {\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }\n          else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }" (if "if") (parenthesized_expression "(puVar8 == puVar7)" (( "(") (binary_expression "puVar8 == puVar7" (identifier "puVar8") (== "==") (identifier "puVar7")) () ")")) (compound_statement "{\n            sVar3 = puVar5[-0x11];\n            if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }\n            puVar5[-1] = sVar3;\n            *(undefined1 *)((int)puVar4 + sVar3) = 0;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n          }" ({ "{") (expression_statement "sVar3 = puVar5[-0x11];" (assignment_expression "sVar3 = puVar5[-0x11]" (identifier "sVar3") (= "=") (subscript_expression "puVar5[-0x11]" (identifier "puVar5") ([ "[") (number_literal "-0x11") (] "]"))) (; ";")) (if_statement "if (sVar3 != 0) {\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }" (if "if") (parenthesized_expression "(sVar3 != 0)" (( "(") (binary_expression "sVar3 != 0" (identifier "sVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n            }" ({ "{") (if_statement "if (sVar3 == 1) {\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }\n              else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }" (if "if") (parenthesized_expression "(sVar3 == 1)" (( "(") (binary_expression "sVar3 == 1" (identifier "sVar3") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }" ({ "{") (expression_statement "*(undefined1 *)puVar4 = *(undefined1 *)puVar7;" (assignment_expression "*(undefined1 *)puVar4 = *(undefined1 *)puVar7" (pointer_expression "*(undefined1 *)puVar4" (* "*") (cast_expression "(undefined1 *)puVar4" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (= "=") (pointer_expression "*(undefined1 *)puVar7" (* "*") (cast_expression "(undefined1 *)puVar7" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7")))) (; ";")) (expression_statement "sVar3 = puVar5[-0x11];" (assignment_expression "sVar3 = puVar5[-0x11]" (identifier "sVar3") (= "=") (subscript_expression "puVar5[-0x11]" (identifier "puVar5") ([ "[") (number_literal "-0x11") (] "]"))) (; ";")) (expression_statement "puVar4 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar4 = (undefined4 *)puVar5[-2]" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)puVar5[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[-2]" (identifier "puVar5") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }" (else "else") (compound_statement "{\n                memcpy(puVar4,puVar7,sVar3);\n                sVar3 = puVar5[-0x11];\n                puVar4 = (undefined4 *)puVar5[-2];\n              }" ({ "{") (expression_statement "memcpy(puVar4,puVar7,sVar3);" (call_expression "memcpy(puVar4,puVar7,sVar3)" (identifier "memcpy") (argument_list "(puVar4,puVar7,sVar3)" (( "(") (identifier "puVar4") (, ",") (identifier "puVar7") (, ",") (identifier "sVar3") () ")"))) (; ";")) (expression_statement "sVar3 = puVar5[-0x11];" (assignment_expression "sVar3 = puVar5[-0x11]" (identifier "sVar3") (= "=") (subscript_expression "puVar5[-0x11]" (identifier "puVar5") ([ "[") (number_literal "-0x11") (] "]"))) (; ";")) (expression_statement "puVar4 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar4 = (undefined4 *)puVar5[-2]" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)puVar5[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[-2]" (identifier "puVar5") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar5[-1] = sVar3;" (assignment_expression "puVar5[-1] = sVar3" (subscript_expression "puVar5[-1]" (identifier "puVar5") ([ "[") (number_literal "-1") (] "]")) (= "=") (identifier "sVar3")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar4 + sVar3) = 0;" (assignment_expression "*(undefined1 *)((int)puVar4 + sVar3) = 0" (pointer_expression "*(undefined1 *)((int)puVar4 + sVar3)" (* "*") (cast_expression "(undefined1 *)((int)puVar4 + sVar3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar4 + sVar3)" (( "(") (binary_expression "(int)puVar4 + sVar3" (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")) (+ "+") (identifier "sVar3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4 = (undefined4 *)puVar5[-0x12];" (assignment_expression "puVar4 = (undefined4 *)puVar5[-0x12]" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)puVar5[-0x12]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[-0x12]" (identifier "puVar5") ([ "[") (number_literal "-0x12") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }" (else "else") (compound_statement "{\n            if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }\n            puVar5[-0x12] = puVar7;\n            puVar4 = puVar7;\n          }" ({ "{") (if_statement "if (puVar5 == puVar4) {\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }\n            else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }" (if "if") (parenthesized_expression "(puVar5 == puVar4)" (( "(") (binary_expression "puVar5 == puVar4" (identifier "puVar5") (== "==") (identifier "puVar4")) () ")")) (compound_statement "{\n              puVar5[-2] = puVar8;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n            }" ({ "{") (expression_statement "puVar5[-2] = puVar8;" (assignment_expression "puVar5[-2] = puVar8" (subscript_expression "puVar5[-2]" (identifier "puVar5") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar8")) (; ";")) (expression_statement "puVar5[-1] = puVar5[-0x11];" (assignment_expression "puVar5[-1] = puVar5[-0x11]" (subscript_expression "puVar5[-1]" (identifier "puVar5") ([ "[") (number_literal "-1") (] "]")) (= "=") (subscript_expression "puVar5[-0x11]" (identifier "puVar5") ([ "[") (number_literal "-0x11") (] "]"))) (; ";")) (expression_statement "*puVar5 = *puVar7;" (assignment_expression "*puVar5 = *puVar7" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (} "}")) (else_clause "else {\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }" (else "else") (compound_statement "{\n              puVar5[-2] = puVar8;\n              uVar1 = *puVar5;\n              puVar5[-1] = puVar5[-0x11];\n              *puVar5 = *puVar7;\n              if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }\n            }" ({ "{") (expression_statement "puVar5[-2] = puVar8;" (assignment_expression "puVar5[-2] = puVar8" (subscript_expression "puVar5[-2]" (identifier "puVar5") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar8")) (; ";")) (expression_statement "uVar1 = *puVar5;" (assignment_expression "uVar1 = *puVar5" (identifier "uVar1") (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "puVar5[-1] = puVar5[-0x11];" (assignment_expression "puVar5[-1] = puVar5[-0x11]" (subscript_expression "puVar5[-1]" (identifier "puVar5") ([ "[") (number_literal "-1") (] "]")) (= "=") (subscript_expression "puVar5[-0x11]" (identifier "puVar5") ([ "[") (number_literal "-0x11") (] "]"))) (; ";")) (expression_statement "*puVar5 = *puVar7;" (assignment_expression "*puVar5 = *puVar7" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }" (if "if") (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar4 != (undefined4 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                puVar5[-0x12] = puVar4;\n                *puVar7 = uVar1;\n                goto LAB_0033989e;\n              }" ({ "{") (expression_statement "puVar5[-0x12] = puVar4;" (assignment_expression "puVar5[-0x12] = puVar4" (subscript_expression "puVar5[-0x12]" (identifier "puVar5") ([ "[") (number_literal "-0x12") (] "]")) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*puVar7 = uVar1;" (assignment_expression "*puVar7 = uVar1" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (identifier "uVar1")) (; ";")) (goto_statement "goto LAB_0033989e;" (goto "goto") (statement_identifier "LAB_0033989e") (; ";")) (} "}"))) (} "}")))) (expression_statement "puVar5[-0x12] = puVar7;" (assignment_expression "puVar5[-0x12] = puVar7" (subscript_expression "puVar5[-0x12]" (identifier "puVar5") ([ "[") (number_literal "-0x12") (] "]")) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "puVar4 = puVar7;" (assignment_expression "puVar4 = puVar7" (identifier "puVar4") (= "=") (identifier "puVar7")) (; ";")) (} "}")))) (labeled_statement "LAB_0033989e:\n          puVar5[-0x11] = 0;" (statement_identifier "LAB_0033989e") (: ":") (expression_statement "puVar5[-0x11] = 0;" (assignment_expression "puVar5[-0x11] = 0" (subscript_expression "puVar5[-0x11]" (identifier "puVar5") ([ "[") (number_literal "-0x11") (] "]")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "*(undefined1 *)puVar4 = 0;" (assignment_expression "*(undefined1 *)puVar4 = 0" (pointer_expression "*(undefined1 *)puVar4" (* "*") (cast_expression "(undefined1 *)puVar4" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[4] = puVar5[-0xc];" (assignment_expression "puVar5[4] = puVar5[-0xc]" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "puVar5[-0xc]" (identifier "puVar5") ([ "[") (number_literal "-0xc") (] "]"))) (; ";")) (expression_statement "puVar5[5] = puVar5[-0xb];" (assignment_expression "puVar5[5] = puVar5[-0xb]" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "puVar5[-0xb]" (identifier "puVar5") ([ "[") (number_literal "-0xb") (] "]"))) (; ";")) (expression_statement "puVar5[6] = puVar5[-10];" (assignment_expression "puVar5[6] = puVar5[-10]" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "puVar5[-10]" (identifier "puVar5") ([ "[") (number_literal "-10") (] "]"))) (; ";")) (expression_statement "puVar5[7] = puVar5[-9];" (assignment_expression "puVar5[7] = puVar5[-9]" (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "puVar5[-9]" (identifier "puVar5") ([ "[") (number_literal "-9") (] "]"))) (; ";")) (expression_statement "puVar5 = puVar7;" (assignment_expression "puVar5 = puVar7" (identifier "puVar5") (= "=") (identifier "puVar7")) (; ";")) (} "}"))) (expression_statement "puVar5[-8] = local_5c;" (assignment_expression "puVar5[-8] = local_5c" (subscript_expression "puVar5[-8]" (identifier "puVar5") ([ "[") (number_literal "-8") (] "]")) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "puVar5[-7] = local_58;" (assignment_expression "puVar5[-7] = local_58" (subscript_expression "puVar5[-7]" (identifier "puVar5") ([ "[") (number_literal "-7") (] "]")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "puVar5[-6] = local_54;" (assignment_expression "puVar5[-6] = local_54" (subscript_expression "puVar5[-6]" (identifier "puVar5") ([ "[") (number_literal "-6") (] "]")) (= "=") (identifier "local_54")) (; ";")) (expression_statement "puVar5[-5] = local_50;" (assignment_expression "puVar5[-5] = local_50" (subscript_expression "puVar5[-5]" (identifier "puVar5") ([ "[") (number_literal "-5") (] "]")) (= "=") (identifier "local_50")) (; ";")) (expression_statement "puVar5[-4] = local_4c;" (assignment_expression "puVar5[-4] = local_4c" (subscript_expression "puVar5[-4]" (identifier "puVar5") ([ "[") (number_literal "-4") (] "]")) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "puVar5[-3] = local_48;" (assignment_expression "puVar5[-3] = local_48" (subscript_expression "puVar5[-3]" (identifier "puVar5") ([ "[") (number_literal "-3") (] "]")) (= "=") (identifier "local_48")) (; ";")) (if_statement "if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }" (if "if") (parenthesized_expression "(local_44 == &local_3c)" (( "(") (binary_expression "local_44 == &local_3c" (identifier "local_44") (== "==") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) () ")")) (compound_statement "{\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }\n          puVar5[-1] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n          uVar1 = local_3c;\n        }" ({ "{") (if_statement "if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }" (if "if") (parenthesized_expression "(local_40 != 0)" (( "(") (binary_expression "local_40 != 0" (identifier "local_40") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }\n            memcpy(puVar4,&local_3c,local_40);\n            puVar4 = (undefined4 *)puVar5[-2];\n          }" ({ "{") (if_statement "if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }" (if "if") (parenthesized_expression "(local_40 == 1)" (( "(") (binary_expression "local_40 == 1" (identifier "local_40") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar5[-1] = 1;\n              *(undefined1 *)(puVar5[-2] + 1) = 0;\n              uVar1 = local_3c;\n              goto LAB_003399e3;\n            }" ({ "{") (expression_statement "*(undefined1 *)puVar4 = (undefined1)local_3c;" (assignment_expression "*(undefined1 *)puVar4 = (undefined1)local_3c" (pointer_expression "*(undefined1 *)puVar4" (* "*") (cast_expression "(undefined1 *)puVar4" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (= "=") (cast_expression "(undefined1)local_3c" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "local_3c"))) (; ";")) (expression_statement "puVar5[-1] = 1;" (assignment_expression "puVar5[-1] = 1" (subscript_expression "puVar5[-1]" (identifier "puVar5") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined1 *)(puVar5[-2] + 1) = 0;" (assignment_expression "*(undefined1 *)(puVar5[-2] + 1) = 0" (pointer_expression "*(undefined1 *)(puVar5[-2] + 1)" (* "*") (cast_expression "(undefined1 *)(puVar5[-2] + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5[-2] + 1)" (( "(") (binary_expression "puVar5[-2] + 1" (subscript_expression "puVar5[-2]" (identifier "puVar5") ([ "[") (number_literal "-2") (] "]")) (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = local_3c;" (assignment_expression "uVar1 = local_3c" (identifier "uVar1") (= "=") (identifier "local_3c")) (; ";")) (goto_statement "goto LAB_003399e3;" (goto "goto") (statement_identifier "LAB_003399e3") (; ";")) (} "}"))) (expression_statement "memcpy(puVar4,&local_3c,local_40);" (call_expression "memcpy(puVar4,&local_3c,local_40)" (identifier "memcpy") (argument_list "(puVar4,&local_3c,local_40)" (( "(") (identifier "puVar4") (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) (, ",") (identifier "local_40") () ")"))) (; ";")) (expression_statement "puVar4 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar4 = (undefined4 *)puVar5[-2]" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)puVar5[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[-2]" (identifier "puVar5") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (} "}"))) (expression_statement "puVar5[-1] = local_40;" (assignment_expression "puVar5[-1] = local_40" (subscript_expression "puVar5[-1]" (identifier "puVar5") ([ "[") (number_literal "-1") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar4 + local_40) = 0;" (assignment_expression "*(undefined1 *)((int)puVar4 + local_40) = 0" (pointer_expression "*(undefined1 *)((int)puVar4 + local_40)" (* "*") (cast_expression "(undefined1 *)((int)puVar4 + local_40)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar4 + local_40)" (( "(") (binary_expression "(int)puVar4 + local_40" (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")) (+ "+") (identifier "local_40")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = local_3c;" (assignment_expression "uVar1 = local_3c" (identifier "uVar1") (= "=") (identifier "local_3c")) (; ";")) (} "}")) (else_clause "else {\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }" (else "else") (compound_statement "{\n          if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }" ({ "{") (if_statement "if (puVar5 == puVar4) {\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }\n          else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }" (if "if") (parenthesized_expression "(puVar5 == puVar4)" (( "(") (binary_expression "puVar5 == puVar4" (identifier "puVar5") (== "==") (identifier "puVar4")) () ")")) (compound_statement "{\n            puVar5[-2] = local_44;\n            puVar5[-1] = local_40;\n            *puVar5 = local_3c;\n          }" ({ "{") (expression_statement "puVar5[-2] = local_44;" (assignment_expression "puVar5[-2] = local_44" (subscript_expression "puVar5[-2]" (identifier "puVar5") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "local_44")) (; ";")) (expression_statement "puVar5[-1] = local_40;" (assignment_expression "puVar5[-1] = local_40" (subscript_expression "puVar5[-1]" (identifier "puVar5") ([ "[") (number_literal "-1") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "*puVar5 = local_3c;" (assignment_expression "*puVar5 = local_3c" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "local_3c")) (; ";")) (} "}")) (else_clause "else {\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }" (else "else") (compound_statement "{\n            puVar5[-1] = local_40;\n            uVar1 = *puVar5;\n            puVar5[-2] = local_44;\n            *puVar5 = local_3c;\n            local_44 = puVar4;\n            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;\n          }" ({ "{") (expression_statement "puVar5[-1] = local_40;" (assignment_expression "puVar5[-1] = local_40" (subscript_expression "puVar5[-1]" (identifier "puVar5") ([ "[") (number_literal "-1") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "uVar1 = *puVar5;" (assignment_expression "uVar1 = *puVar5" (identifier "uVar1") (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "puVar5[-2] = local_44;" (assignment_expression "puVar5[-2] = local_44" (subscript_expression "puVar5[-2]" (identifier "puVar5") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "local_44")) (; ";")) (expression_statement "*puVar5 = local_3c;" (assignment_expression "*puVar5 = local_3c" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "local_44 = puVar4;" (assignment_expression "local_44 = puVar4" (identifier "local_44") (= "=") (identifier "puVar4")) (; ";")) (if_statement "if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;" (if "if") (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar4 != (undefined4 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_003399e3;" (goto "goto") (statement_identifier "LAB_003399e3") (; ";"))) (} "}")))) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" (identifier "local_44") (= "=") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) (; ";")) (expression_statement "uVar1 = local_3c;" (assignment_expression "uVar1 = local_3c" (identifier "uVar1") (= "=") (identifier "local_3c")) (; ";")) (} "}")))) (labeled_statement "LAB_003399e3:\n        local_3c = uVar1;" (statement_identifier "LAB_003399e3") (: ":") (expression_statement "local_3c = uVar1;" (assignment_expression "local_3c = uVar1" (identifier "local_3c") (= "=") (identifier "uVar1")) (; ";"))) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)local_44 = 0;" (assignment_expression "*(undefined1 *)local_44 = 0" (pointer_expression "*(undefined1 *)local_44" (* "*") (cast_expression "(undefined1 *)local_44" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[4] = local_2c;" (assignment_expression "puVar5[4] = local_2c" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar5[5] = local_28;" (assignment_expression "puVar5[5] = local_28" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_28")) (; ";")) (expression_statement "puVar5[6] = local_24;" (assignment_expression "puVar5[6] = local_24" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_24")) (; ";")) (expression_statement "puVar5[7] = local_20;" (assignment_expression "puVar5[7] = local_20" (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_20")) (; ";")) (if_statement "if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }" (if "if") (parenthesized_expression "(local_44 != &local_3c)" (( "(") (binary_expression "local_44 != &local_3c" (identifier "local_44") (!= "!=") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) () ")")) (compound_statement "{\n          FUN_003ae080(local_44);\n        }" ({ "{") (expression_statement "FUN_003ae080(local_44);" (call_expression "FUN_003ae080(local_44)" (identifier "FUN_003ae080") (argument_list "(local_44)" (( "(") (identifier "local_44") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }" (else "else") (compound_statement "{\n        local_5c = puVar9[-8];\n        local_58 = puVar9[-7];\n        local_54 = puVar9[-6];\n        local_50 = puVar9[-5];\n        local_4c = puVar9[-4];\n        local_48 = puVar9[-3];\n        if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }\n        local_28 = puVar9[5];\n        local_2c = puVar9[4];\n        puVar9[-2] = puVar9;\n        local_40 = puVar9[-1];\n        iVar6 = (int)(puVar9 + -8) - (int)param_1;\n        *(undefined1 *)puVar9 = 0;\n        local_20 = puVar9[7];\n        local_24 = puVar9[6];\n        local_70 = iVar6 >> 6;\n        puVar9[-1] = 0;\n        puVar4 = puVar9;\n        puVar5 = puVar9;\n        if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }\n        *param_1 = local_5c;\n        param_1[1] = local_58;\n        param_1[2] = local_54;\n        param_1[3] = local_50;\n        param_1[4] = local_4c;\n        param_1[5] = local_48;\n        puVar5 = (undefined4 *)param_1[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }\nLAB_00339c3f:\n        local_3c = uVar1;\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_1[0xc] = local_2c;\n        param_1[0xd] = local_28;\n        param_1[0xe] = local_24;\n        param_1[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }\n      }" ({ "{") (expression_statement "local_5c = puVar9[-8];" (assignment_expression "local_5c = puVar9[-8]" (identifier "local_5c") (= "=") (subscript_expression "puVar9[-8]" (identifier "puVar9") ([ "[") (number_literal "-8") (] "]"))) (; ";")) (expression_statement "local_58 = puVar9[-7];" (assignment_expression "local_58 = puVar9[-7]" (identifier "local_58") (= "=") (subscript_expression "puVar9[-7]" (identifier "puVar9") ([ "[") (number_literal "-7") (] "]"))) (; ";")) (expression_statement "local_54 = puVar9[-6];" (assignment_expression "local_54 = puVar9[-6]" (identifier "local_54") (= "=") (subscript_expression "puVar9[-6]" (identifier "puVar9") ([ "[") (number_literal "-6") (] "]"))) (; ";")) (expression_statement "local_50 = puVar9[-5];" (assignment_expression "local_50 = puVar9[-5]" (identifier "local_50") (= "=") (subscript_expression "puVar9[-5]" (identifier "puVar9") ([ "[") (number_literal "-5") (] "]"))) (; ";")) (expression_statement "local_4c = puVar9[-4];" (assignment_expression "local_4c = puVar9[-4]" (identifier "local_4c") (= "=") (subscript_expression "puVar9[-4]" (identifier "puVar9") ([ "[") (number_literal "-4") (] "]"))) (; ";")) (expression_statement "local_48 = puVar9[-3];" (assignment_expression "local_48 = puVar9[-3]" (identifier "local_48") (= "=") (subscript_expression "puVar9[-3]" (identifier "puVar9") ([ "[") (number_literal "-3") (] "]"))) (; ";")) (if_statement "if ((undefined4 *)puVar9[-2] == puVar9) {\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }\n        else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }" (if "if") (parenthesized_expression "((undefined4 *)puVar9[-2] == puVar9)" (( "(") (binary_expression "(undefined4 *)puVar9[-2] == puVar9" (cast_expression "(undefined4 *)puVar9[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[-2]" (identifier "puVar9") ([ "[") (number_literal "-2") (] "]"))) (== "==") (identifier "puVar9")) () ")")) (compound_statement "{\n          local_3c = *puVar9;\n          local_38 = puVar9[1];\n          local_34 = puVar9[2];\n          local_30 = puVar9[3];\n        }" ({ "{") (expression_statement "local_3c = *puVar9;" (assignment_expression "local_3c = *puVar9" (identifier "local_3c") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "local_38 = puVar9[1];" (assignment_expression "local_38 = puVar9[1]" (identifier "local_38") (= "=") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_34 = puVar9[2];" (assignment_expression "local_34 = puVar9[2]" (identifier "local_34") (= "=") (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_30 = puVar9[3];" (assignment_expression "local_30 = puVar9[3]" (identifier "local_30") (= "=") (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }" (else "else") (compound_statement "{\n          local_3c = *puVar9;\n          local_44 = (undefined4 *)puVar9[-2];\n        }" ({ "{") (expression_statement "local_3c = *puVar9;" (assignment_expression "local_3c = *puVar9" (identifier "local_3c") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "local_44 = (undefined4 *)puVar9[-2];" (assignment_expression "local_44 = (undefined4 *)puVar9[-2]" (identifier "local_44") (= "=") (cast_expression "(undefined4 *)puVar9[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[-2]" (identifier "puVar9") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (} "}")))) (expression_statement "local_28 = puVar9[5];" (assignment_expression "local_28 = puVar9[5]" (identifier "local_28") (= "=") (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "local_2c = puVar9[4];" (assignment_expression "local_2c = puVar9[4]" (identifier "local_2c") (= "=") (subscript_expression "puVar9[4]" (identifier "puVar9") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar9[-2] = puVar9;" (assignment_expression "puVar9[-2] = puVar9" (subscript_expression "puVar9[-2]" (identifier "puVar9") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "local_40 = puVar9[-1];" (assignment_expression "local_40 = puVar9[-1]" (identifier "local_40") (= "=") (subscript_expression "puVar9[-1]" (identifier "puVar9") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "iVar6 = (int)(puVar9 + -8) - (int)param_1;" (assignment_expression "iVar6 = (int)(puVar9 + -8) - (int)param_1" (identifier "iVar6") (= "=") (binary_expression "(int)(puVar9 + -8) - (int)param_1" (cast_expression "(int)(puVar9 + -8)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar9 + -8)" (( "(") (binary_expression "puVar9 + -8" (identifier "puVar9") (+ "+") (number_literal "-8")) () ")"))) (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")))) (; ";")) (expression_statement "*(undefined1 *)puVar9 = 0;" (assignment_expression "*(undefined1 *)puVar9 = 0" (pointer_expression "*(undefined1 *)puVar9" (* "*") (cast_expression "(undefined1 *)puVar9" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_20 = puVar9[7];" (assignment_expression "local_20 = puVar9[7]" (identifier "local_20") (= "=") (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "local_24 = puVar9[6];" (assignment_expression "local_24 = puVar9[6]" (identifier "local_24") (= "=") (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "local_70 = iVar6 >> 6;" (assignment_expression "local_70 = iVar6 >> 6" (identifier "local_70") (= "=") (binary_expression "iVar6 >> 6" (identifier "iVar6") (>> ">>") (number_literal "6"))) (; ";")) (expression_statement "puVar9[-1] = 0;" (assignment_expression "puVar9[-1] = 0" (subscript_expression "puVar9[-1]" (identifier "puVar9") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4 = puVar9;" (assignment_expression "puVar4 = puVar9" (identifier "puVar4") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "puVar5 = puVar9;" (assignment_expression "puVar5 = puVar9" (identifier "puVar5") (= "=") (identifier "puVar9")) (; ";")) (if_statement "if (0 < iVar6) {\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }" (if "if") (parenthesized_expression "(0 < iVar6)" (( "(") (binary_expression "0 < iVar6" (number_literal "0") (< "<") (identifier "iVar6")) () ")")) (compound_statement "{\n          do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );\n        }" ({ "{") (do_statement "do {\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          } while( true );" (do "do") (compound_statement "{\n            puVar8 = puVar5 + -0x10;\n            puVar5[-8] = puVar5[-0x18];\n            puVar5[-7] = puVar5[-0x17];\n            puVar5[-6] = puVar5[-0x16];\n            puVar5[-5] = puVar5[-0x15];\n            puVar5[-4] = puVar5[-0x14];\n            puVar5[-3] = puVar5[-0x13];\n            puVar7 = (undefined4 *)puVar5[-0x12];\n            if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }\nLAB_00339b09:\n            puVar5[-0x11] = 0;\n            *(undefined1 *)puVar5[-0x12] = 0;\n            puVar5[4] = puVar5[-0xc];\n            puVar5[5] = puVar5[-0xb];\n            puVar5[6] = puVar5[-10];\n            puVar5[7] = puVar5[-9];\n            local_70 = local_70 + -1;\n            if (local_70 == 0) break;\n            puVar4 = (undefined4 *)puVar5[-0x12];\n            puVar5 = puVar8;\n          }" ({ "{") (expression_statement "puVar8 = puVar5 + -0x10;" (assignment_expression "puVar8 = puVar5 + -0x10" (identifier "puVar8") (= "=") (binary_expression "puVar5 + -0x10" (identifier "puVar5") (+ "+") (number_literal "-0x10"))) (; ";")) (expression_statement "puVar5[-8] = puVar5[-0x18];" (assignment_expression "puVar5[-8] = puVar5[-0x18]" (subscript_expression "puVar5[-8]" (identifier "puVar5") ([ "[") (number_literal "-8") (] "]")) (= "=") (subscript_expression "puVar5[-0x18]" (identifier "puVar5") ([ "[") (number_literal "-0x18") (] "]"))) (; ";")) (expression_statement "puVar5[-7] = puVar5[-0x17];" (assignment_expression "puVar5[-7] = puVar5[-0x17]" (subscript_expression "puVar5[-7]" (identifier "puVar5") ([ "[") (number_literal "-7") (] "]")) (= "=") (subscript_expression "puVar5[-0x17]" (identifier "puVar5") ([ "[") (number_literal "-0x17") (] "]"))) (; ";")) (expression_statement "puVar5[-6] = puVar5[-0x16];" (assignment_expression "puVar5[-6] = puVar5[-0x16]" (subscript_expression "puVar5[-6]" (identifier "puVar5") ([ "[") (number_literal "-6") (] "]")) (= "=") (subscript_expression "puVar5[-0x16]" (identifier "puVar5") ([ "[") (number_literal "-0x16") (] "]"))) (; ";")) (expression_statement "puVar5[-5] = puVar5[-0x15];" (assignment_expression "puVar5[-5] = puVar5[-0x15]" (subscript_expression "puVar5[-5]" (identifier "puVar5") ([ "[") (number_literal "-5") (] "]")) (= "=") (subscript_expression "puVar5[-0x15]" (identifier "puVar5") ([ "[") (number_literal "-0x15") (] "]"))) (; ";")) (expression_statement "puVar5[-4] = puVar5[-0x14];" (assignment_expression "puVar5[-4] = puVar5[-0x14]" (subscript_expression "puVar5[-4]" (identifier "puVar5") ([ "[") (number_literal "-4") (] "]")) (= "=") (subscript_expression "puVar5[-0x14]" (identifier "puVar5") ([ "[") (number_literal "-0x14") (] "]"))) (; ";")) (expression_statement "puVar5[-3] = puVar5[-0x13];" (assignment_expression "puVar5[-3] = puVar5[-0x13]" (subscript_expression "puVar5[-3]" (identifier "puVar5") ([ "[") (number_literal "-3") (] "]")) (= "=") (subscript_expression "puVar5[-0x13]" (identifier "puVar5") ([ "[") (number_literal "-0x13") (] "]"))) (; ";")) (expression_statement "puVar7 = (undefined4 *)puVar5[-0x12];" (assignment_expression "puVar7 = (undefined4 *)puVar5[-0x12]" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)puVar5[-0x12]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[-0x12]" (identifier "puVar5") ([ "[") (number_literal "-0x12") (] "]")))) (; ";")) (if_statement "if (puVar7 == puVar8) {\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }\n            else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }" (if "if") (parenthesized_expression "(puVar7 == puVar8)" (( "(") (binary_expression "puVar7 == puVar8" (identifier "puVar7") (== "==") (identifier "puVar8")) () ")")) (compound_statement "{\n              sVar3 = puVar5[-0x11];\n              if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }\n              puVar5[-1] = sVar3;\n              *(undefined1 *)(puVar5[-2] + sVar3) = 0;\n            }" ({ "{") (expression_statement "sVar3 = puVar5[-0x11];" (assignment_expression "sVar3 = puVar5[-0x11]" (identifier "sVar3") (= "=") (subscript_expression "puVar5[-0x11]" (identifier "puVar5") ([ "[") (number_literal "-0x11") (] "]"))) (; ";")) (if_statement "if (sVar3 != 0) {\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }" (if "if") (parenthesized_expression "(sVar3 != 0)" (( "(") (binary_expression "sVar3 != 0" (identifier "sVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }\n              }" ({ "{") (if_statement "if (sVar3 == 1) {\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }\n                else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }" (if "if") (parenthesized_expression "(sVar3 == 1)" (( "(") (binary_expression "sVar3 == 1" (identifier "sVar3") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;\n                  sVar3 = puVar5[-0x11];\n                }" ({ "{") (expression_statement "*(undefined1 *)puVar4 = *(undefined1 *)puVar8;" (assignment_expression "*(undefined1 *)puVar4 = *(undefined1 *)puVar8" (pointer_expression "*(undefined1 *)puVar4" (* "*") (cast_expression "(undefined1 *)puVar4" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (= "=") (pointer_expression "*(undefined1 *)puVar8" (* "*") (cast_expression "(undefined1 *)puVar8" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar8")))) (; ";")) (expression_statement "sVar3 = puVar5[-0x11];" (assignment_expression "sVar3 = puVar5[-0x11]" (identifier "sVar3") (= "=") (subscript_expression "puVar5[-0x11]" (identifier "puVar5") ([ "[") (number_literal "-0x11") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }" (else "else") (compound_statement "{\n                  memcpy(puVar4,puVar8,sVar3);\n                  sVar3 = puVar5[-0x11];\n                }" ({ "{") (expression_statement "memcpy(puVar4,puVar8,sVar3);" (call_expression "memcpy(puVar4,puVar8,sVar3)" (identifier "memcpy") (argument_list "(puVar4,puVar8,sVar3)" (( "(") (identifier "puVar4") (, ",") (identifier "puVar8") (, ",") (identifier "sVar3") () ")"))) (; ";")) (expression_statement "sVar3 = puVar5[-0x11];" (assignment_expression "sVar3 = puVar5[-0x11]" (identifier "sVar3") (= "=") (subscript_expression "puVar5[-0x11]" (identifier "puVar5") ([ "[") (number_literal "-0x11") (] "]"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar5[-1] = sVar3;" (assignment_expression "puVar5[-1] = sVar3" (subscript_expression "puVar5[-1]" (identifier "puVar5") ([ "[") (number_literal "-1") (] "]")) (= "=") (identifier "sVar3")) (; ";")) (expression_statement "*(undefined1 *)(puVar5[-2] + sVar3) = 0;" (assignment_expression "*(undefined1 *)(puVar5[-2] + sVar3) = 0" (pointer_expression "*(undefined1 *)(puVar5[-2] + sVar3)" (* "*") (cast_expression "(undefined1 *)(puVar5[-2] + sVar3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5[-2] + sVar3)" (( "(") (binary_expression "puVar5[-2] + sVar3" (subscript_expression "puVar5[-2]" (identifier "puVar5") ([ "[") (number_literal "-2") (] "]")) (+ "+") (identifier "sVar3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }" (else "else") (compound_statement "{\n              if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }\n              puVar5[-0x12] = puVar8;\n            }" ({ "{") (if_statement "if (puVar4 == puVar5) {\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }\n              else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }" (if "if") (parenthesized_expression "(puVar4 == puVar5)" (( "(") (binary_expression "puVar4 == puVar5" (identifier "puVar4") (== "==") (identifier "puVar5")) () ")")) (compound_statement "{\n                puVar5[-2] = puVar7;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n              }" ({ "{") (expression_statement "puVar5[-2] = puVar7;" (assignment_expression "puVar5[-2] = puVar7" (subscript_expression "puVar5[-2]" (identifier "puVar5") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "puVar5[-1] = puVar5[-0x11];" (assignment_expression "puVar5[-1] = puVar5[-0x11]" (subscript_expression "puVar5[-1]" (identifier "puVar5") ([ "[") (number_literal "-1") (] "]")) (= "=") (subscript_expression "puVar5[-0x11]" (identifier "puVar5") ([ "[") (number_literal "-0x11") (] "]"))) (; ";")) (expression_statement "*puVar5 = *puVar8;" (assignment_expression "*puVar5 = *puVar8" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (} "}")) (else_clause "else {\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }" (else "else") (compound_statement "{\n                puVar5[-2] = puVar7;\n                uVar1 = *puVar5;\n                puVar5[-1] = puVar5[-0x11];\n                *puVar5 = *puVar8;\n                if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }\n              }" ({ "{") (expression_statement "puVar5[-2] = puVar7;" (assignment_expression "puVar5[-2] = puVar7" (subscript_expression "puVar5[-2]" (identifier "puVar5") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "uVar1 = *puVar5;" (assignment_expression "uVar1 = *puVar5" (identifier "uVar1") (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "puVar5[-1] = puVar5[-0x11];" (assignment_expression "puVar5[-1] = puVar5[-0x11]" (subscript_expression "puVar5[-1]" (identifier "puVar5") ([ "[") (number_literal "-1") (] "]")) (= "=") (subscript_expression "puVar5[-0x11]" (identifier "puVar5") ([ "[") (number_literal "-0x11") (] "]"))) (; ";")) (expression_statement "*puVar5 = *puVar8;" (assignment_expression "*puVar5 = *puVar8" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }" (if "if") (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar4 != (undefined4 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  puVar5[-0x12] = puVar4;\n                  *puVar8 = uVar1;\n                  goto LAB_00339b09;\n                }" ({ "{") (expression_statement "puVar5[-0x12] = puVar4;" (assignment_expression "puVar5[-0x12] = puVar4" (subscript_expression "puVar5[-0x12]" (identifier "puVar5") ([ "[") (number_literal "-0x12") (] "]")) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*puVar8 = uVar1;" (assignment_expression "*puVar8 = uVar1" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (identifier "uVar1")) (; ";")) (goto_statement "goto LAB_00339b09;" (goto "goto") (statement_identifier "LAB_00339b09") (; ";")) (} "}"))) (} "}")))) (expression_statement "puVar5[-0x12] = puVar8;" (assignment_expression "puVar5[-0x12] = puVar8" (subscript_expression "puVar5[-0x12]" (identifier "puVar5") ([ "[") (number_literal "-0x12") (] "]")) (= "=") (identifier "puVar8")) (; ";")) (} "}")))) (labeled_statement "LAB_00339b09:\n            puVar5[-0x11] = 0;" (statement_identifier "LAB_00339b09") (: ":") (expression_statement "puVar5[-0x11] = 0;" (assignment_expression "puVar5[-0x11] = 0" (subscript_expression "puVar5[-0x11]" (identifier "puVar5") ([ "[") (number_literal "-0x11") (] "]")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "*(undefined1 *)puVar5[-0x12] = 0;" (assignment_expression "*(undefined1 *)puVar5[-0x12] = 0" (pointer_expression "*(undefined1 *)puVar5[-0x12]" (* "*") (cast_expression "(undefined1 *)puVar5[-0x12]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[-0x12]" (identifier "puVar5") ([ "[") (number_literal "-0x12") (] "]")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[4] = puVar5[-0xc];" (assignment_expression "puVar5[4] = puVar5[-0xc]" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "puVar5[-0xc]" (identifier "puVar5") ([ "[") (number_literal "-0xc") (] "]"))) (; ";")) (expression_statement "puVar5[5] = puVar5[-0xb];" (assignment_expression "puVar5[5] = puVar5[-0xb]" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "puVar5[-0xb]" (identifier "puVar5") ([ "[") (number_literal "-0xb") (] "]"))) (; ";")) (expression_statement "puVar5[6] = puVar5[-10];" (assignment_expression "puVar5[6] = puVar5[-10]" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "puVar5[-10]" (identifier "puVar5") ([ "[") (number_literal "-10") (] "]"))) (; ";")) (expression_statement "puVar5[7] = puVar5[-9];" (assignment_expression "puVar5[7] = puVar5[-9]" (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "puVar5[-9]" (identifier "puVar5") ([ "[") (number_literal "-9") (] "]"))) (; ";")) (expression_statement "local_70 = local_70 + -1;" (assignment_expression "local_70 = local_70 + -1" (identifier "local_70") (= "=") (binary_expression "local_70 + -1" (identifier "local_70") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (local_70 == 0) break;" (if "if") (parenthesized_expression "(local_70 == 0)" (( "(") (binary_expression "local_70 == 0" (identifier "local_70") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar4 = (undefined4 *)puVar5[-0x12];" (assignment_expression "puVar4 = (undefined4 *)puVar5[-0x12]" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)puVar5[-0x12]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[-0x12]" (identifier "puVar5") ([ "[") (number_literal "-0x12") (] "]")))) (; ";")) (expression_statement "puVar5 = puVar8;" (assignment_expression "puVar5 = puVar8" (identifier "puVar5") (= "=") (identifier "puVar8")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "*param_1 = local_5c;" (assignment_expression "*param_1 = local_5c" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "param_1[1] = local_58;" (assignment_expression "param_1[1] = local_58" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "param_1[2] = local_54;" (assignment_expression "param_1[2] = local_54" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_54")) (; ";")) (expression_statement "param_1[3] = local_50;" (assignment_expression "param_1[3] = local_50" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_50")) (; ";")) (expression_statement "param_1[4] = local_4c;" (assignment_expression "param_1[4] = local_4c" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "param_1[5] = local_48;" (assignment_expression "param_1[5] = local_48" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "puVar5 = (undefined4 *)param_1[6];" (assignment_expression "puVar5 = (undefined4 *)param_1[6]" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)param_1[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")))) (; ";")) (if_statement "if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }\n        else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }" (if "if") (parenthesized_expression "(local_44 == &local_3c)" (( "(") (binary_expression "local_44 == &local_3c" (identifier "local_44") (== "==") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) () ")")) (compound_statement "{\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }\n          param_1[7] = local_40;\n          *(undefined1 *)((int)puVar5 + local_40) = 0;\n          uVar1 = local_3c;\n        }" ({ "{") (if_statement "if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }" (if "if") (parenthesized_expression "(local_40 != 0)" (( "(") (binary_expression "local_40 != 0" (identifier "local_40") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }\n          }" ({ "{") (if_statement "if (local_40 == 1) {\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }\n            else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }" (if "if") (parenthesized_expression "(local_40 == 1)" (( "(") (binary_expression "local_40 == 1" (identifier "local_40") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              *(undefined1 *)puVar5 = (undefined1)local_3c;\n              puVar5 = (undefined4 *)param_1[6];\n            }" ({ "{") (expression_statement "*(undefined1 *)puVar5 = (undefined1)local_3c;" (assignment_expression "*(undefined1 *)puVar5 = (undefined1)local_3c" (pointer_expression "*(undefined1 *)puVar5" (* "*") (cast_expression "(undefined1 *)puVar5" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5"))) (= "=") (cast_expression "(undefined1)local_3c" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "local_3c"))) (; ";")) (expression_statement "puVar5 = (undefined4 *)param_1[6];" (assignment_expression "puVar5 = (undefined4 *)param_1[6]" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)param_1[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }" (else "else") (compound_statement "{\n              memcpy(puVar5,&local_3c,local_40);\n              puVar5 = (undefined4 *)param_1[6];\n            }" ({ "{") (expression_statement "memcpy(puVar5,&local_3c,local_40);" (call_expression "memcpy(puVar5,&local_3c,local_40)" (identifier "memcpy") (argument_list "(puVar5,&local_3c,local_40)" (( "(") (identifier "puVar5") (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) (, ",") (identifier "local_40") () ")"))) (; ";")) (expression_statement "puVar5 = (undefined4 *)param_1[6];" (assignment_expression "puVar5 = (undefined4 *)param_1[6]" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)param_1[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")))) (; ";")) (} "}")))) (} "}"))) (expression_statement "param_1[7] = local_40;" (assignment_expression "param_1[7] = local_40" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar5 + local_40) = 0;" (assignment_expression "*(undefined1 *)((int)puVar5 + local_40) = 0" (pointer_expression "*(undefined1 *)((int)puVar5 + local_40)" (* "*") (cast_expression "(undefined1 *)((int)puVar5 + local_40)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar5 + local_40)" (( "(") (binary_expression "(int)puVar5 + local_40" (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")) (+ "+") (identifier "local_40")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = local_3c;" (assignment_expression "uVar1 = local_3c" (identifier "uVar1") (= "=") (identifier "local_3c")) (; ";")) (} "}")) (else_clause "else {\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }" (else "else") (compound_statement "{\n          if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }\n          local_44 = &local_3c;\n          uVar1 = local_3c;\n        }" ({ "{") (if_statement "if (puVar5 == param_1 + 8) {\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }\n          else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }" (if "if") (parenthesized_expression "(puVar5 == param_1 + 8)" (( "(") (binary_expression "puVar5 == param_1 + 8" (identifier "puVar5") (== "==") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8"))) () ")")) (compound_statement "{\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n          }" ({ "{") (expression_statement "param_1[6] = local_44;" (assignment_expression "param_1[6] = local_44" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_44")) (; ";")) (expression_statement "param_1[7] = local_40;" (assignment_expression "param_1[7] = local_40" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "param_1[8] = local_3c;" (assignment_expression "param_1[8] = local_3c" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "local_3c")) (; ";")) (} "}")) (else_clause "else {\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }" (else "else") (compound_statement "{\n            uVar1 = param_1[8];\n            param_1[6] = local_44;\n            param_1[7] = local_40;\n            param_1[8] = local_3c;\n            local_44 = puVar5;\n            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;\n          }" ({ "{") (expression_statement "uVar1 = param_1[8];" (assignment_expression "uVar1 = param_1[8]" (identifier "uVar1") (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "param_1[6] = local_44;" (assignment_expression "param_1[6] = local_44" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_44")) (; ";")) (expression_statement "param_1[7] = local_40;" (assignment_expression "param_1[7] = local_40" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "param_1[8] = local_3c;" (assignment_expression "param_1[8] = local_3c" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "local_44 = puVar5;" (assignment_expression "local_44 = puVar5" (identifier "local_44") (= "=") (identifier "puVar5")) (; ";")) (if_statement "if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;" (if "if") (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar5 != (undefined4 *)0x0" (identifier "puVar5") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00339c3f;" (goto "goto") (statement_identifier "LAB_00339c3f") (; ";"))) (} "}")))) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" (identifier "local_44") (= "=") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) (; ";")) (expression_statement "uVar1 = local_3c;" (assignment_expression "uVar1 = local_3c" (identifier "uVar1") (= "=") (identifier "local_3c")) (; ";")) (} "}")))) (labeled_statement "LAB_00339c3f:\n        local_3c = uVar1;" (statement_identifier "LAB_00339c3f") (: ":") (expression_statement "local_3c = uVar1;" (assignment_expression "local_3c = uVar1" (identifier "local_3c") (= "=") (identifier "uVar1")) (; ";"))) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)local_44 = 0;" (assignment_expression "*(undefined1 *)local_44 = 0" (pointer_expression "*(undefined1 *)local_44" (* "*") (cast_expression "(undefined1 *)local_44" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xc] = local_2c;" (assignment_expression "param_1[0xc] = local_2c" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "local_2c")) (; ";")) (expression_statement "param_1[0xd] = local_28;" (assignment_expression "param_1[0xd] = local_28" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "local_28")) (; ";")) (expression_statement "param_1[0xe] = local_24;" (assignment_expression "param_1[0xe] = local_24" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "local_24")) (; ";")) (expression_statement "param_1[0xf] = local_20;" (assignment_expression "param_1[0xf] = local_20" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "local_20")) (; ";")) (if_statement "if (local_44 != &local_3c) {\n          FUN_003ae080(local_44);\n        }" (if "if") (parenthesized_expression "(local_44 != &local_3c)" (( "(") (binary_expression "local_44 != &local_3c" (identifier "local_44") (!= "!=") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) () ")")) (compound_statement "{\n          FUN_003ae080(local_44);\n        }" ({ "{") (expression_statement "FUN_003ae080(local_44);" (call_expression "FUN_003ae080(local_44)" (identifier "FUN_003ae080") (argument_list "(local_44)" (( "(") (identifier "local_44") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_78 = puVar9 + 8;" (assignment_expression "local_78 = puVar9 + 8" (identifier "local_78") (= "=") (binary_expression "puVar9 + 8" (identifier "puVar9") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar9 = puVar9 + 0x10;" (assignment_expression "puVar9 = puVar9 + 0x10" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 0x10" (identifier "puVar9") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_2 != local_78)" (( "(") (binary_expression "param_2 != local_78" (identifier "param_2") (!= "!=") (identifier "local_78")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* DWARF original name: __insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,
   std::vector<gold::Input_section_info> >,
   __gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter> > */

void std::
     __insertion_sort<__gnu_cxx::__normal_iterator<gold::type_4*,_std::vector<gold::type_4>var_3>,___gnu_cxx::__ops::_Iter_comp_iter<gold::type_5>var_3>
               (__normal_iterator<gold::type_4*,_std::vector<gold::type_4,_std::var_1<gold::type_4>var_3>var_3>
                __first,__normal_iterator<gold::type_4*,_std::vector<gold::type_4,_std::var_1<gold::type_4>var_3>var_3>
                        __last,_Iter_comp_iter<gold::type_5> __comp)

{
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::var_1<char>var_3>var_4
  *var_14;
  type_1 sVar1;
  type_1 *var_11;
  type_2 uVar3;
  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;
  bool bVar5;
  size_t var_12;
  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_3 var_15;
  int var_10;
  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;
  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_8;
  type_4 *var_17;
  int local_70;
  type_5 local_64;
  type_6 __val;
  
  if ((__first._M_current != __last._M_current) && (__last._M_current != __first._M_current + 1)) {
    var_8 = &__first._M_current[1].section_name_.field_2;
    var_14 = &__val.section_name_.field_2;
    do {
      bVar5 = gold::Input_section_sorter::var_9()
                        (&__comp._M_comp,(type_4 *)(var_8 + 0xfffffffe),
                         __first._M_current);
      if (bVar5) {
        __val.input_section_.shndx_ = var_8[0xfffffffe]._M_allocated_capacity;
        __val.input_section_.p2align_ = *(type_7 *)((int)var_8 + -0x1c);
        __val.input_section_.u1_.data_size._0_4_ = *(type_2 *)((int)var_8 + -0x18);
        __val.input_section_.u1_.data_size._4_4_ = *(type_2 *)((int)var_8 + -0x14);
        __val.input_section_.u2_ = *(type_8 *)(var_8 + 0xffffffff);
        __val.input_section_.section_order_index_ = *(type_7 *)((int)var_8 + -0xc);
        __val.section_name_._M_dataplus._M_p = (((type_9 *)((int)var_8 + -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
             *)__val.section_name_._M_dataplus._M_p == var_8) {
          __val.section_name_.field_2._M_allocated_capacity = var_8->_M_allocated_capacity;
          __val.section_name_.field_2._4_4_ = *(type_2 *)((int)var_8 + 4);
          __val.section_name_.field_2._8_4_ = *(type_2 *)((int)var_8 + 8);
          __val.section_name_.field_2._12_4_ = *(type_2 *)((int)var_8 + 0xc);
          __val.section_name_._M_dataplus._M_p = (type_3)var_14;
        }
        else {
          __val.section_name_.field_2._M_allocated_capacity = var_8->_M_allocated_capacity;
        }
        __val.size_._4_4_ = *(type_1 *)((int)var_8 + 0x14);
        __val.size_._0_4_ = var_8[1]._M_allocated_capacity;
        (((type_9 *)((int)var_8 + -8))->_M_dataplus)._M_p = (type_3)var_8;
        __val.section_name_._M_string_length = *(type_1 *)((int)var_8 + -4);
        var_10 = (int)(var_8 + 0xfffffffe) - (int)__first._M_current;
        var_8->_M_local_buf[0] = '\0';
        __val.addralign_._4_4_ = *(type_1 *)((int)var_8 + 0x1c);
        __val.addralign_._0_4_ = *(type_1 *)((int)var_8 + 0x18);
        local_70 = var_10 >> 6;
        *(type_1 *)((int)var_8 + -4) = 0;
        var_6 = var_8;
        var_5 = var_8;
        if (0 < var_10) {
          do {
            var_7 = var_5 + -4;
            var_5[-2]._M_allocated_capacity = var_5[-6]._M_allocated_capacity;
            *(type_2 *)((int)var_5 + -0x1c) = *(type_2 *)((int)var_5 + -0x5c);
            *(type_2 *)((int)var_5 + -0x18) = *(type_2 *)((int)var_5 + -0x58);
            *(type_2 *)((int)var_5 + -0x14) = *(type_2 *)((int)var_5 + -0x54);
            var_5[-1]._M_allocated_capacity = var_5[-5]._M_allocated_capacity;
            *(type_2 *)((int)var_5 + -0xc) = *(type_2 *)((int)var_5 + -0x4c);
            var_11 = *(type_1 **)((int)var_5 + -0x48);
            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_11 == var_7) {
              var_12 = *(size_t *)((int)var_5 + -0x44);
              if (var_12 != 0) {
                if (var_12 == 1) {
                  var_6->_M_local_buf[0] = var_7->_M_local_buf[0];
                  var_12 = *(size_t *)((int)var_5 + -0x44);
                }
                else {
                  var_13(var_6,var_7,var_12);
                  var_12 = *(size_t *)((int)var_5 + -0x44);
                }
              }
              var_15 = (((type_9 *)((int)var_5 + -8))->_M_dataplus)._M_p;
              *(size_t *)((int)var_5 + -4) = var_12;
              var_15[var_12] = '\0';
            }
            else {
              if (var_6 == var_5) {
                (((type_9 *)((int)var_5 + -8))->_M_dataplus)._M_p = (type_3)var_11;
                *(type_1 *)((int)var_5 + -4) = *(type_1 *)((int)var_5 + -0x44);
                var_5->_M_allocated_capacity = var_7->_M_allocated_capacity;
              }
              else {
                (((type_9 *)((int)var_5 + -8))->_M_dataplus)._M_p = (type_3)var_11;
                sVar1 = var_5->_M_allocated_capacity;
                *(type_1 *)((int)var_5 + -4) = *(type_1 *)((int)var_5 + -0x44);
                var_5->_M_allocated_capacity = var_7->_M_allocated_capacity;
                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
                               *)0x0) {
                  *(anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                    **)((int)var_5 + -0x48) = var_6;
                  var_7->_M_allocated_capacity = sVar1;
                  goto LAB_00339b09;
                }
              }
              *(anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                **)((int)var_5 + -0x48) = var_7;
            }
LAB_00339b09:
            *(type_2 *)((int)var_5 + -0x44) = 0;
            **(type_10 **)((int)var_5 + -0x48) = 0;
            var_5[1]._M_allocated_capacity = var_5[-3]._M_allocated_capacity;
            *(type_2 *)((int)var_5 + 0x14) = *(type_2 *)((int)var_5 + -0x2c);
            *(type_2 *)((int)var_5 + 0x18) = *(type_2 *)((int)var_5 + -0x28);
            *(type_2 *)((int)var_5 + 0x1c) = *(type_2 *)((int)var_5 + -0x24);
            local_70 = local_70 + -1;
            if (local_70 == 0) break;
            var_6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::var_1<char>var_3>var_4
                       **)((int)var_5 + -0x48);
            var_5 = var_7;
          } while( true );
        }
        ((__first._M_current)->input_section_).shndx_ = __val.input_section_.shndx_;
        ((__first._M_current)->input_section_).p2align_ = __val.input_section_.p2align_;
        *(type_2 *)&((__first._M_current)->input_section_).u1_ =
             __val.input_section_.u1_.data_size._0_4_;
        *(type_2 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =
             __val.input_section_.u1_.data_size._4_4_;
        ((__first._M_current)->input_section_).u2_ = __val.input_section_.u2_;
        ((__first._M_current)->input_section_).section_order_index_ =
             __val.input_section_.section_order_index_;
        var_15 = ((__first._M_current)->section_name_)._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
             *)__val.section_name_._M_dataplus._M_p == var_14) {
          if (__val.section_name_._M_string_length != 0) {
            if (__val.section_name_._M_string_length == 1) {
              *var_15 = __val.section_name_.field_2._M_local_buf[0];
              var_15 = ((__first._M_current)->section_name_)._M_dataplus._M_p;
            }
            else {
              var_13(var_15,var_14,__val.section_name_._M_string_length);
              var_15 = ((__first._M_current)->section_name_)._M_dataplus._M_p;
            }
          }
          ((__first._M_current)->section_name_)._M_string_length =
               __val.section_name_._M_string_length;
          var_15[__val.section_name_._M_string_length] = '\0';
          uVar3 = __val.section_name_.field_2._M_allocated_capacity;
        }
        else {
          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_15 == &((__first._M_current)->section_name_).field_2) {
            ((__first._M_current)->section_name_)._M_dataplus._M_p =
                 __val.section_name_._M_dataplus._M_p;
            ((__first._M_current)->section_name_)._M_string_length =
                 __val.section_name_._M_string_length;
            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =
                 __val.section_name_.field_2._M_allocated_capacity;
          }
          else {
            uVar3 = ((__first._M_current)->section_name_).field_2._M_allocated_capacity;
            ((__first._M_current)->section_name_)._M_dataplus._M_p =
                 __val.section_name_._M_dataplus._M_p;
            ((__first._M_current)->section_name_)._M_string_length =
                 __val.section_name_._M_string_length;
            ((__first._M_current)->section_name_).field_2._M_allocated_capacity =
                 __val.section_name_.field_2._M_allocated_capacity;
            __val.section_name_._M_dataplus._M_p = var_15;
            if (var_15 != (type_3)0x0) goto LAB_00339c3f;
          }
          __val.section_name_._M_dataplus._M_p = (type_3)var_14;
          uVar3 = __val.section_name_.field_2._M_allocated_capacity;
        }
LAB_00339c3f:
        __val.section_name_.field_2._M_allocated_capacity = uVar3;
        __val.section_name_._M_string_length = 0;
        *__val.section_name_._M_dataplus._M_p = '\0';
        *(type_1 *)&(__first._M_current)->size_ = (type_1)__val.size_;
        *(type_1 *)((int)&(__first._M_current)->size_ + 4) = __val.size_._4_4_;
        *(type_1 *)&(__first._M_current)->addralign_ = (type_1)__val.addralign_;
        *(type_1 *)((int)&(__first._M_current)->addralign_ + 4) = __val.addralign_._4_4_;
        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
             *)__val.section_name_._M_dataplus._M_p != var_14) {
          var_16(__val.section_name_._M_dataplus._M_p);
        }
      }
      else {
        local_64.section_sort_ = __comp._M_comp.section_sort_;
        __val.input_section_.shndx_ = var_8[0xfffffffe]._M_allocated_capacity;
        local_64.filename_sort_ = __comp._M_comp.filename_sort_;
        __val.input_section_.p2align_ = *(type_7 *)((int)var_8 + -0x1c);
        __val.input_section_.u1_.data_size._0_4_ = *(type_2 *)((int)var_8 + -0x18);
        __val.input_section_.u1_.data_size._4_4_ = *(type_2 *)((int)var_8 + -0x14);
        __val.input_section_.u2_ = *(type_8 *)(var_8 + 0xffffffff);
        __val.input_section_.section_order_index_ = *(type_7 *)((int)var_8 + -0xc);
        __val.section_name_._M_dataplus._M_p = (((type_9 *)((int)var_8 + -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
             *)__val.section_name_._M_dataplus._M_p == var_8) {
          __val.section_name_.field_2._M_allocated_capacity = var_8->_M_allocated_capacity;
          __val.section_name_.field_2._4_4_ = *(type_2 *)((int)var_8 + 4);
          __val.section_name_.field_2._8_4_ = *(type_2 *)((int)var_8 + 8);
          __val.section_name_.field_2._12_4_ = *(type_2 *)((int)var_8 + 0xc);
          __val.section_name_._M_dataplus._M_p = (type_3)var_14;
        }
        else {
          __val.section_name_.field_2._M_allocated_capacity = var_8->_M_allocated_capacity;
        }
        __val.section_name_._M_string_length = *(type_1 *)((int)var_8 + -4);
        __val.size_._4_4_ = *(type_1 *)((int)var_8 + 0x14);
        (((type_9 *)((int)var_8 + -8))->_M_dataplus)._M_p = (type_3)var_8;
        *(type_1 *)((int)var_8 + -4) = 0;
        __val.size_._0_4_ = var_8[1]._M_allocated_capacity;
        __val.addralign_._4_4_ = *(type_1 *)((int)var_8 + 0x1c);
        __val.addralign_._0_4_ = *(type_1 *)((int)var_8 + 0x18);
        var_8->_M_local_buf[0] = '\0';
        var_5 = var_8;
        while( true ) {
          var_7 = (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->_M_allocated_capacity + -0x10);
                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */
          bVar5 = gold::Input_section_sorter::var_9()
                            (&local_64,&__val,
                             (type_4 *)(&var_5->_M_allocated_capacity + -0x18));
          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
                    *)(((type_9 *)((int)var_5 + -8))->_M_dataplus)._M_p;
          if (!bVar5) break;
          (&var_5->_M_allocated_capacity)[-8] = (&var_5->_M_allocated_capacity)[-0x18];
          (&var_5->_M_allocated_capacity)[-7] = (&var_5->_M_allocated_capacity)[-0x17];
          (&var_5->_M_allocated_capacity)[-6] = (&var_5->_M_allocated_capacity)[-0x16];
          (&var_5->_M_allocated_capacity)[-5] = (&var_5->_M_allocated_capacity)[-0x15];
          (&var_5->_M_allocated_capacity)[-4] = (&var_5->_M_allocated_capacity)[-0x14];
          (&var_5->_M_allocated_capacity)[-3] = (&var_5->_M_allocated_capacity)[-0x13];
          var_11 = (type_1 *)(&var_5->_M_allocated_capacity)[-0x12];
          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_11 == var_7) {
            var_12 = (&var_5->_M_allocated_capacity)[-0x11];
            if (var_12 != 0) {
              if (var_12 == 1) {
                var_6->_M_local_buf[0] = var_7->_M_local_buf[0];
                var_12 = (&var_5->_M_allocated_capacity)[-0x11];
                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_5->_M_allocated_capacity)[-2];
              }
              else {
                var_13(var_6,var_7,var_12);
                var_12 = (&var_5->_M_allocated_capacity)[-0x11];
                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_5->_M_allocated_capacity)[-2];
              }
            }
            (&var_5->_M_allocated_capacity)[-1] = var_12;
            var_6->_M_local_buf[var_12] = '\0';
            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_5->_M_allocated_capacity)[-0x12];
          }
          else {
            if (var_5 == var_6) {
              (&var_5->_M_allocated_capacity)[-2] = (type_1)var_11;
              (&var_5->_M_allocated_capacity)[-1] = (&var_5->_M_allocated_capacity)[-0x11];
              var_5->_M_allocated_capacity = var_7->_M_allocated_capacity;
            }
            else {
              (&var_5->_M_allocated_capacity)[-2] = (type_1)var_11;
              sVar1 = var_5->_M_allocated_capacity;
              (&var_5->_M_allocated_capacity)[-1] = (&var_5->_M_allocated_capacity)[-0x11];
              var_5->_M_allocated_capacity = var_7->_M_allocated_capacity;
              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
                             *)0x0) {
                *(anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                  **)((int)var_5 + -0x48) = var_6;
                var_7->_M_allocated_capacity = sVar1;
                goto LAB_0033989e;
              }
            }
            *(anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
              **)((int)var_5 + -0x48) = var_7;
            var_6 = var_7;
          }
LAB_0033989e:
          (&var_5->_M_allocated_capacity)[-0x11] = 0;
          var_6->_M_local_buf[0] = '\0';
          (&var_5->_M_allocated_capacity)[4] = (&var_5->_M_allocated_capacity)[-0xc];
          (&var_5->_M_allocated_capacity)[5] = (&var_5->_M_allocated_capacity)[-0xb];
          (&var_5->_M_allocated_capacity)[6] = (&var_5->_M_allocated_capacity)[-10];
          (&var_5->_M_allocated_capacity)[7] = (&var_5->_M_allocated_capacity)[-9];
          var_5 = var_7;
        }
        (&var_5->_M_allocated_capacity)[-8] = __val.input_section_.shndx_;
        (&var_5->_M_allocated_capacity)[-7] = __val.input_section_.p2align_;
        (&var_5->_M_allocated_capacity)[-6] = __val.input_section_.u1_.data_size._0_4_;
        (&var_5->_M_allocated_capacity)[-5] = __val.input_section_.u1_.data_size._4_4_;
        *(type_8 *)(&var_5->_M_allocated_capacity + -4) =
             __val.input_section_.u2_;
        (&var_5->_M_allocated_capacity)[-3] = __val.input_section_.section_order_index_;
        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
             *)__val.section_name_._M_dataplus._M_p == var_14) {
          if (__val.section_name_._M_string_length != 0) {
            if (__val.section_name_._M_string_length == 1) {
              var_6->_M_local_buf[0] = __val.section_name_.field_2._M_local_buf[0];
              (&var_5->_M_allocated_capacity)[-1] = 1;
              *(type_10 *)((&var_5->_M_allocated_capacity)[-2] + 1) = 0;
              uVar3 = __val.section_name_.field_2._M_allocated_capacity;
              goto LAB_003399e3;
            }
            var_13(var_6,var_14,__val.section_name_._M_string_length);
            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_5->_M_allocated_capacity)[-2];
          }
          (&var_5->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;
          var_6->_M_local_buf[__val.section_name_._M_string_length] = '\0';
          uVar3 = __val.section_name_.field_2._M_allocated_capacity;
        }
        else {
          if (var_5 == var_6) {
            (&var_5->_M_allocated_capacity)[-2] = (type_1)__val.section_name_._M_dataplus._M_p;
            (&var_5->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;
            var_5->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;
          }
          else {
            (&var_5->_M_allocated_capacity)[-1] = __val.section_name_._M_string_length;
            uVar3 = var_5->_M_allocated_capacity;
            (&var_5->_M_allocated_capacity)[-2] = (type_1)__val.section_name_._M_dataplus._M_p;
            var_5->_M_allocated_capacity = __val.section_name_.field_2._M_allocated_capacity;
            __val.section_name_._M_dataplus._M_p = (type_3)var_6;
            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
                           *)0x0) goto LAB_003399e3;
          }
          __val.section_name_._M_dataplus._M_p = (type_3)var_14;
          uVar3 = __val.section_name_.field_2._M_allocated_capacity;
        }
LAB_003399e3:
        __val.section_name_.field_2._M_allocated_capacity = uVar3;
        __val.section_name_._M_string_length = 0;
        *__val.section_name_._M_dataplus._M_p = '\0';
        (&var_5->_M_allocated_capacity)[4] = (type_1)__val.size_;
        (&var_5->_M_allocated_capacity)[5] = __val.size_._4_4_;
        (&var_5->_M_allocated_capacity)[6] = (type_1)__val.addralign_;
        (&var_5->_M_allocated_capacity)[7] = __val.addralign_._4_4_;
        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
             *)__val.section_name_._M_dataplus._M_p != var_14) {
          var_16(__val.section_name_._M_dataplus._M_p);
        }
      }
      var_17 = (type_4 *)(var_8 + 2);
      var_8 = var_8 + 4;
    } while (__last._M_current != var_17);
  }
  return;
}


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

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

void MASKED(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4)

{
  undefined4 uVar1;
  char cVar2;
  size_t sVar3;
  undefined4 *puVar4;
  undefined4 *puVar5;
  int iVar6;
  undefined4 *puVar7;
  undefined4 *puVar8;
  undefined4 *puVar9;
  undefined4 *local_78;
  int local_70;
  undefined4 local_64;
  undefined4 local_60;
  undefined4 local_5c;
  undefined4 local_58;
  undefined4 local_54;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  undefined4 *local_44;
  size_t local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  undefined4 local_20;
  
  if ((param_1 != param_2) && (param_2 != param_1 + 0x10)) {
    puVar9 = param_1 + 0x18;
    do {
      cVar2 = FUN_00330fc0(&param_3,puVar9 + -8,param_1);
      local_44 = &local_3c;
      if (cVar2 == '\0') {
        local_60 = param_4;
        local_5c = puVar9[-8];
        local_64 = param_3;
        local_58 = puVar9[-7];
        local_54 = puVar9[-6];
        local_50 = puVar9[-5];
        local_4c = puVar9[-4];
        local_48 = puVar9[-3];
        if ((undefined4 *)puVar9[-2] == puVar9) {
          local_3c = *puVar9;
          local_38 = puVar9[1];
          local_34 = puVar9[2];
          local_30 = puVar9[3];
        }
        else {
          local_3c = *puVar9;
          local_44 = (undefined4 *)puVar9[-2];
        }
        local_40 = puVar9[-1];
        local_28 = puVar9[5];
        puVar9[-2] = puVar9;
        puVar9[-1] = 0;
        local_2c = puVar9[4];
        local_20 = puVar9[7];
        local_24 = puVar9[6];
        *(undefined1 *)puVar9 = 0;
        puVar5 = puVar9;
        while( true ) {
          puVar7 = puVar5 + -0x10;
                    /* try { // try from 003398e2 to 003398e6 has its CatchHandler @ 00339de7 */
          cVar2 = FUN_00330fc0(&local_64,&local_5c,puVar5 + -0x18);
          puVar4 = (undefined4 *)puVar5[-2];
          if (cVar2 == '\0') break;
          puVar5[-8] = puVar5[-0x18];
          puVar5[-7] = puVar5[-0x17];
          puVar5[-6] = puVar5[-0x16];
          puVar5[-5] = puVar5[-0x15];
          puVar5[-4] = puVar5[-0x14];
          puVar5[-3] = puVar5[-0x13];
          puVar8 = (undefined4 *)puVar5[-0x12];
          if (puVar8 == puVar7) {
            sVar3 = puVar5[-0x11];
            if (sVar3 != 0) {
              if (sVar3 == 1) {
                *(undefined1 *)puVar4 = *(undefined1 *)puVar7;
                sVar3 = puVar5[-0x11];
                puVar4 = (undefined4 *)puVar5[-2];
              }
              else {
                memcpy(puVar4,puVar7,sVar3);
                sVar3 = puVar5[-0x11];
                puVar4 = (undefined4 *)puVar5[-2];
              }
            }
            puVar5[-1] = sVar3;
            *(undefined1 *)((int)puVar4 + sVar3) = 0;
            puVar4 = (undefined4 *)puVar5[-0x12];
          }
          else {
            if (puVar5 == puVar4) {
              puVar5[-2] = puVar8;
              puVar5[-1] = puVar5[-0x11];
              *puVar5 = *puVar7;
            }
            else {
              puVar5[-2] = puVar8;
              uVar1 = *puVar5;
              puVar5[-1] = puVar5[-0x11];
              *puVar5 = *puVar7;
              if (puVar4 != (undefined4 *)0x0) {
                puVar5[-0x12] = puVar4;
                *puVar7 = uVar1;
                goto LAB_0033989e;
              }
            }
            puVar5[-0x12] = puVar7;
            puVar4 = puVar7;
          }
LAB_0033989e:
          puVar5[-0x11] = 0;
          *(undefined1 *)puVar4 = 0;
          puVar5[4] = puVar5[-0xc];
          puVar5[5] = puVar5[-0xb];
          puVar5[6] = puVar5[-10];
          puVar5[7] = puVar5[-9];
          puVar5 = puVar7;
        }
        puVar5[-8] = local_5c;
        puVar5[-7] = local_58;
        puVar5[-6] = local_54;
        puVar5[-5] = local_50;
        puVar5[-4] = local_4c;
        puVar5[-3] = local_48;
        if (local_44 == &local_3c) {
          if (local_40 != 0) {
            if (local_40 == 1) {
              *(undefined1 *)puVar4 = (undefined1)local_3c;
              puVar5[-1] = 1;
              *(undefined1 *)(puVar5[-2] + 1) = 0;
              uVar1 = local_3c;
              goto LAB_003399e3;
            }
            memcpy(puVar4,&local_3c,local_40);
            puVar4 = (undefined4 *)puVar5[-2];
          }
          puVar5[-1] = local_40;
          *(undefined1 *)((int)puVar4 + local_40) = 0;
          uVar1 = local_3c;
        }
        else {
          if (puVar5 == puVar4) {
            puVar5[-2] = local_44;
            puVar5[-1] = local_40;
            *puVar5 = local_3c;
          }
          else {
            puVar5[-1] = local_40;
            uVar1 = *puVar5;
            puVar5[-2] = local_44;
            *puVar5 = local_3c;
            local_44 = puVar4;
            if (puVar4 != (undefined4 *)0x0) goto LAB_003399e3;
          }
          local_44 = &local_3c;
          uVar1 = local_3c;
        }
LAB_003399e3:
        local_3c = uVar1;
        local_40 = 0;
        *(undefined1 *)local_44 = 0;
        puVar5[4] = local_2c;
        puVar5[5] = local_28;
        puVar5[6] = local_24;
        puVar5[7] = local_20;
        if (local_44 != &local_3c) {
          FUN_003ae080(local_44);
        }
      }
      else {
        local_5c = puVar9[-8];
        local_58 = puVar9[-7];
        local_54 = puVar9[-6];
        local_50 = puVar9[-5];
        local_4c = puVar9[-4];
        local_48 = puVar9[-3];
        if ((undefined4 *)puVar9[-2] == puVar9) {
          local_3c = *puVar9;
          local_38 = puVar9[1];
          local_34 = puVar9[2];
          local_30 = puVar9[3];
        }
        else {
          local_3c = *puVar9;
          local_44 = (undefined4 *)puVar9[-2];
        }
        local_28 = puVar9[5];
        local_2c = puVar9[4];
        puVar9[-2] = puVar9;
        local_40 = puVar9[-1];
        iVar6 = (int)(puVar9 + -8) - (int)param_1;
        *(undefined1 *)puVar9 = 0;
        local_20 = puVar9[7];
        local_24 = puVar9[6];
        local_70 = iVar6 >> 6;
        puVar9[-1] = 0;
        puVar4 = puVar9;
        puVar5 = puVar9;
        if (0 < iVar6) {
          do {
            puVar8 = puVar5 + -0x10;
            puVar5[-8] = puVar5[-0x18];
            puVar5[-7] = puVar5[-0x17];
            puVar5[-6] = puVar5[-0x16];
            puVar5[-5] = puVar5[-0x15];
            puVar5[-4] = puVar5[-0x14];
            puVar5[-3] = puVar5[-0x13];
            puVar7 = (undefined4 *)puVar5[-0x12];
            if (puVar7 == puVar8) {
              sVar3 = puVar5[-0x11];
              if (sVar3 != 0) {
                if (sVar3 == 1) {
                  *(undefined1 *)puVar4 = *(undefined1 *)puVar8;
                  sVar3 = puVar5[-0x11];
                }
                else {
                  memcpy(puVar4,puVar8,sVar3);
                  sVar3 = puVar5[-0x11];
                }
              }
              puVar5[-1] = sVar3;
              *(undefined1 *)(puVar5[-2] + sVar3) = 0;
            }
            else {
              if (puVar4 == puVar5) {
                puVar5[-2] = puVar7;
                puVar5[-1] = puVar5[-0x11];
                *puVar5 = *puVar8;
              }
              else {
                puVar5[-2] = puVar7;
                uVar1 = *puVar5;
                puVar5[-1] = puVar5[-0x11];
                *puVar5 = *puVar8;
                if (puVar4 != (undefined4 *)0x0) {
                  puVar5[-0x12] = puVar4;
                  *puVar8 = uVar1;
                  goto LAB_00339b09;
                }
              }
              puVar5[-0x12] = puVar8;
            }
LAB_00339b09:
            puVar5[-0x11] = 0;
            *(undefined1 *)puVar5[-0x12] = 0;
            puVar5[4] = puVar5[-0xc];
            puVar5[5] = puVar5[-0xb];
            puVar5[6] = puVar5[-10];
            puVar5[7] = puVar5[-9];
            local_70 = local_70 + -1;
            if (local_70 == 0) break;
            puVar4 = (undefined4 *)puVar5[-0x12];
            puVar5 = puVar8;
          } while( true );
        }
        *param_1 = local_5c;
        param_1[1] = local_58;
        param_1[2] = local_54;
        param_1[3] = local_50;
        param_1[4] = local_4c;
        param_1[5] = local_48;
        puVar5 = (undefined4 *)param_1[6];
        if (local_44 == &local_3c) {
          if (local_40 != 0) {
            if (local_40 == 1) {
              *(undefined1 *)puVar5 = (undefined1)local_3c;
              puVar5 = (undefined4 *)param_1[6];
            }
            else {
              memcpy(puVar5,&local_3c,local_40);
              puVar5 = (undefined4 *)param_1[6];
            }
          }
          param_1[7] = local_40;
          *(undefined1 *)((int)puVar5 + local_40) = 0;
          uVar1 = local_3c;
        }
        else {
          if (puVar5 == param_1 + 8) {
            param_1[6] = local_44;
            param_1[7] = local_40;
            param_1[8] = local_3c;
          }
          else {
            uVar1 = param_1[8];
            param_1[6] = local_44;
            param_1[7] = local_40;
            param_1[8] = local_3c;
            local_44 = puVar5;
            if (puVar5 != (undefined4 *)0x0) goto LAB_00339c3f;
          }
          local_44 = &local_3c;
          uVar1 = local_3c;
        }
LAB_00339c3f:
        local_3c = uVar1;
        local_40 = 0;
        *(undefined1 *)local_44 = 0;
        param_1[0xc] = local_2c;
        param_1[0xd] = local_28;
        param_1[0xe] = local_24;
        param_1[0xf] = local_20;
        if (local_44 != &local_3c) {
          FUN_003ae080(local_44);
        }
      }
      local_78 = puVar9 + 8;
      puVar9 = puVar9 + 0x10;
    } while (param_2 != local_78);
  }
  return;
}

