
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* DWARF original name: __move_merge<gold::Input_section_info*,
   __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>_>_>
 std::
 __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>
           (Input_section_info *__first1,Input_section_info *__last1,Input_section_info *__first2,
           Input_section_info *__last2,
           __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>
           __result,_Iter_comp_iter<gold::Input_section_sorter> __comp)

{
  pointer pcVar1;
  uint uVar2;
  size_type sVar3;
  bool bVar4;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar5;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar6;
  size_t sVar7;
  int iVar8;
  uint *puVar9;
  uint *puVar10;
  
  puVar10 = (uint *)__comp._M_comp.filename_sort_;
  if ((__last1 != __first2) && (__last2 != __result._M_current)) {
    puVar9 = (uint *)__comp._M_comp.filename_sort_;
    do {
      bVar4 = gold::Input_section_sorter::operator()
                        ((Input_section_sorter *)&__comp._M_comp.section_sort_,__last2,__last1);
      if (bVar4) {
        paVar5 = &(__last2->section_name_).field_2;
        *puVar9 = (__last2->input_section_).shndx_;
        puVar9[1] = (__last2->input_section_).p2align_;
        puVar9[2] = *(uint *)&(__last2->input_section_).u1_;
        puVar9[3] = *(uint *)((int)&(__last2->input_section_).u1_ + 4);
        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last2->input_section_).u2_;
        puVar9[5] = (__last2->input_section_).section_order_index_;
        pcVar1 = (__last2->section_name_)._M_dataplus._M_p;
        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                  *)puVar9[6];
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)pcVar1 == paVar5) {
          sVar7 = (__last2->section_name_)._M_string_length;
          if (sVar7 != 0) {
            if (sVar7 == 1) {
              paVar6->_M_local_buf[0] = (__last2->section_name_).field_2._M_local_buf[0];
              uVar2 = (__last2->section_name_)._M_string_length;
              puVar9[7] = uVar2;
              *(undefined1 *)(puVar9[6] + uVar2) = 0;
              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                        *)(__last2->section_name_)._M_dataplus._M_p;
              goto LAB_00167706;
            }
            memcpy(paVar6,pcVar1,sVar7);
            sVar7 = (__last2->section_name_)._M_string_length;
            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                      *)puVar9[6];
          }
          puVar9[7] = sVar7;
          paVar6->_M_local_buf[sVar7] = '\0';
          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                    *)(__last2->section_name_)._M_dataplus._M_p;
        }
        else {
          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                         *)(puVar9 + 8)) {
            puVar9[6] = (uint)pcVar1;
            puVar9[7] = (__last2->section_name_)._M_string_length;
            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;
          }
          else {
            puVar9[6] = (uint)pcVar1;
            uVar2 = puVar9[8];
            puVar9[7] = (__last2->section_name_)._M_string_length;
            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;
            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                           *)0x0) {
              (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar6;
              (__last2->section_name_).field_2._M_allocated_capacity = uVar2;
              paVar5 = paVar6;
              goto LAB_00167706;
            }
          }
          (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar5;
        }
LAB_00167706:
        (__last2->section_name_)._M_string_length = 0;
        paVar5->_M_local_buf[0] = '\0';
        uVar2 = *(uint *)((int)&__last2->size_ + 4);
        puVar9[0xc] = (uint)__last2->size_;
        puVar9[0xd] = uVar2;
        uVar2 = *(uint *)((int)&__last2->addralign_ + 4);
        puVar9[0xe] = (uint)__last2->addralign_;
        puVar9[0xf] = uVar2;
        __last2 = __last2 + 1;
      }
      else {
        paVar5 = &(__last1->section_name_).field_2;
        *puVar9 = (__last1->input_section_).shndx_;
        puVar9[1] = (__last1->input_section_).p2align_;
        puVar9[2] = *(uint *)&(__last1->input_section_).u1_;
        puVar9[3] = *(uint *)((int)&(__last1->input_section_).u1_ + 4);
        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last1->input_section_).u2_;
        puVar9[5] = (__last1->input_section_).section_order_index_;
        pcVar1 = (__last1->section_name_)._M_dataplus._M_p;
        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                  *)puVar9[6];
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)pcVar1 == paVar5) {
          sVar7 = (__last1->section_name_)._M_string_length;
          if (sVar7 != 0) {
            if (sVar7 == 1) {
              paVar6->_M_local_buf[0] = (__last1->section_name_).field_2._M_local_buf[0];
              uVar2 = (__last1->section_name_)._M_string_length;
              puVar9[7] = uVar2;
              *(undefined1 *)(puVar9[6] + uVar2) = 0;
              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                        *)(__last1->section_name_)._M_dataplus._M_p;
              goto LAB_001677ba;
            }
            memcpy(paVar6,pcVar1,sVar7);
            sVar7 = (__last1->section_name_)._M_string_length;
            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                      *)puVar9[6];
          }
          puVar9[7] = sVar7;
          paVar6->_M_local_buf[sVar7] = '\0';
          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                    *)(__last1->section_name_)._M_dataplus._M_p;
        }
        else {
          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                         *)(puVar9 + 8)) {
            puVar9[6] = (uint)pcVar1;
            puVar9[7] = (__last1->section_name_)._M_string_length;
            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;
          }
          else {
            puVar9[6] = (uint)pcVar1;
            uVar2 = puVar9[8];
            puVar9[7] = (__last1->section_name_)._M_string_length;
            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;
            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                           *)0x0) {
              (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6;
              (__last1->section_name_).field_2._M_allocated_capacity = uVar2;
              paVar5 = paVar6;
              goto LAB_001677ba;
            }
          }
          (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar5;
        }
LAB_001677ba:
        (__last1->section_name_)._M_string_length = 0;
        paVar5->_M_local_buf[0] = '\0';
        uVar2 = *(uint *)((int)&__last1->size_ + 4);
        puVar9[0xc] = (uint)__last1->size_;
        puVar9[0xd] = uVar2;
        uVar2 = *(uint *)((int)&__last1->addralign_ + 4);
        puVar9[0xe] = (uint)__last1->addralign_;
        puVar9[0xf] = uVar2;
        __last1 = __last1 + 1;
      }
      puVar10 = puVar9 + 0x10;
    } while ((__last1 != __first2) &&
            (puVar10 = puVar9 + 0x10, puVar9 = puVar10, __last2 != __result._M_current));
  }
  iVar8 = (int)__first2 - (int)__last1 >> 6;
  if (0 < (int)__first2 - (int)__last1) {
    paVar5 = &(__last1->section_name_).field_2;
    puVar9 = puVar10;
    do {
      *puVar9 = paVar5[-2]._M_allocated_capacity;
      puVar9[1] = *(uint *)((int)paVar5 + -0x1c);
      puVar9[2] = *(uint *)((int)paVar5 + -0x18);
      puVar9[3] = *(uint *)((int)paVar5 + -0x14);
      puVar9[4] = paVar5[-1]._M_allocated_capacity;
      puVar9[5] = *(uint *)((int)paVar5 + -0xc);
      pcVar1 = (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;
      paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                *)puVar9[6];
      if (paVar5 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                     *)pcVar1) {
        sVar7 = *(size_type *)((int)paVar5 + -4);
        if (sVar7 != 0) {
          if (sVar7 == 1) {
            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];
            sVar3 = *(size_type *)((int)paVar5 + -4);
            puVar9[7] = sVar3;
            *(undefined1 *)(puVar9[6] + sVar3) = 0;
            paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                       **)(pcVar1 + -8);
            goto LAB_00167833;
          }
          memcpy(paVar6,paVar5,sVar7);
          sVar7 = *(size_type *)((int)paVar5 + -4);
          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                    *)puVar9[6];
        }
        puVar9[7] = sVar7;
        paVar6->_M_local_buf[sVar7] = '\0';
        paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                   **)(pcVar1 + -8);
      }
      else {
        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                       *)(puVar9 + 8)) {
          puVar9[6] = (uint)pcVar1;
          puVar9[7] = *(size_type *)((int)paVar5 + -4);
          puVar9[8] = paVar5->_M_allocated_capacity;
        }
        else {
          puVar9[6] = (uint)pcVar1;
          sVar3 = puVar9[8];
          puVar9[7] = *(size_type *)((int)paVar5 + -4);
          puVar9[8] = paVar5->_M_allocated_capacity;
          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                         *)0x0) {
            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;
            paVar5->_M_allocated_capacity = sVar3;
            goto LAB_00167833;
          }
        }
        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;
        paVar6 = paVar5;
      }
LAB_00167833:
      *(size_type *)((int)paVar5 + -4) = 0;
      puVar10 = puVar9 + 0x10;
      paVar6->_M_local_buf[0] = '\0';
      uVar2 = *(uint *)((int)paVar5 + 0x14);
      puVar9[0xc] = paVar5[1]._M_allocated_capacity;
      puVar9[0xd] = uVar2;
      uVar2 = *(uint *)((int)paVar5 + 0x1c);
      puVar9[0xe] = *(uint *)((int)paVar5 + 0x18);
      puVar9[0xf] = uVar2;
      iVar8 = iVar8 + -1;
      paVar5 = paVar5 + 4;
      puVar9 = puVar10;
    } while (iVar8 != 0);
  }
  iVar8 = (int)__result._M_current - (int)__last2 >> 6;
  if (0 < (int)__result._M_current - (int)__last2) {
    puVar9 = puVar10;
    paVar5 = &(__last2->section_name_).field_2;
    do {
      *puVar9 = paVar5[-2]._M_allocated_capacity;
      puVar9[1] = *(uint *)((int)paVar5 + -0x1c);
      puVar9[2] = *(uint *)((int)paVar5 + -0x18);
      puVar9[3] = *(uint *)((int)paVar5 + -0x14);
      puVar9[4] = paVar5[-1]._M_allocated_capacity;
      puVar9[5] = *(uint *)((int)paVar5 + -0xc);
      puVar10 = (uint *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;
      paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                *)puVar9[6];
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)puVar10 == paVar5) {
        sVar7 = *(size_type *)((int)paVar5 + -4);
        if (sVar7 != 0) {
          if (sVar7 == 1) {
            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];
            uVar2 = *(size_type *)((int)paVar5 + -4);
            puVar9[7] = uVar2;
            *(undefined1 *)(puVar9[6] + uVar2) = 0;
            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                      *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;
            goto LAB_001679c9;
          }
          memcpy(paVar6,paVar5,sVar7);
          sVar7 = *(size_type *)((int)paVar5 + -4);
          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                    *)puVar9[6];
        }
        puVar9[7] = sVar7;
        paVar6->_M_local_buf[sVar7] = '\0';
        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                  *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;
      }
      else {
        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                       *)(puVar9 + 8)) {
          puVar9[6] = (uint)puVar10;
          puVar9[7] = *(size_type *)((int)paVar5 + -4);
          puVar9[8] = paVar5->_M_allocated_capacity;
        }
        else {
          puVar9[6] = (uint)puVar10;
          uVar2 = puVar9[8];
          puVar9[7] = *(size_type *)((int)paVar5 + -4);
          puVar9[8] = paVar5->_M_allocated_capacity;
          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                         *)0x0) {
            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;
            paVar5->_M_allocated_capacity = uVar2;
            goto LAB_001679c9;
          }
        }
        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;
        paVar6 = paVar5;
      }
LAB_001679c9:
      *(uint *)((int)paVar5 + -4) = 0;
      puVar10 = puVar9 + 0x10;
      paVar6->_M_local_buf[0] = '\0';
      uVar2 = *(uint *)((int)paVar5 + 0x14);
      puVar9[0xc] = paVar5[1]._M_allocated_capacity;
      puVar9[0xd] = uVar2;
      uVar2 = *(uint *)((int)paVar5 + 0x1c);
      puVar9[0xe] = *(uint *)((int)paVar5 + 0x18);
      puVar9[0xf] = uVar2;
      iVar8 = iVar8 + -1;
      puVar9 = puVar10;
      paVar5 = paVar5 + 4;
    } while (iVar8 != 0);
  }
  (__first1->input_section_).shndx_ = (uint)puVar10;
  return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>
          )__first1;
}



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

void FUN_00167660(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4,
                 undefined4 *param_5,undefined4 *param_6)

{
  undefined4 *puVar1;
  undefined4 uVar2;
  int iVar3;
  char cVar4;
  undefined4 *puVar5;
  undefined4 *puVar6;
  size_t sVar7;
  int iVar8;
  undefined4 *puVar9;
  
  if ((param_2 != param_3) && (param_4 != param_5)) {
    puVar9 = param_6;
    do {
      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);
      if (cVar4 == '\0') {
        puVar5 = param_2 + 8;
        *puVar9 = *param_2;
        puVar9[1] = param_2[1];
        puVar9[2] = param_2[2];
        puVar9[3] = param_2[3];
        puVar9[4] = param_2[4];
        puVar9[5] = param_2[5];
        puVar1 = (undefined4 *)param_2[6];
        puVar6 = (undefined4 *)puVar9[6];
        if (puVar1 == puVar5) {
          sVar7 = param_2[7];
          if (sVar7 != 0) {
            if (sVar7 == 1) {
              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);
              iVar8 = param_2[7];
              puVar9[7] = iVar8;
              *(undefined1 *)(puVar9[6] + iVar8) = 0;
              puVar5 = (undefined4 *)param_2[6];
              goto LAB_001677ba;
            }
            memcpy(puVar6,puVar1,sVar7);
            sVar7 = param_2[7];
            puVar6 = (undefined4 *)puVar9[6];
          }
          puVar9[7] = sVar7;
          *(undefined1 *)((int)puVar6 + sVar7) = 0;
          puVar5 = (undefined4 *)param_2[6];
        }
        else {
          if (puVar6 == puVar9 + 8) {
            puVar9[6] = puVar1;
            puVar9[7] = param_2[7];
            puVar9[8] = param_2[8];
          }
          else {
            puVar9[6] = puVar1;
            uVar2 = puVar9[8];
            puVar9[7] = param_2[7];
            puVar9[8] = param_2[8];
            if (puVar6 != (undefined4 *)0x0) {
              param_2[6] = puVar6;
              param_2[8] = uVar2;
              puVar5 = puVar6;
              goto LAB_001677ba;
            }
          }
          param_2[6] = puVar5;
        }
LAB_001677ba:
        param_2[7] = 0;
        *(undefined1 *)puVar5 = 0;
        uVar2 = param_2[0xd];
        puVar9[0xc] = param_2[0xc];
        puVar9[0xd] = uVar2;
        uVar2 = param_2[0xf];
        puVar9[0xe] = param_2[0xe];
        puVar9[0xf] = uVar2;
        param_2 = param_2 + 0x10;
      }
      else {
        puVar5 = param_4 + 8;
        *puVar9 = *param_4;
        puVar9[1] = param_4[1];
        puVar9[2] = param_4[2];
        puVar9[3] = param_4[3];
        puVar9[4] = param_4[4];
        puVar9[5] = param_4[5];
        puVar1 = (undefined4 *)param_4[6];
        puVar6 = (undefined4 *)puVar9[6];
        if (puVar1 == puVar5) {
          sVar7 = param_4[7];
          if (sVar7 != 0) {
            if (sVar7 == 1) {
              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);
              iVar8 = param_4[7];
              puVar9[7] = iVar8;
              *(undefined1 *)(puVar9[6] + iVar8) = 0;
              puVar5 = (undefined4 *)param_4[6];
              goto LAB_00167706;
            }
            memcpy(puVar6,puVar1,sVar7);
            sVar7 = param_4[7];
            puVar6 = (undefined4 *)puVar9[6];
          }
          puVar9[7] = sVar7;
          *(undefined1 *)((int)puVar6 + sVar7) = 0;
          puVar5 = (undefined4 *)param_4[6];
        }
        else {
          if (puVar6 == puVar9 + 8) {
            puVar9[6] = puVar1;
            puVar9[7] = param_4[7];
            puVar9[8] = param_4[8];
          }
          else {
            puVar9[6] = puVar1;
            uVar2 = puVar9[8];
            puVar9[7] = param_4[7];
            puVar9[8] = param_4[8];
            if (puVar6 != (undefined4 *)0x0) {
              param_4[6] = puVar6;
              param_4[8] = uVar2;
              puVar5 = puVar6;
              goto LAB_00167706;
            }
          }
          param_4[6] = puVar5;
        }
LAB_00167706:
        param_4[7] = 0;
        *(undefined1 *)puVar5 = 0;
        uVar2 = param_4[0xd];
        puVar9[0xc] = param_4[0xc];
        puVar9[0xd] = uVar2;
        uVar2 = param_4[0xf];
        puVar9[0xe] = param_4[0xe];
        puVar9[0xf] = uVar2;
        param_4 = param_4 + 0x10;
      }
      param_6 = puVar9 + 0x10;
    } while ((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)
            );
  }
  iVar8 = (int)param_3 - (int)param_2 >> 6;
  if (0 < (int)param_3 - (int)param_2) {
    puVar9 = param_2 + 8;
    puVar5 = param_6;
    do {
      *puVar5 = puVar9[-8];
      puVar5[1] = puVar9[-7];
      puVar5[2] = puVar9[-6];
      puVar5[3] = puVar9[-5];
      puVar5[4] = puVar9[-4];
      puVar5[5] = puVar9[-3];
      puVar1 = (undefined4 *)puVar9[-2];
      puVar6 = (undefined4 *)puVar5[6];
      if (puVar9 == puVar1) {
        sVar7 = puVar9[-1];
        if (sVar7 != 0) {
          if (sVar7 == 1) {
            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;
            iVar3 = puVar9[-1];
            puVar5[7] = iVar3;
            *(undefined1 *)(puVar5[6] + iVar3) = 0;
            puVar6 = (undefined4 *)puVar1[-2];
            goto LAB_00167833;
          }
          memcpy(puVar6,puVar9,sVar7);
          sVar7 = puVar9[-1];
          puVar6 = (undefined4 *)puVar5[6];
        }
        puVar5[7] = sVar7;
        *(undefined1 *)((int)puVar6 + sVar7) = 0;
        puVar6 = (undefined4 *)puVar1[-2];
      }
      else {
        if (puVar6 == puVar5 + 8) {
          puVar5[6] = puVar1;
          puVar5[7] = puVar9[-1];
          puVar5[8] = *puVar9;
        }
        else {
          puVar5[6] = puVar1;
          uVar2 = puVar5[8];
          puVar5[7] = puVar9[-1];
          puVar5[8] = *puVar9;
          if (puVar6 != (undefined4 *)0x0) {
            puVar9[-2] = puVar6;
            *puVar9 = uVar2;
            goto LAB_00167833;
          }
        }
        puVar9[-2] = puVar9;
        puVar6 = puVar9;
      }
LAB_00167833:
      puVar9[-1] = 0;
      param_6 = puVar5 + 0x10;
      *(undefined1 *)puVar6 = 0;
      uVar2 = puVar9[5];
      puVar5[0xc] = puVar9[4];
      puVar5[0xd] = uVar2;
      uVar2 = puVar9[7];
      puVar5[0xe] = puVar9[6];
      puVar5[0xf] = uVar2;
      iVar8 = iVar8 + -1;
      puVar9 = puVar9 + 0x10;
      puVar5 = param_6;
    } while (iVar8 != 0);
  }
  iVar8 = (int)param_5 - (int)param_4 >> 6;
  if (0 < (int)param_5 - (int)param_4) {
    puVar9 = param_6;
    puVar5 = param_4 + 8;
    do {
      *puVar9 = puVar5[-8];
      puVar9[1] = puVar5[-7];
      puVar9[2] = puVar5[-6];
      puVar9[3] = puVar5[-5];
      puVar9[4] = puVar5[-4];
      puVar9[5] = puVar5[-3];
      puVar1 = (undefined4 *)puVar5[-2];
      puVar6 = (undefined4 *)puVar9[6];
      if (puVar1 == puVar5) {
        sVar7 = puVar5[-1];
        if (sVar7 != 0) {
          if (sVar7 == 1) {
            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;
            iVar3 = puVar5[-1];
            puVar9[7] = iVar3;
            *(undefined1 *)(puVar9[6] + iVar3) = 0;
            puVar6 = (undefined4 *)puVar5[-2];
            goto LAB_001679c9;
          }
          memcpy(puVar6,puVar5,sVar7);
          sVar7 = puVar5[-1];
          puVar6 = (undefined4 *)puVar9[6];
        }
        puVar9[7] = sVar7;
        *(undefined1 *)((int)puVar6 + sVar7) = 0;
        puVar6 = (undefined4 *)puVar5[-2];
      }
      else {
        if (puVar6 == puVar9 + 8) {
          puVar9[6] = puVar1;
          puVar9[7] = puVar5[-1];
          puVar9[8] = *puVar5;
        }
        else {
          puVar9[6] = puVar1;
          uVar2 = puVar9[8];
          puVar9[7] = puVar5[-1];
          puVar9[8] = *puVar5;
          if (puVar6 != (undefined4 *)0x0) {
            puVar5[-2] = puVar6;
            *puVar5 = uVar2;
            goto LAB_001679c9;
          }
        }
        puVar5[-2] = puVar5;
        puVar6 = puVar5;
      }
LAB_001679c9:
      puVar5[-1] = 0;
      param_6 = puVar9 + 0x10;
      *(undefined1 *)puVar6 = 0;
      uVar2 = puVar5[5];
      puVar9[0xc] = puVar5[4];
      puVar9[0xd] = uVar2;
      uVar2 = puVar5[7];
      puVar9[0xe] = puVar5[6];
      puVar9[0xf] = uVar2;
      iVar8 = iVar8 + -1;
      puVar9 = param_6;
      puVar5 = puVar5 + 0x10;
    } while (iVar8 != 0);
  }
  *param_1 = param_6;
  return;
}


CALL 0x000559e6
ADD EAX,0x22799b
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x1c
MOV EBP,dword ptr [ESP + 0x34]
MOV EDI,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x8],EAX
MOV ESI,dword ptr [ESP + 0x44]
CMP EBP,dword ptr [ESP + 0x38]
JZ 0x001677ec
CMP EDI,dword ptr [ESP + 0x40]
JZ 0x001677ec
LEA EAX,[ESP + 0x48]
MOV dword ptr [ESP + 0x4],EAX
JMP 0x00167742
MOV EAX,dword ptr [EDI]
LEA ECX,[EDI + 0x20]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [EDI + 0x4]
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [EDI + 0x8]
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [EDI + 0xc]
MOV dword ptr [ESI + 0xc],EAX
MOV EAX,dword ptr [EDI + 0x10]
MOV dword ptr [ESI + 0x10],EAX
MOV EAX,dword ptr [EDI + 0x14]
MOV dword ptr [ESI + 0x14],EAX
MOV EDX,dword ptr [EDI + 0x18]
MOV EAX,dword ptr [ESI + 0x18]
CMP EDX,ECX
JZ 0x001678e0
LEA EBX,[ESI + 0x20]
CMP EAX,EBX
JZ 0x00167a90
MOV dword ptr [ESI + 0x18],EDX
MOV EDX,dword ptr [EDI + 0x1c]
MOV EBX,dword ptr [ESI + 0x20]
MOV dword ptr [ESI + 0x1c],EDX
MOV EDX,dword ptr [EDI + 0x20]
MOV dword ptr [ESI + 0x20],EDX
TEST EAX,EAX
JZ 0x00167a9f
MOV dword ptr [EDI + 0x18],EAX
MOV dword ptr [EDI + 0x20],EBX
MOV dword ptr [EDI + 0x1c],0x0
ADD ESI,0x40
ADD EDI,0x40
MOV byte ptr [EAX],0x0
MOV EAX,dword ptr [EDI + -0x10]
MOV EDX,dword ptr [EDI + -0xc]
MOV dword ptr [ESI + -0x10],EAX
MOV dword ptr [ESI + -0xc],EDX
MOV EAX,dword ptr [EDI + -0x8]
MOV EDX,dword ptr [EDI + -0x4]
MOV dword ptr [ESI + -0x8],EAX
MOV dword ptr [ESI + -0x4],EDX
CMP EBP,dword ptr [ESP + 0x38]
JZ 0x001677ec
CMP EDI,dword ptr [ESP + 0x40]
JZ 0x001677ec
SUB ESP,0x4
PUSH EBP
PUSH EDI
PUSH dword ptr [ESP + 0x10]
CALL 0x0015b910
ADD ESP,0x10
TEST AL,AL
JNZ 0x001676a8
MOV EAX,dword ptr [EBP]
LEA ECX,[EBP + 0x20]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [EBP + 0x4]
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [EBP + 0xc]
MOV dword ptr [ESI + 0xc],EAX
MOV EAX,dword ptr [EBP + 0x10]
MOV dword ptr [ESI + 0x10],EAX
MOV EAX,dword ptr [EBP + 0x14]
MOV dword ptr [ESI + 0x14],EAX
MOV EDX,dword ptr [EBP + 0x18]
MOV EAX,dword ptr [ESI + 0x18]
CMP EDX,ECX
JZ 0x00167920
LEA EBX,[ESI + 0x20]
CMP EAX,EBX
JZ 0x00167ab0
MOV dword ptr [ESI + 0x18],EDX
MOV EDX,dword ptr [EBP + 0x1c]
MOV EBX,dword ptr [ESI + 0x20]
MOV dword ptr [ESI + 0x1c],EDX
MOV EDX,dword ptr [EBP + 0x20]
MOV dword ptr [ESI + 0x20],EDX
TEST EAX,EAX
JZ 0x00167abf
MOV dword ptr [EBP + 0x18],EAX
MOV dword ptr [EBP + 0x20],EBX
MOV dword ptr [EBP + 0x1c],0x0
ADD ESI,0x40
ADD EBP,0x40
MOV byte ptr [EAX],0x0
MOV EAX,dword ptr [EBP + -0x10]
MOV EDX,dword ptr [EBP + -0xc]
MOV dword ptr [ESI + -0x10],EAX
MOV dword ptr [ESI + -0xc],EDX
MOV EAX,dword ptr [EBP + -0x8]
MOV EDX,dword ptr [EBP + -0x4]
MOV dword ptr [ESI + -0x8],EAX
MOV dword ptr [ESI + -0x4],EDX
CMP EBP,dword ptr [ESP + 0x38]
JNZ 0x00167738
MOV EAX,dword ptr [ESP + 0x38]
SUB EAX,EBP
MOV EDX,EAX
SAR EDX,0x6
TEST EAX,EAX
JLE 0x00167980
ADD EBP,0x20
JMP 0x00167864
LEA EBX,[ESI + 0x20]
CMP EAX,EBX
JZ 0x00167960
MOV dword ptr [ESI + 0x18],ECX
MOV ECX,dword ptr [EBP + -0x4]
MOV EBX,dword ptr [ESI + 0x20]
MOV dword ptr [ESI + 0x1c],ECX
MOV ECX,dword ptr [EBP]
MOV dword ptr [ESI + 0x20],ECX
TEST EAX,EAX
JZ 0x0016796f
MOV dword ptr [EBP + -0x8],EAX
MOV dword ptr [EBP],EBX
MOV dword ptr [EBP + -0x4],0x0
ADD ESI,0x40
ADD EBP,0x40
MOV byte ptr [EAX],0x0
MOV ECX,dword ptr [EBP + -0x30]
MOV EBX,dword ptr [EBP + -0x2c]
MOV dword ptr [ESI + -0x10],ECX
MOV dword ptr [ESI + -0xc],EBX
MOV ECX,dword ptr [EBP + -0x28]
MOV EBX,dword ptr [EBP + -0x24]
MOV dword ptr [ESI + -0x8],ECX
MOV dword ptr [ESI + -0x4],EBX
SUB EDX,0x1
JZ 0x00167980
MOV EAX,dword ptr [EBP + -0x20]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [EBP + -0x1c]
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [EBP + -0x18]
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [EBP + -0x14]
MOV dword ptr [ESI + 0xc],EAX
MOV EAX,dword ptr [EBP + -0x10]
MOV dword ptr [ESI + 0x10],EAX
MOV EAX,dword ptr [EBP + -0xc]
MOV dword ptr [ESI + 0x14],EAX
MOV ECX,dword ptr [EBP + -0x8]
MOV EAX,dword ptr [ESI + 0x18]
CMP EBP,ECX
JNZ 0x00167808
MOV EBX,dword ptr [EBP + -0x4]
TEST EBX,EBX
JZ 0x001678cd
CMP EBX,0x1
JZ 0x00167b30
MOV dword ptr [ESP + 0xc],EDX
SUB ESP,0x4
MOV dword ptr [ESP + 0x8],ECX
PUSH EBX
PUSH EBP
PUSH EAX
MOV EBX,dword ptr [ESP + 0x18]
CALL 0x000295c0
ADD ESP,0x10
MOV EBX,dword ptr [EBP + -0x4]
MOV EAX,dword ptr [ESI + 0x18]
MOV EDX,dword ptr [ESP + 0xc]
MOV ECX,dword ptr [ESP + 0x4]
MOV dword ptr [ESI + 0x1c],EBX
MOV byte ptr [EAX + EBX*0x1],0x0
MOV EAX,dword ptr [ECX + -0x8]
JMP 0x00167833
MOV ECX,dword ptr [EDI + 0x1c]
TEST ECX,ECX
JZ 0x00167908
CMP ECX,0x1
JZ 0x00167af0
SUB ESP,0x4
PUSH ECX
PUSH EDX
PUSH EAX
MOV EBX,dword ptr [ESP + 0x18]
CALL 0x000295c0
MOV ECX,dword ptr [EDI + 0x1c]
MOV EAX,dword ptr [ESI + 0x18]
ADD ESP,0x10
MOV dword ptr [ESI + 0x1c],ECX
MOV byte ptr [EAX + ECX*0x1],0x0
MOV EAX,dword ptr [EDI + 0x18]
JMP 0x00167706
MOV ECX,dword ptr [EBP + 0x1c]
TEST ECX,ECX
JZ 0x00167948
CMP ECX,0x1
JZ 0x00167ad0
SUB ESP,0x4
PUSH ECX
PUSH EDX
PUSH EAX
MOV EBX,dword ptr [ESP + 0x18]
CALL 0x000295c0
MOV ECX,dword ptr [EBP + 0x1c]
MOV EAX,dword ptr [ESI + 0x18]
ADD ESP,0x10
MOV dword ptr [ESI + 0x1c],ECX
MOV byte ptr [EAX + ECX*0x1],0x0
MOV EAX,dword ptr [EBP + 0x18]
JMP 0x001677ba
MOV dword ptr [ESI + 0x18],ECX
MOV EAX,dword ptr [EBP + -0x4]
MOV dword ptr [ESI + 0x1c],EAX
MOV EAX,dword ptr [EBP]
MOV dword ptr [ESI + 0x20],EAX
MOV dword ptr [EBP + -0x8],EBP
MOV EAX,EBP
JMP 0x00167833
MOV EAX,dword ptr [ESP + 0x40]
SUB EAX,EDI
MOV EBP,EAX
SAR EBP,0x6
TEST EAX,EAX
JLE 0x00167a80
ADD EDI,0x20
JMP 0x001679fa
LEA ECX,[ESI + 0x20]
CMP EAX,ECX
JZ 0x00167a68
MOV dword ptr [ESI + 0x18],EDX
MOV EDX,dword ptr [EDI + -0x4]
MOV ECX,dword ptr [ESI + 0x20]
MOV dword ptr [ESI + 0x1c],EDX
MOV EDX,dword ptr [EDI]
MOV dword ptr [ESI + 0x20],EDX
TEST EAX,EAX
JZ 0x00167a76
MOV dword ptr [EDI + -0x8],EAX
MOV dword ptr [EDI],ECX
MOV dword ptr [EDI + -0x4],0x0
ADD ESI,0x40
ADD EDI,0x40
MOV byte ptr [EAX],0x0
MOV EAX,dword ptr [EDI + -0x30]
MOV EDX,dword ptr [EDI + -0x2c]
MOV dword ptr [ESI + -0x10],EAX
MOV dword ptr [ESI + -0xc],EDX
MOV EAX,dword ptr [EDI + -0x28]
MOV EDX,dword ptr [EDI + -0x24]
MOV dword ptr [ESI + -0x8],EAX
MOV dword ptr [ESI + -0x4],EDX
SUB EBP,0x1
JZ 0x00167a80
MOV EAX,dword ptr [EDI + -0x20]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [EDI + -0x1c]
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [EDI + -0x18]
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [EDI + -0x14]
MOV dword ptr [ESI + 0xc],EAX
MOV EAX,dword ptr [EDI + -0x10]
MOV dword ptr [ESI + 0x10],EAX
MOV EAX,dword ptr [EDI + -0xc]
MOV dword ptr [ESI + 0x14],EAX
MOV EDX,dword ptr [EDI + -0x8]
MOV EAX,dword ptr [ESI + 0x18]
CMP EDX,EDI
JNZ 0x001679a0
MOV EDX,dword ptr [EDI + -0x4]
TEST EDX,EDX
JZ 0x00167a53
CMP EDX,0x1
JZ 0x00167b10
SUB ESP,0x4
PUSH EDX
PUSH EDI
PUSH EAX
MOV EBX,dword ptr [ESP + 0x18]
CALL 0x000295c0
MOV EDX,dword ptr [EDI + -0x4]
MOV EAX,dword ptr [ESI + 0x18]
ADD ESP,0x10
MOV dword ptr [ESI + 0x1c],EDX
MOV byte ptr [EAX + EDX*0x1],0x0
MOV EAX,dword ptr [EDI + -0x8]
JMP 0x001679c9
MOV dword ptr [ESI + 0x18],EDX
MOV EAX,dword ptr [EDI + -0x4]
MOV dword ptr [ESI + 0x1c],EAX
MOV EAX,dword ptr [EDI]
MOV dword ptr [ESI + 0x20],EAX
MOV dword ptr [EDI + -0x8],EDI
MOV EAX,EDI
JMP 0x001679c9
MOV EAX,dword ptr [ESP + 0x30]
MOV dword ptr [EAX],ESI
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET 0x4
MOV dword ptr [ESI + 0x18],EDX
MOV EAX,dword ptr [EDI + 0x1c]
MOV dword ptr [ESI + 0x1c],EAX
MOV EAX,dword ptr [EDI + 0x20]
MOV dword ptr [ESI + 0x20],EAX
MOV dword ptr [EDI + 0x18],ECX
MOV EAX,ECX
JMP 0x00167706
MOV dword ptr [ESI + 0x18],EDX
MOV EAX,dword ptr [EBP + 0x1c]
MOV dword ptr [ESI + 0x1c],EAX
MOV EAX,dword ptr [EBP + 0x20]
MOV dword ptr [ESI + 0x20],EAX
MOV dword ptr [EBP + 0x18],ECX
MOV EAX,ECX
JMP 0x001677ba
MOVZX EDX,byte ptr [EBP + 0x20]
MOV byte ptr [EAX],DL
MOV ECX,dword ptr [EBP + 0x1c]
MOV EAX,dword ptr [ESI + 0x18]
MOV dword ptr [ESI + 0x1c],ECX
MOV byte ptr [EAX + ECX*0x1],0x0
MOV EAX,dword ptr [EBP + 0x18]
JMP 0x001677ba
MOVZX EDX,byte ptr [EDI + 0x20]
MOV byte ptr [EAX],DL
MOV ECX,dword ptr [EDI + 0x1c]
MOV EAX,dword ptr [ESI + 0x18]
MOV dword ptr [ESI + 0x1c],ECX
MOV byte ptr [EAX + ECX*0x1],0x0
MOV EAX,dword ptr [EDI + 0x18]
JMP 0x00167706
MOVZX EDX,byte ptr [EDI]
MOV byte ptr [EAX],DL
MOV EDX,dword ptr [EDI + -0x4]
MOV EAX,dword ptr [ESI + 0x18]
MOV dword ptr [ESI + 0x1c],EDX
MOV byte ptr [EAX + EDX*0x1],0x0
MOV EAX,dword ptr [EDI + -0x8]
JMP 0x001679c9
MOVZX EBX,byte ptr [EBP]
MOV byte ptr [EAX],BL
MOV EBX,dword ptr [EBP + -0x4]
MOV EAX,dword ptr [ESI + 0x18]
MOV dword ptr [ESI + 0x1c],EBX
MOV byte ptr [EAX + EBX*0x1],0x0
MOV EAX,dword ptr [ECX + -0x8]
JMP 0x00167833
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_00167660(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  char cVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  size_t sVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  \n  if ((param_2 != param_3) && (param_4 != param_5)) {\n    puVar9 = param_6;\n    do {\n      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);\n      if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }\n      param_6 = puVar9 + 0x10;\n    } while ((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)\n            );\n  }\n  iVar8 = (int)param_3 - (int)param_2 >> 6;\n  if (0 < (int)param_3 - (int)param_2) {\n    puVar9 = param_2 + 8;\n    puVar5 = param_6;\n    do {\n      *puVar5 = puVar9[-8];\n      puVar5[1] = puVar9[-7];\n      puVar5[2] = puVar9[-6];\n      puVar5[3] = puVar9[-5];\n      puVar5[4] = puVar9[-4];\n      puVar5[5] = puVar9[-3];\n      puVar1 = (undefined4 *)puVar9[-2];\n      puVar6 = (undefined4 *)puVar5[6];\n      if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }\nLAB_00167833:\n      puVar9[-1] = 0;\n      param_6 = puVar5 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar9[5];\n      puVar5[0xc] = puVar9[4];\n      puVar5[0xd] = uVar2;\n      uVar2 = puVar9[7];\n      puVar5[0xe] = puVar9[6];\n      puVar5[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar9 + 0x10;\n      puVar5 = param_6;\n    } while (iVar8 != 0);\n  }\n  iVar8 = (int)param_5 - (int)param_4 >> 6;\n  if (0 < (int)param_5 - (int)param_4) {\n    puVar9 = param_6;\n    puVar5 = param_4 + 8;\n    do {\n      *puVar9 = puVar5[-8];\n      puVar9[1] = puVar5[-7];\n      puVar9[2] = puVar5[-6];\n      puVar9[3] = puVar5[-5];\n      puVar9[4] = puVar5[-4];\n      puVar9[5] = puVar5[-3];\n      puVar1 = (undefined4 *)puVar5[-2];\n      puVar6 = (undefined4 *)puVar9[6];\n      if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }\nLAB_001679c9:\n      puVar5[-1] = 0;\n      param_6 = puVar9 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar5[5];\n      puVar9[0xc] = puVar5[4];\n      puVar9[0xd] = uVar2;\n      uVar2 = puVar5[7];\n      puVar9[0xe] = puVar5[6];\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = param_6;\n      puVar5 = puVar5 + 0x10;\n    } while (iVar8 != 0);\n  }\n  *param_1 = param_6;\n  return;\n}\n\n" comment (function_definition "void FUN_00167660(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  char cVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  size_t sVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  \n  if ((param_2 != param_3) && (param_4 != param_5)) {\n    puVar9 = param_6;\n    do {\n      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);\n      if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }\n      param_6 = puVar9 + 0x10;\n    } while ((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)\n            );\n  }\n  iVar8 = (int)param_3 - (int)param_2 >> 6;\n  if (0 < (int)param_3 - (int)param_2) {\n    puVar9 = param_2 + 8;\n    puVar5 = param_6;\n    do {\n      *puVar5 = puVar9[-8];\n      puVar5[1] = puVar9[-7];\n      puVar5[2] = puVar9[-6];\n      puVar5[3] = puVar9[-5];\n      puVar5[4] = puVar9[-4];\n      puVar5[5] = puVar9[-3];\n      puVar1 = (undefined4 *)puVar9[-2];\n      puVar6 = (undefined4 *)puVar5[6];\n      if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }\nLAB_00167833:\n      puVar9[-1] = 0;\n      param_6 = puVar5 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar9[5];\n      puVar5[0xc] = puVar9[4];\n      puVar5[0xd] = uVar2;\n      uVar2 = puVar9[7];\n      puVar5[0xe] = puVar9[6];\n      puVar5[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar9 + 0x10;\n      puVar5 = param_6;\n    } while (iVar8 != 0);\n  }\n  iVar8 = (int)param_5 - (int)param_4 >> 6;\n  if (0 < (int)param_5 - (int)param_4) {\n    puVar9 = param_6;\n    puVar5 = param_4 + 8;\n    do {\n      *puVar9 = puVar5[-8];\n      puVar9[1] = puVar5[-7];\n      puVar9[2] = puVar5[-6];\n      puVar9[3] = puVar5[-5];\n      puVar9[4] = puVar5[-4];\n      puVar9[5] = puVar5[-3];\n      puVar1 = (undefined4 *)puVar5[-2];\n      puVar6 = (undefined4 *)puVar9[6];\n      if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }\nLAB_001679c9:\n      puVar5[-1] = 0;\n      param_6 = puVar9 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar5[5];\n      puVar9[0xc] = puVar5[4];\n      puVar9[0xd] = uVar2;\n      uVar2 = puVar5[7];\n      puVar9[0xe] = puVar5[6];\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = param_6;\n      puVar5 = puVar5 + 0x10;\n    } while (iVar8 != 0);\n  }\n  *param_1 = param_6;\n  return;\n}" primitive_type (function_declarator "FUN_00167660(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)" identifier (parameter_list "(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)" ( (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 (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined4 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  char cVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  size_t sVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  \n  if ((param_2 != param_3) && (param_4 != param_5)) {\n    puVar9 = param_6;\n    do {\n      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);\n      if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }\n      param_6 = puVar9 + 0x10;\n    } while ((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)\n            );\n  }\n  iVar8 = (int)param_3 - (int)param_2 >> 6;\n  if (0 < (int)param_3 - (int)param_2) {\n    puVar9 = param_2 + 8;\n    puVar5 = param_6;\n    do {\n      *puVar5 = puVar9[-8];\n      puVar5[1] = puVar9[-7];\n      puVar5[2] = puVar9[-6];\n      puVar5[3] = puVar9[-5];\n      puVar5[4] = puVar9[-4];\n      puVar5[5] = puVar9[-3];\n      puVar1 = (undefined4 *)puVar9[-2];\n      puVar6 = (undefined4 *)puVar5[6];\n      if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }\nLAB_00167833:\n      puVar9[-1] = 0;\n      param_6 = puVar5 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar9[5];\n      puVar5[0xc] = puVar9[4];\n      puVar5[0xd] = uVar2;\n      uVar2 = puVar9[7];\n      puVar5[0xe] = puVar9[6];\n      puVar5[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar9 + 0x10;\n      puVar5 = param_6;\n    } while (iVar8 != 0);\n  }\n  iVar8 = (int)param_5 - (int)param_4 >> 6;\n  if (0 < (int)param_5 - (int)param_4) {\n    puVar9 = param_6;\n    puVar5 = param_4 + 8;\n    do {\n      *puVar9 = puVar5[-8];\n      puVar9[1] = puVar5[-7];\n      puVar9[2] = puVar5[-6];\n      puVar9[3] = puVar5[-5];\n      puVar9[4] = puVar5[-4];\n      puVar9[5] = puVar5[-3];\n      puVar1 = (undefined4 *)puVar5[-2];\n      puVar6 = (undefined4 *)puVar9[6];\n      if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }\nLAB_001679c9:\n      puVar5[-1] = 0;\n      param_6 = puVar9 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar5[5];\n      puVar9[0xc] = puVar5[4];\n      puVar9[0xd] = uVar2;\n      uVar2 = puVar5[7];\n      puVar9[0xe] = puVar5[6];\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = param_6;\n      puVar5 = puVar5 + 0x10;\n    } while (iVar8 != 0);\n  }\n  *param_1 = param_6;\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (if_statement "if ((param_2 != param_3) && (param_4 != param_5)) {\n    puVar9 = param_6;\n    do {\n      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);\n      if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }\n      param_6 = puVar9 + 0x10;\n    } while ((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)\n            );\n  }" if (parenthesized_expression "((param_2 != param_3) && (param_4 != param_5))" ( (binary_expression "(param_2 != param_3) && (param_4 != param_5)" (parenthesized_expression "(param_2 != param_3)" ( (binary_expression "param_2 != param_3" identifier != identifier) )) && (parenthesized_expression "(param_4 != param_5)" ( (binary_expression "param_4 != param_5" identifier != identifier) ))) )) (compound_statement "{\n    puVar9 = param_6;\n    do {\n      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);\n      if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }\n      param_6 = puVar9 + 0x10;\n    } while ((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)\n            );\n  }" { (expression_statement "puVar9 = param_6;" (assignment_expression "puVar9 = param_6" identifier = identifier) ;) (do_statement "do {\n      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);\n      if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }\n      param_6 = puVar9 + 0x10;\n    } while ((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)\n            );" do (compound_statement "{\n      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);\n      if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }\n      param_6 = puVar9 + 0x10;\n    }" { (expression_statement "cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);" (assignment_expression "cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2)" identifier = (call_expression "FUN_0015b910(&stack0x0000001c,param_4,param_2)" identifier (argument_list "(&stack0x0000001c,param_4,param_2)" ( (pointer_expression "&stack0x0000001c" & identifier) , identifier , identifier )))) ;) (if_statement "if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }" { (expression_statement "puVar5 = param_2 + 8;" (assignment_expression "puVar5 = param_2 + 8" identifier = (binary_expression "param_2 + 8" identifier + number_literal)) ;) (expression_statement "*puVar9 = *param_2;" (assignment_expression "*puVar9 = *param_2" (pointer_expression "*puVar9" * identifier) = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "puVar9[1] = param_2[1];" (assignment_expression "puVar9[1] = param_2[1]" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar9[2] = param_2[2];" (assignment_expression "puVar9[2] = param_2[2]" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "puVar9[3] = param_2[3];" (assignment_expression "puVar9[3] = param_2[3]" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "puVar9[4] = param_2[4];" (assignment_expression "puVar9[4] = param_2[4]" (subscript_expression "puVar9[4]" identifier [ number_literal ]) = (subscript_expression "param_2[4]" identifier [ number_literal ])) ;) (expression_statement "puVar9[5] = param_2[5];" (assignment_expression "puVar9[5] = param_2[5]" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = (subscript_expression "param_2[5]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = (undefined4 *)param_2[6];" (assignment_expression "puVar1 = (undefined4 *)param_2[6]" identifier = (cast_expression "(undefined4 *)param_2[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) ;) (expression_statement "puVar6 = (undefined4 *)puVar9[6];" (assignment_expression "puVar6 = (undefined4 *)puVar9[6]" identifier = (cast_expression "(undefined4 *)puVar9[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) ;) (if_statement "if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }" if (parenthesized_expression "(puVar1 == puVar5)" ( (binary_expression "puVar1 == puVar5" identifier == identifier) )) (compound_statement "{\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }" { (expression_statement "sVar7 = param_2[7];" (assignment_expression "sVar7 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (if_statement "if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }" if (parenthesized_expression "(sVar7 != 0)" ( (binary_expression "sVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }" { (if_statement "if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }" if (parenthesized_expression "(sVar7 == 1)" ( (binary_expression "sVar7 == 1" identifier == number_literal) )) (compound_statement "{\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }" { (expression_statement "*(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);" (assignment_expression "*(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8)" (pointer_expression "*(undefined1 *)puVar6" * (cast_expression "(undefined1 *)puVar6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)(param_2 + 8)" * (cast_expression "(undefined1 *)(param_2 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = param_2[7];" (assignment_expression "iVar8 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (expression_statement "puVar9[7] = iVar8;" (assignment_expression "puVar9[7] = iVar8" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar9[6] + iVar8) = 0;" (assignment_expression "*(undefined1 *)(puVar9[6] + iVar8) = 0" (pointer_expression "*(undefined1 *)(puVar9[6] + iVar8)" * (cast_expression "(undefined1 *)(puVar9[6] + iVar8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9[6] + iVar8)" ( (binary_expression "puVar9[6] + iVar8" (subscript_expression "puVar9[6]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)param_2[6];" (assignment_expression "puVar5 = (undefined4 *)param_2[6]" identifier = (cast_expression "(undefined4 *)param_2[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_001677ba;" goto statement_identifier ;) })) (expression_statement "memcpy(puVar6,puVar1,sVar7);" (call_expression "memcpy(puVar6,puVar1,sVar7)" identifier (argument_list "(puVar6,puVar1,sVar7)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar7 = param_2[7];" (assignment_expression "sVar7 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (expression_statement "puVar6 = (undefined4 *)puVar9[6];" (assignment_expression "puVar6 = (undefined4 *)puVar9[6]" identifier = (cast_expression "(undefined4 *)puVar9[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) ;) })) (expression_statement "puVar9[7] = sVar7;" (assignment_expression "puVar9[7] = sVar7" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar6 + sVar7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar6 + sVar7) = 0" (pointer_expression "*(undefined1 *)((int)puVar6 + sVar7)" * (cast_expression "(undefined1 *)((int)puVar6 + sVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + sVar7)" ( (binary_expression "(int)puVar6 + sVar7" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)param_2[6];" (assignment_expression "puVar5 = (undefined4 *)param_2[6]" identifier = (cast_expression "(undefined4 *)param_2[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }" else (compound_statement "{\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }" { (if_statement "if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }" if (parenthesized_expression "(puVar6 == puVar9 + 8)" ( (binary_expression "puVar6 == puVar9 + 8" identifier == (binary_expression "puVar9 + 8" identifier + number_literal)) )) (compound_statement "{\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }" { (expression_statement "puVar9[6] = puVar1;" (assignment_expression "puVar9[6] = puVar1" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[7] = param_2[7];" (assignment_expression "puVar9[7] = param_2[7]" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (expression_statement "puVar9[8] = param_2[8];" (assignment_expression "puVar9[8] = param_2[8]" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }" else (compound_statement "{\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }" { (expression_statement "puVar9[6] = puVar1;" (assignment_expression "puVar9[6] = puVar1" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = puVar9[8];" (assignment_expression "uVar2 = puVar9[8]" identifier = (subscript_expression "puVar9[8]" identifier [ number_literal ])) ;) (expression_statement "puVar9[7] = param_2[7];" (assignment_expression "puVar9[7] = param_2[7]" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (expression_statement "puVar9[8] = param_2[8];" (assignment_expression "puVar9[8] = param_2[8]" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (if_statement "if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }" if (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" ( (binary_expression "puVar6 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }" { (expression_statement "param_2[6] = puVar6;" (assignment_expression "param_2[6] = puVar6" (subscript_expression "param_2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[8] = uVar2;" (assignment_expression "param_2[8] = uVar2" (subscript_expression "param_2[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5 = puVar6;" (assignment_expression "puVar5 = puVar6" identifier = identifier) ;) (goto_statement "goto LAB_001677ba;" goto statement_identifier ;) })) }))) (expression_statement "param_2[6] = puVar5;" (assignment_expression "param_2[6] = puVar5" (subscript_expression "param_2[6]" identifier [ number_literal ]) = identifier) ;) }))) (labeled_statement "LAB_001677ba:\n        param_2[7] = 0;" statement_identifier : (expression_statement "param_2[7] = 0;" (assignment_expression "param_2[7] = 0" (subscript_expression "param_2[7]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "*(undefined1 *)puVar5 = 0;" (assignment_expression "*(undefined1 *)puVar5 = 0" (pointer_expression "*(undefined1 *)puVar5" * (cast_expression "(undefined1 *)puVar5" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar2 = param_2[0xd];" (assignment_expression "uVar2 = param_2[0xd]" identifier = (subscript_expression "param_2[0xd]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xc] = param_2[0xc];" (assignment_expression "puVar9[0xc] = param_2[0xc]" (subscript_expression "puVar9[0xc]" identifier [ number_literal ]) = (subscript_expression "param_2[0xc]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xd] = uVar2;" (assignment_expression "puVar9[0xd] = uVar2" (subscript_expression "puVar9[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = param_2[0xf];" (assignment_expression "uVar2 = param_2[0xf]" identifier = (subscript_expression "param_2[0xf]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xe] = param_2[0xe];" (assignment_expression "puVar9[0xe] = param_2[0xe]" (subscript_expression "puVar9[0xe]" identifier [ number_literal ]) = (subscript_expression "param_2[0xe]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xf] = uVar2;" (assignment_expression "puVar9[0xf] = uVar2" (subscript_expression "puVar9[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2 = param_2 + 0x10;" (assignment_expression "param_2 = param_2 + 0x10" identifier = (binary_expression "param_2 + 0x10" identifier + number_literal)) ;) }) (else_clause "else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }" else (compound_statement "{\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }" { (expression_statement "puVar5 = param_4 + 8;" (assignment_expression "puVar5 = param_4 + 8" identifier = (binary_expression "param_4 + 8" identifier + number_literal)) ;) (expression_statement "*puVar9 = *param_4;" (assignment_expression "*puVar9 = *param_4" (pointer_expression "*puVar9" * identifier) = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "puVar9[1] = param_4[1];" (assignment_expression "puVar9[1] = param_4[1]" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "puVar9[2] = param_4[2];" (assignment_expression "puVar9[2] = param_4[2]" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = (subscript_expression "param_4[2]" identifier [ number_literal ])) ;) (expression_statement "puVar9[3] = param_4[3];" (assignment_expression "puVar9[3] = param_4[3]" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = (subscript_expression "param_4[3]" identifier [ number_literal ])) ;) (expression_statement "puVar9[4] = param_4[4];" (assignment_expression "puVar9[4] = param_4[4]" (subscript_expression "puVar9[4]" identifier [ number_literal ]) = (subscript_expression "param_4[4]" identifier [ number_literal ])) ;) (expression_statement "puVar9[5] = param_4[5];" (assignment_expression "puVar9[5] = param_4[5]" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = (subscript_expression "param_4[5]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = (undefined4 *)param_4[6];" (assignment_expression "puVar1 = (undefined4 *)param_4[6]" identifier = (cast_expression "(undefined4 *)param_4[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[6]" identifier [ number_literal ]))) ;) (expression_statement "puVar6 = (undefined4 *)puVar9[6];" (assignment_expression "puVar6 = (undefined4 *)puVar9[6]" identifier = (cast_expression "(undefined4 *)puVar9[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) ;) (if_statement "if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }" if (parenthesized_expression "(puVar1 == puVar5)" ( (binary_expression "puVar1 == puVar5" identifier == identifier) )) (compound_statement "{\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }" { (expression_statement "sVar7 = param_4[7];" (assignment_expression "sVar7 = param_4[7]" identifier = (subscript_expression "param_4[7]" identifier [ number_literal ])) ;) (if_statement "if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }" if (parenthesized_expression "(sVar7 != 0)" ( (binary_expression "sVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }" { (if_statement "if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }" if (parenthesized_expression "(sVar7 == 1)" ( (binary_expression "sVar7 == 1" identifier == number_literal) )) (compound_statement "{\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }" { (expression_statement "*(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);" (assignment_expression "*(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8)" (pointer_expression "*(undefined1 *)puVar6" * (cast_expression "(undefined1 *)puVar6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)(param_4 + 8)" * (cast_expression "(undefined1 *)(param_4 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = param_4[7];" (assignment_expression "iVar8 = param_4[7]" identifier = (subscript_expression "param_4[7]" identifier [ number_literal ])) ;) (expression_statement "puVar9[7] = iVar8;" (assignment_expression "puVar9[7] = iVar8" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar9[6] + iVar8) = 0;" (assignment_expression "*(undefined1 *)(puVar9[6] + iVar8) = 0" (pointer_expression "*(undefined1 *)(puVar9[6] + iVar8)" * (cast_expression "(undefined1 *)(puVar9[6] + iVar8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9[6] + iVar8)" ( (binary_expression "puVar9[6] + iVar8" (subscript_expression "puVar9[6]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)param_4[6];" (assignment_expression "puVar5 = (undefined4 *)param_4[6]" identifier = (cast_expression "(undefined4 *)param_4[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[6]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_00167706;" goto statement_identifier ;) })) (expression_statement "memcpy(puVar6,puVar1,sVar7);" (call_expression "memcpy(puVar6,puVar1,sVar7)" identifier (argument_list "(puVar6,puVar1,sVar7)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar7 = param_4[7];" (assignment_expression "sVar7 = param_4[7]" identifier = (subscript_expression "param_4[7]" identifier [ number_literal ])) ;) (expression_statement "puVar6 = (undefined4 *)puVar9[6];" (assignment_expression "puVar6 = (undefined4 *)puVar9[6]" identifier = (cast_expression "(undefined4 *)puVar9[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) ;) })) (expression_statement "puVar9[7] = sVar7;" (assignment_expression "puVar9[7] = sVar7" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar6 + sVar7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar6 + sVar7) = 0" (pointer_expression "*(undefined1 *)((int)puVar6 + sVar7)" * (cast_expression "(undefined1 *)((int)puVar6 + sVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + sVar7)" ( (binary_expression "(int)puVar6 + sVar7" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)param_4[6];" (assignment_expression "puVar5 = (undefined4 *)param_4[6]" identifier = (cast_expression "(undefined4 *)param_4[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[6]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }" else (compound_statement "{\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }" { (if_statement "if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }" if (parenthesized_expression "(puVar6 == puVar9 + 8)" ( (binary_expression "puVar6 == puVar9 + 8" identifier == (binary_expression "puVar9 + 8" identifier + number_literal)) )) (compound_statement "{\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }" { (expression_statement "puVar9[6] = puVar1;" (assignment_expression "puVar9[6] = puVar1" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[7] = param_4[7];" (assignment_expression "puVar9[7] = param_4[7]" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (subscript_expression "param_4[7]" identifier [ number_literal ])) ;) (expression_statement "puVar9[8] = param_4[8];" (assignment_expression "puVar9[8] = param_4[8]" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = (subscript_expression "param_4[8]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }" else (compound_statement "{\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }" { (expression_statement "puVar9[6] = puVar1;" (assignment_expression "puVar9[6] = puVar1" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = puVar9[8];" (assignment_expression "uVar2 = puVar9[8]" identifier = (subscript_expression "puVar9[8]" identifier [ number_literal ])) ;) (expression_statement "puVar9[7] = param_4[7];" (assignment_expression "puVar9[7] = param_4[7]" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (subscript_expression "param_4[7]" identifier [ number_literal ])) ;) (expression_statement "puVar9[8] = param_4[8];" (assignment_expression "puVar9[8] = param_4[8]" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = (subscript_expression "param_4[8]" identifier [ number_literal ])) ;) (if_statement "if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }" if (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" ( (binary_expression "puVar6 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }" { (expression_statement "param_4[6] = puVar6;" (assignment_expression "param_4[6] = puVar6" (subscript_expression "param_4[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[8] = uVar2;" (assignment_expression "param_4[8] = uVar2" (subscript_expression "param_4[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5 = puVar6;" (assignment_expression "puVar5 = puVar6" identifier = identifier) ;) (goto_statement "goto LAB_00167706;" goto statement_identifier ;) })) }))) (expression_statement "param_4[6] = puVar5;" (assignment_expression "param_4[6] = puVar5" (subscript_expression "param_4[6]" identifier [ number_literal ]) = identifier) ;) }))) (labeled_statement "LAB_00167706:\n        param_4[7] = 0;" statement_identifier : (expression_statement "param_4[7] = 0;" (assignment_expression "param_4[7] = 0" (subscript_expression "param_4[7]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "*(undefined1 *)puVar5 = 0;" (assignment_expression "*(undefined1 *)puVar5 = 0" (pointer_expression "*(undefined1 *)puVar5" * (cast_expression "(undefined1 *)puVar5" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar2 = param_4[0xd];" (assignment_expression "uVar2 = param_4[0xd]" identifier = (subscript_expression "param_4[0xd]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xc] = param_4[0xc];" (assignment_expression "puVar9[0xc] = param_4[0xc]" (subscript_expression "puVar9[0xc]" identifier [ number_literal ]) = (subscript_expression "param_4[0xc]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xd] = uVar2;" (assignment_expression "puVar9[0xd] = uVar2" (subscript_expression "puVar9[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = param_4[0xf];" (assignment_expression "uVar2 = param_4[0xf]" identifier = (subscript_expression "param_4[0xf]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xe] = param_4[0xe];" (assignment_expression "puVar9[0xe] = param_4[0xe]" (subscript_expression "puVar9[0xe]" identifier [ number_literal ]) = (subscript_expression "param_4[0xe]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xf] = uVar2;" (assignment_expression "puVar9[0xf] = uVar2" (subscript_expression "puVar9[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4 = param_4 + 0x10;" (assignment_expression "param_4 = param_4 + 0x10" identifier = (binary_expression "param_4 + 0x10" identifier + number_literal)) ;) }))) (expression_statement "param_6 = puVar9 + 0x10;" (assignment_expression "param_6 = puVar9 + 0x10" identifier = (binary_expression "puVar9 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)\n            )" ( (binary_expression "(param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)" (parenthesized_expression "(param_2 != param_3)" ( (binary_expression "param_2 != param_3" identifier != identifier) )) && (parenthesized_expression "(param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)" ( (comma_expression "param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5" (assignment_expression "param_6 = puVar9 + 0x10" identifier = (binary_expression "puVar9 + 0x10" identifier + number_literal)) , (comma_expression "puVar9 = param_6, param_4 != param_5" (assignment_expression "puVar9 = param_6" identifier = identifier) , (binary_expression "param_4 != param_5" identifier != identifier))) ))) )) ;) })) (expression_statement "iVar8 = (int)param_3 - (int)param_2 >> 6;" (assignment_expression "iVar8 = (int)param_3 - (int)param_2 >> 6" identifier = (binary_expression "(int)param_3 - (int)param_2 >> 6" (binary_expression "(int)param_3 - (int)param_2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (if_statement "if (0 < (int)param_3 - (int)param_2) {\n    puVar9 = param_2 + 8;\n    puVar5 = param_6;\n    do {\n      *puVar5 = puVar9[-8];\n      puVar5[1] = puVar9[-7];\n      puVar5[2] = puVar9[-6];\n      puVar5[3] = puVar9[-5];\n      puVar5[4] = puVar9[-4];\n      puVar5[5] = puVar9[-3];\n      puVar1 = (undefined4 *)puVar9[-2];\n      puVar6 = (undefined4 *)puVar5[6];\n      if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }\nLAB_00167833:\n      puVar9[-1] = 0;\n      param_6 = puVar5 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar9[5];\n      puVar5[0xc] = puVar9[4];\n      puVar5[0xd] = uVar2;\n      uVar2 = puVar9[7];\n      puVar5[0xe] = puVar9[6];\n      puVar5[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar9 + 0x10;\n      puVar5 = param_6;\n    } while (iVar8 != 0);\n  }" if (parenthesized_expression "(0 < (int)param_3 - (int)param_2)" ( (binary_expression "0 < (int)param_3 - (int)param_2" number_literal < (binary_expression "(int)param_3 - (int)param_2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n    puVar9 = param_2 + 8;\n    puVar5 = param_6;\n    do {\n      *puVar5 = puVar9[-8];\n      puVar5[1] = puVar9[-7];\n      puVar5[2] = puVar9[-6];\n      puVar5[3] = puVar9[-5];\n      puVar5[4] = puVar9[-4];\n      puVar5[5] = puVar9[-3];\n      puVar1 = (undefined4 *)puVar9[-2];\n      puVar6 = (undefined4 *)puVar5[6];\n      if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }\nLAB_00167833:\n      puVar9[-1] = 0;\n      param_6 = puVar5 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar9[5];\n      puVar5[0xc] = puVar9[4];\n      puVar5[0xd] = uVar2;\n      uVar2 = puVar9[7];\n      puVar5[0xe] = puVar9[6];\n      puVar5[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar9 + 0x10;\n      puVar5 = param_6;\n    } while (iVar8 != 0);\n  }" { (expression_statement "puVar9 = param_2 + 8;" (assignment_expression "puVar9 = param_2 + 8" identifier = (binary_expression "param_2 + 8" identifier + number_literal)) ;) (expression_statement "puVar5 = param_6;" (assignment_expression "puVar5 = param_6" identifier = identifier) ;) (do_statement "do {\n      *puVar5 = puVar9[-8];\n      puVar5[1] = puVar9[-7];\n      puVar5[2] = puVar9[-6];\n      puVar5[3] = puVar9[-5];\n      puVar5[4] = puVar9[-4];\n      puVar5[5] = puVar9[-3];\n      puVar1 = (undefined4 *)puVar9[-2];\n      puVar6 = (undefined4 *)puVar5[6];\n      if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }\nLAB_00167833:\n      puVar9[-1] = 0;\n      param_6 = puVar5 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar9[5];\n      puVar5[0xc] = puVar9[4];\n      puVar5[0xd] = uVar2;\n      uVar2 = puVar9[7];\n      puVar5[0xe] = puVar9[6];\n      puVar5[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar9 + 0x10;\n      puVar5 = param_6;\n    } while (iVar8 != 0);" do (compound_statement "{\n      *puVar5 = puVar9[-8];\n      puVar5[1] = puVar9[-7];\n      puVar5[2] = puVar9[-6];\n      puVar5[3] = puVar9[-5];\n      puVar5[4] = puVar9[-4];\n      puVar5[5] = puVar9[-3];\n      puVar1 = (undefined4 *)puVar9[-2];\n      puVar6 = (undefined4 *)puVar5[6];\n      if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }\nLAB_00167833:\n      puVar9[-1] = 0;\n      param_6 = puVar5 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar9[5];\n      puVar5[0xc] = puVar9[4];\n      puVar5[0xd] = uVar2;\n      uVar2 = puVar9[7];\n      puVar5[0xe] = puVar9[6];\n      puVar5[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar9 + 0x10;\n      puVar5 = param_6;\n    }" { (expression_statement "*puVar5 = puVar9[-8];" (assignment_expression "*puVar5 = puVar9[-8]" (pointer_expression "*puVar5" * identifier) = (subscript_expression "puVar9[-8]" identifier [ number_literal ])) ;) (expression_statement "puVar5[1] = puVar9[-7];" (assignment_expression "puVar5[1] = puVar9[-7]" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = (subscript_expression "puVar9[-7]" identifier [ number_literal ])) ;) (expression_statement "puVar5[2] = puVar9[-6];" (assignment_expression "puVar5[2] = puVar9[-6]" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = (subscript_expression "puVar9[-6]" identifier [ number_literal ])) ;) (expression_statement "puVar5[3] = puVar9[-5];" (assignment_expression "puVar5[3] = puVar9[-5]" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = (subscript_expression "puVar9[-5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[4] = puVar9[-4];" (assignment_expression "puVar5[4] = puVar9[-4]" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (subscript_expression "puVar9[-4]" identifier [ number_literal ])) ;) (expression_statement "puVar5[5] = puVar9[-3];" (assignment_expression "puVar5[5] = puVar9[-3]" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = (subscript_expression "puVar9[-3]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = (undefined4 *)puVar9[-2];" (assignment_expression "puVar1 = (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 "puVar6 = (undefined4 *)puVar5[6];" (assignment_expression "puVar6 = (undefined4 *)puVar5[6]" identifier = (cast_expression "(undefined4 *)puVar5[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[6]" identifier [ number_literal ]))) ;) (if_statement "if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }" if (parenthesized_expression "(puVar9 == puVar1)" ( (binary_expression "puVar9 == puVar1" identifier == identifier) )) (compound_statement "{\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }" { (expression_statement "sVar7 = puVar9[-1];" (assignment_expression "sVar7 = puVar9[-1]" identifier = (subscript_expression "puVar9[-1]" identifier [ number_literal ])) ;) (if_statement "if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }" if (parenthesized_expression "(sVar7 != 0)" ( (binary_expression "sVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }" { (if_statement "if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }" if (parenthesized_expression "(sVar7 == 1)" ( (binary_expression "sVar7 == 1" identifier == number_literal) )) (compound_statement "{\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }" { (expression_statement "*(undefined1 *)puVar6 = *(undefined1 *)puVar9;" (assignment_expression "*(undefined1 *)puVar6 = *(undefined1 *)puVar9" (pointer_expression "*(undefined1 *)puVar6" * (cast_expression "(undefined1 *)puVar6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)puVar9" * (cast_expression "(undefined1 *)puVar9" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar3 = puVar9[-1];" (assignment_expression "iVar3 = puVar9[-1]" identifier = (subscript_expression "puVar9[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar5[7] = iVar3;" (assignment_expression "puVar5[7] = iVar3" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar5[6] + iVar3) = 0;" (assignment_expression "*(undefined1 *)(puVar5[6] + iVar3) = 0" (pointer_expression "*(undefined1 *)(puVar5[6] + iVar3)" * (cast_expression "(undefined1 *)(puVar5[6] + iVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5[6] + iVar3)" ( (binary_expression "puVar5[6] + iVar3" (subscript_expression "puVar5[6]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)puVar1[-2];" (assignment_expression "puVar6 = (undefined4 *)puVar1[-2]" identifier = (cast_expression "(undefined4 *)puVar1[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[-2]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_00167833;" goto statement_identifier ;) })) (expression_statement "memcpy(puVar6,puVar9,sVar7);" (call_expression "memcpy(puVar6,puVar9,sVar7)" identifier (argument_list "(puVar6,puVar9,sVar7)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar7 = puVar9[-1];" (assignment_expression "sVar7 = puVar9[-1]" identifier = (subscript_expression "puVar9[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar6 = (undefined4 *)puVar5[6];" (assignment_expression "puVar6 = (undefined4 *)puVar5[6]" identifier = (cast_expression "(undefined4 *)puVar5[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[6]" identifier [ number_literal ]))) ;) })) (expression_statement "puVar5[7] = sVar7;" (assignment_expression "puVar5[7] = sVar7" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar6 + sVar7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar6 + sVar7) = 0" (pointer_expression "*(undefined1 *)((int)puVar6 + sVar7)" * (cast_expression "(undefined1 *)((int)puVar6 + sVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + sVar7)" ( (binary_expression "(int)puVar6 + sVar7" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)puVar1[-2];" (assignment_expression "puVar6 = (undefined4 *)puVar1[-2]" identifier = (cast_expression "(undefined4 *)puVar1[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[-2]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }" else (compound_statement "{\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }" { (if_statement "if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }" if (parenthesized_expression "(puVar6 == puVar5 + 8)" ( (binary_expression "puVar6 == puVar5 + 8" identifier == (binary_expression "puVar5 + 8" identifier + number_literal)) )) (compound_statement "{\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }" { (expression_statement "puVar5[6] = puVar1;" (assignment_expression "puVar5[6] = puVar1" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[7] = puVar9[-1];" (assignment_expression "puVar5[7] = puVar9[-1]" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = (subscript_expression "puVar9[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar5[8] = *puVar9;" (assignment_expression "puVar5[8] = *puVar9" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = (pointer_expression "*puVar9" * identifier)) ;) }) (else_clause "else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }" else (compound_statement "{\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }" { (expression_statement "puVar5[6] = puVar1;" (assignment_expression "puVar5[6] = puVar1" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = puVar5[8];" (assignment_expression "uVar2 = puVar5[8]" identifier = (subscript_expression "puVar5[8]" identifier [ number_literal ])) ;) (expression_statement "puVar5[7] = puVar9[-1];" (assignment_expression "puVar5[7] = puVar9[-1]" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = (subscript_expression "puVar9[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar5[8] = *puVar9;" (assignment_expression "puVar5[8] = *puVar9" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = (pointer_expression "*puVar9" * identifier)) ;) (if_statement "if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }" if (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" ( (binary_expression "puVar6 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }" { (expression_statement "puVar9[-2] = puVar6;" (assignment_expression "puVar9[-2] = puVar6" (subscript_expression "puVar9[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar9 = uVar2;" (assignment_expression "*puVar9 = uVar2" (pointer_expression "*puVar9" * identifier) = identifier) ;) (goto_statement "goto LAB_00167833;" goto statement_identifier ;) })) }))) (expression_statement "puVar9[-2] = puVar9;" (assignment_expression "puVar9[-2] = puVar9" (subscript_expression "puVar9[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6 = puVar9;" (assignment_expression "puVar6 = puVar9" identifier = identifier) ;) }))) (labeled_statement "LAB_00167833:\n      puVar9[-1] = 0;" statement_identifier : (expression_statement "puVar9[-1] = 0;" (assignment_expression "puVar9[-1] = 0" (subscript_expression "puVar9[-1]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "param_6 = puVar5 + 0x10;" (assignment_expression "param_6 = puVar5 + 0x10" identifier = (binary_expression "puVar5 + 0x10" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)puVar6 = 0;" (assignment_expression "*(undefined1 *)puVar6 = 0" (pointer_expression "*(undefined1 *)puVar6" * (cast_expression "(undefined1 *)puVar6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar2 = puVar9[5];" (assignment_expression "uVar2 = puVar9[5]" identifier = (subscript_expression "puVar9[5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[0xc] = puVar9[4];" (assignment_expression "puVar5[0xc] = puVar9[4]" (subscript_expression "puVar5[0xc]" identifier [ number_literal ]) = (subscript_expression "puVar9[4]" identifier [ number_literal ])) ;) (expression_statement "puVar5[0xd] = uVar2;" (assignment_expression "puVar5[0xd] = uVar2" (subscript_expression "puVar5[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = puVar9[7];" (assignment_expression "uVar2 = puVar9[7]" identifier = (subscript_expression "puVar9[7]" identifier [ number_literal ])) ;) (expression_statement "puVar5[0xe] = puVar9[6];" (assignment_expression "puVar5[0xe] = puVar9[6]" (subscript_expression "puVar5[0xe]" identifier [ number_literal ]) = (subscript_expression "puVar9[6]" identifier [ number_literal ])) ;) (expression_statement "puVar5[0xf] = uVar2;" (assignment_expression "puVar5[0xf] = uVar2" (subscript_expression "puVar5[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "puVar9 = puVar9 + 0x10;" (assignment_expression "puVar9 = puVar9 + 0x10" identifier = (binary_expression "puVar9 + 0x10" identifier + number_literal)) ;) (expression_statement "puVar5 = param_6;" (assignment_expression "puVar5 = param_6" identifier = identifier) ;) }) while (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) ;) })) (expression_statement "iVar8 = (int)param_5 - (int)param_4 >> 6;" (assignment_expression "iVar8 = (int)param_5 - (int)param_4 >> 6" identifier = (binary_expression "(int)param_5 - (int)param_4 >> 6" (binary_expression "(int)param_5 - (int)param_4" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (if_statement "if (0 < (int)param_5 - (int)param_4) {\n    puVar9 = param_6;\n    puVar5 = param_4 + 8;\n    do {\n      *puVar9 = puVar5[-8];\n      puVar9[1] = puVar5[-7];\n      puVar9[2] = puVar5[-6];\n      puVar9[3] = puVar5[-5];\n      puVar9[4] = puVar5[-4];\n      puVar9[5] = puVar5[-3];\n      puVar1 = (undefined4 *)puVar5[-2];\n      puVar6 = (undefined4 *)puVar9[6];\n      if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }\nLAB_001679c9:\n      puVar5[-1] = 0;\n      param_6 = puVar9 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar5[5];\n      puVar9[0xc] = puVar5[4];\n      puVar9[0xd] = uVar2;\n      uVar2 = puVar5[7];\n      puVar9[0xe] = puVar5[6];\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = param_6;\n      puVar5 = puVar5 + 0x10;\n    } while (iVar8 != 0);\n  }" if (parenthesized_expression "(0 < (int)param_5 - (int)param_4)" ( (binary_expression "0 < (int)param_5 - (int)param_4" number_literal < (binary_expression "(int)param_5 - (int)param_4" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n    puVar9 = param_6;\n    puVar5 = param_4 + 8;\n    do {\n      *puVar9 = puVar5[-8];\n      puVar9[1] = puVar5[-7];\n      puVar9[2] = puVar5[-6];\n      puVar9[3] = puVar5[-5];\n      puVar9[4] = puVar5[-4];\n      puVar9[5] = puVar5[-3];\n      puVar1 = (undefined4 *)puVar5[-2];\n      puVar6 = (undefined4 *)puVar9[6];\n      if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }\nLAB_001679c9:\n      puVar5[-1] = 0;\n      param_6 = puVar9 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar5[5];\n      puVar9[0xc] = puVar5[4];\n      puVar9[0xd] = uVar2;\n      uVar2 = puVar5[7];\n      puVar9[0xe] = puVar5[6];\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = param_6;\n      puVar5 = puVar5 + 0x10;\n    } while (iVar8 != 0);\n  }" { (expression_statement "puVar9 = param_6;" (assignment_expression "puVar9 = param_6" identifier = identifier) ;) (expression_statement "puVar5 = param_4 + 8;" (assignment_expression "puVar5 = param_4 + 8" identifier = (binary_expression "param_4 + 8" identifier + number_literal)) ;) (do_statement "do {\n      *puVar9 = puVar5[-8];\n      puVar9[1] = puVar5[-7];\n      puVar9[2] = puVar5[-6];\n      puVar9[3] = puVar5[-5];\n      puVar9[4] = puVar5[-4];\n      puVar9[5] = puVar5[-3];\n      puVar1 = (undefined4 *)puVar5[-2];\n      puVar6 = (undefined4 *)puVar9[6];\n      if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }\nLAB_001679c9:\n      puVar5[-1] = 0;\n      param_6 = puVar9 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar5[5];\n      puVar9[0xc] = puVar5[4];\n      puVar9[0xd] = uVar2;\n      uVar2 = puVar5[7];\n      puVar9[0xe] = puVar5[6];\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = param_6;\n      puVar5 = puVar5 + 0x10;\n    } while (iVar8 != 0);" do (compound_statement "{\n      *puVar9 = puVar5[-8];\n      puVar9[1] = puVar5[-7];\n      puVar9[2] = puVar5[-6];\n      puVar9[3] = puVar5[-5];\n      puVar9[4] = puVar5[-4];\n      puVar9[5] = puVar5[-3];\n      puVar1 = (undefined4 *)puVar5[-2];\n      puVar6 = (undefined4 *)puVar9[6];\n      if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }\nLAB_001679c9:\n      puVar5[-1] = 0;\n      param_6 = puVar9 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar5[5];\n      puVar9[0xc] = puVar5[4];\n      puVar9[0xd] = uVar2;\n      uVar2 = puVar5[7];\n      puVar9[0xe] = puVar5[6];\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = param_6;\n      puVar5 = puVar5 + 0x10;\n    }" { (expression_statement "*puVar9 = puVar5[-8];" (assignment_expression "*puVar9 = puVar5[-8]" (pointer_expression "*puVar9" * identifier) = (subscript_expression "puVar5[-8]" identifier [ number_literal ])) ;) (expression_statement "puVar9[1] = puVar5[-7];" (assignment_expression "puVar9[1] = puVar5[-7]" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = (subscript_expression "puVar5[-7]" identifier [ number_literal ])) ;) (expression_statement "puVar9[2] = puVar5[-6];" (assignment_expression "puVar9[2] = puVar5[-6]" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = (subscript_expression "puVar5[-6]" identifier [ number_literal ])) ;) (expression_statement "puVar9[3] = puVar5[-5];" (assignment_expression "puVar9[3] = puVar5[-5]" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = (subscript_expression "puVar5[-5]" identifier [ number_literal ])) ;) (expression_statement "puVar9[4] = puVar5[-4];" (assignment_expression "puVar9[4] = puVar5[-4]" (subscript_expression "puVar9[4]" identifier [ number_literal ]) = (subscript_expression "puVar5[-4]" identifier [ number_literal ])) ;) (expression_statement "puVar9[5] = puVar5[-3];" (assignment_expression "puVar9[5] = puVar5[-3]" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = (subscript_expression "puVar5[-3]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar1 = (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 "puVar6 = (undefined4 *)puVar9[6];" (assignment_expression "puVar6 = (undefined4 *)puVar9[6]" identifier = (cast_expression "(undefined4 *)puVar9[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) ;) (if_statement "if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }" if (parenthesized_expression "(puVar1 == puVar5)" ( (binary_expression "puVar1 == puVar5" identifier == identifier) )) (compound_statement "{\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }" { (expression_statement "sVar7 = puVar5[-1];" (assignment_expression "sVar7 = puVar5[-1]" identifier = (subscript_expression "puVar5[-1]" identifier [ number_literal ])) ;) (if_statement "if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }" if (parenthesized_expression "(sVar7 != 0)" ( (binary_expression "sVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }" { (if_statement "if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }" if (parenthesized_expression "(sVar7 == 1)" ( (binary_expression "sVar7 == 1" identifier == number_literal) )) (compound_statement "{\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }" { (expression_statement "*(undefined1 *)puVar6 = *(undefined1 *)puVar5;" (assignment_expression "*(undefined1 *)puVar6 = *(undefined1 *)puVar5" (pointer_expression "*(undefined1 *)puVar6" * (cast_expression "(undefined1 *)puVar6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)puVar5" * (cast_expression "(undefined1 *)puVar5" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar3 = puVar5[-1];" (assignment_expression "iVar3 = puVar5[-1]" identifier = (subscript_expression "puVar5[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar9[7] = iVar3;" (assignment_expression "puVar9[7] = iVar3" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar9[6] + iVar3) = 0;" (assignment_expression "*(undefined1 *)(puVar9[6] + iVar3) = 0" (pointer_expression "*(undefined1 *)(puVar9[6] + iVar3)" * (cast_expression "(undefined1 *)(puVar9[6] + iVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9[6] + iVar3)" ( (binary_expression "puVar9[6] + iVar3" (subscript_expression "puVar9[6]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar6 = (undefined4 *)puVar5[-2]" identifier = (cast_expression "(undefined4 *)puVar5[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[-2]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_001679c9;" goto statement_identifier ;) })) (expression_statement "memcpy(puVar6,puVar5,sVar7);" (call_expression "memcpy(puVar6,puVar5,sVar7)" identifier (argument_list "(puVar6,puVar5,sVar7)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar7 = puVar5[-1];" (assignment_expression "sVar7 = puVar5[-1]" identifier = (subscript_expression "puVar5[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar6 = (undefined4 *)puVar9[6];" (assignment_expression "puVar6 = (undefined4 *)puVar9[6]" identifier = (cast_expression "(undefined4 *)puVar9[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) ;) })) (expression_statement "puVar9[7] = sVar7;" (assignment_expression "puVar9[7] = sVar7" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar6 + sVar7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar6 + sVar7) = 0" (pointer_expression "*(undefined1 *)((int)puVar6 + sVar7)" * (cast_expression "(undefined1 *)((int)puVar6 + sVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + sVar7)" ( (binary_expression "(int)puVar6 + sVar7" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar6 = (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        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }" else (compound_statement "{\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }" { (if_statement "if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }" if (parenthesized_expression "(puVar6 == puVar9 + 8)" ( (binary_expression "puVar6 == puVar9 + 8" identifier == (binary_expression "puVar9 + 8" identifier + number_literal)) )) (compound_statement "{\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }" { (expression_statement "puVar9[6] = puVar1;" (assignment_expression "puVar9[6] = puVar1" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[7] = puVar5[-1];" (assignment_expression "puVar9[7] = puVar5[-1]" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (subscript_expression "puVar5[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar9[8] = *puVar5;" (assignment_expression "puVar9[8] = *puVar5" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = (pointer_expression "*puVar5" * identifier)) ;) }) (else_clause "else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }" else (compound_statement "{\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }" { (expression_statement "puVar9[6] = puVar1;" (assignment_expression "puVar9[6] = puVar1" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = puVar9[8];" (assignment_expression "uVar2 = puVar9[8]" identifier = (subscript_expression "puVar9[8]" identifier [ number_literal ])) ;) (expression_statement "puVar9[7] = puVar5[-1];" (assignment_expression "puVar9[7] = puVar5[-1]" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (subscript_expression "puVar5[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar9[8] = *puVar5;" (assignment_expression "puVar9[8] = *puVar5" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = (pointer_expression "*puVar5" * identifier)) ;) (if_statement "if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }" if (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" ( (binary_expression "puVar6 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }" { (expression_statement "puVar5[-2] = puVar6;" (assignment_expression "puVar5[-2] = puVar6" (subscript_expression "puVar5[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar5 = uVar2;" (assignment_expression "*puVar5 = uVar2" (pointer_expression "*puVar5" * identifier) = identifier) ;) (goto_statement "goto LAB_001679c9;" goto statement_identifier ;) })) }))) (expression_statement "puVar5[-2] = puVar5;" (assignment_expression "puVar5[-2] = puVar5" (subscript_expression "puVar5[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6 = puVar5;" (assignment_expression "puVar6 = puVar5" identifier = identifier) ;) }))) (labeled_statement "LAB_001679c9:\n      puVar5[-1] = 0;" statement_identifier : (expression_statement "puVar5[-1] = 0;" (assignment_expression "puVar5[-1] = 0" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "param_6 = puVar9 + 0x10;" (assignment_expression "param_6 = puVar9 + 0x10" identifier = (binary_expression "puVar9 + 0x10" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)puVar6 = 0;" (assignment_expression "*(undefined1 *)puVar6 = 0" (pointer_expression "*(undefined1 *)puVar6" * (cast_expression "(undefined1 *)puVar6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar2 = puVar5[5];" (assignment_expression "uVar2 = puVar5[5]" identifier = (subscript_expression "puVar5[5]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xc] = puVar5[4];" (assignment_expression "puVar9[0xc] = puVar5[4]" (subscript_expression "puVar9[0xc]" identifier [ number_literal ]) = (subscript_expression "puVar5[4]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xd] = uVar2;" (assignment_expression "puVar9[0xd] = uVar2" (subscript_expression "puVar9[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = puVar5[7];" (assignment_expression "uVar2 = puVar5[7]" identifier = (subscript_expression "puVar5[7]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xe] = puVar5[6];" (assignment_expression "puVar9[0xe] = puVar5[6]" (subscript_expression "puVar9[0xe]" identifier [ number_literal ]) = (subscript_expression "puVar5[6]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xf] = uVar2;" (assignment_expression "puVar9[0xf] = uVar2" (subscript_expression "puVar9[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "puVar9 = param_6;" (assignment_expression "puVar9 = param_6" identifier = identifier) ;) (expression_statement "puVar5 = puVar5 + 0x10;" (assignment_expression "puVar5 = puVar5 + 0x10" identifier = (binary_expression "puVar5 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) ;) })) (expression_statement "*param_1 = param_6;" (assignment_expression "*param_1 = param_6" (pointer_expression "*param_1" * identifier) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* DWARF original name: __move_merge<gold::Input_section_info*,\n   __gnu_cxx::__normal_iterator<gold::Input_section_info*, std::vector<gold::Input_section_info> >,\n   __gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter> > */\n\n__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n std::\n __move_merge<gold::Input_section_info*,___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           (Input_section_info *__first1,Input_section_info *__last1,Input_section_info *__first2,\n           Input_section_info *__last2,\n           __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n           __result,_Iter_comp_iter<gold::Input_section_sorter> __comp)\n\n{\n  pointer pcVar1;\n  uint uVar2;\n  size_type sVar3;\n  bool bVar4;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar5;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar6;\n  size_t sVar7;\n  int iVar8;\n  uint *puVar9;\n  uint *puVar10;\n  \n  puVar10 = (uint *)__comp._M_comp.filename_sort_;\n  if ((__last1 != __first2) && (__last2 != __result._M_current)) {\n    puVar9 = (uint *)__comp._M_comp.filename_sort_;\n    do {\n      bVar4 = gold::Input_section_sorter::operator()\n                        ((Input_section_sorter *)&__comp._M_comp.section_sort_,__last2,__last1);\n      if (bVar4) {\n        paVar5 = &(__last2->section_name_).field_2;\n        *puVar9 = (__last2->input_section_).shndx_;\n        puVar9[1] = (__last2->input_section_).p2align_;\n        puVar9[2] = *(uint *)&(__last2->input_section_).u1_;\n        puVar9[3] = *(uint *)((int)&(__last2->input_section_).u1_ + 4);\n        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last2->input_section_).u2_;\n        puVar9[5] = (__last2->input_section_).section_order_index_;\n        pcVar1 = (__last2->section_name_)._M_dataplus._M_p;\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last2->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last2->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last2->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last2->section_name_)._M_dataplus._M_p;\n              goto LAB_00167706;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last2->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last2->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last2->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_00167706;\n            }\n          }\n          (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }\nLAB_00167706:\n        (__last2->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar2 = *(uint *)((int)&__last2->size_ + 4);\n        puVar9[0xc] = (uint)__last2->size_;\n        puVar9[0xd] = uVar2;\n        uVar2 = *(uint *)((int)&__last2->addralign_ + 4);\n        puVar9[0xe] = (uint)__last2->addralign_;\n        puVar9[0xf] = uVar2;\n        __last2 = __last2 + 1;\n      }\n      else {\n        paVar5 = &(__last1->section_name_).field_2;\n        *puVar9 = (__last1->input_section_).shndx_;\n        puVar9[1] = (__last1->input_section_).p2align_;\n        puVar9[2] = *(uint *)&(__last1->input_section_).u1_;\n        puVar9[3] = *(uint *)((int)&(__last1->input_section_).u1_ + 4);\n        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last1->input_section_).u2_;\n        puVar9[5] = (__last1->input_section_).section_order_index_;\n        pcVar1 = (__last1->section_name_)._M_dataplus._M_p;\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last1->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last1->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last1->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last1->section_name_)._M_dataplus._M_p;\n              goto LAB_001677ba;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last1->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last1->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last1->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_001677ba;\n            }\n          }\n          (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }\nLAB_001677ba:\n        (__last1->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar2 = *(uint *)((int)&__last1->size_ + 4);\n        puVar9[0xc] = (uint)__last1->size_;\n        puVar9[0xd] = uVar2;\n        uVar2 = *(uint *)((int)&__last1->addralign_ + 4);\n        puVar9[0xe] = (uint)__last1->addralign_;\n        puVar9[0xf] = uVar2;\n        __last1 = __last1 + 1;\n      }\n      puVar10 = puVar9 + 0x10;\n    } while ((__last1 != __first2) &&\n            (puVar10 = puVar9 + 0x10, puVar9 = puVar10, __last2 != __result._M_current));\n  }\n  iVar8 = (int)__first2 - (int)__last1 >> 6;\n  if (0 < (int)__first2 - (int)__last1) {\n    paVar5 = &(__last1->section_name_).field_2;\n    puVar9 = puVar10;\n    do {\n      *puVar9 = paVar5[-2]._M_allocated_capacity;\n      puVar9[1] = *(uint *)((int)paVar5 + -0x1c);\n      puVar9[2] = *(uint *)((int)paVar5 + -0x18);\n      puVar9[3] = *(uint *)((int)paVar5 + -0x14);\n      puVar9[4] = paVar5[-1]._M_allocated_capacity;\n      puVar9[5] = *(uint *)((int)paVar5 + -0xc);\n      pcVar1 = (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)puVar9[6];\n      if (paVar5 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)pcVar1) {\n        sVar7 = *(size_type *)((int)paVar5 + -4);\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            sVar3 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = sVar3;\n            *(undefined1 *)(puVar9[6] + sVar3) = 0;\n            paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)(pcVar1 + -8);\n            goto LAB_00167833;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        paVar6->_M_local_buf[sVar7] = '\0';\n        paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   **)(pcVar1 + -8);\n      }\n      else {\n        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)pcVar1;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)pcVar1;\n          sVar3 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = sVar3;\n            goto LAB_00167833;\n          }\n        }\n        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;\n        paVar6 = paVar5;\n      }\nLAB_00167833:\n      *(size_type *)((int)paVar5 + -4) = 0;\n      puVar10 = puVar9 + 0x10;\n      paVar6->_M_local_buf[0] = '\0';\n      uVar2 = *(uint *)((int)paVar5 + 0x14);\n      puVar9[0xc] = paVar5[1]._M_allocated_capacity;\n      puVar9[0xd] = uVar2;\n      uVar2 = *(uint *)((int)paVar5 + 0x1c);\n      puVar9[0xe] = *(uint *)((int)paVar5 + 0x18);\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      paVar5 = paVar5 + 4;\n      puVar9 = puVar10;\n    } while (iVar8 != 0);\n  }\n  iVar8 = (int)__result._M_current - (int)__last2 >> 6;\n  if (0 < (int)__result._M_current - (int)__last2) {\n    puVar9 = puVar10;\n    paVar5 = &(__last2->section_name_).field_2;\n    do {\n      *puVar9 = paVar5[-2]._M_allocated_capacity;\n      puVar9[1] = *(uint *)((int)paVar5 + -0x1c);\n      puVar9[2] = *(uint *)((int)paVar5 + -0x18);\n      puVar9[3] = *(uint *)((int)paVar5 + -0x14);\n      puVar9[4] = paVar5[-1]._M_allocated_capacity;\n      puVar9[5] = *(uint *)((int)paVar5 + -0xc);\n      puVar10 = (uint *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)puVar9[6];\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)puVar10 == paVar5) {\n        sVar7 = *(size_type *)((int)paVar5 + -4);\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            uVar2 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = uVar2;\n            *(undefined1 *)(puVar9[6] + uVar2) = 0;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n            goto LAB_001679c9;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        paVar6->_M_local_buf[sVar7] = '\0';\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      }\n      else {\n        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)puVar10;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)puVar10;\n          uVar2 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;\n        paVar6 = paVar5;\n      }\nLAB_001679c9:\n      *(uint *)((int)paVar5 + -4) = 0;\n      puVar10 = puVar9 + 0x10;\n      paVar6->_M_local_buf[0] = '\0';\n      uVar2 = *(uint *)((int)paVar5 + 0x14);\n      puVar9[0xc] = paVar5[1]._M_allocated_capacity;\n      puVar9[0xd] = uVar2;\n      uVar2 = *(uint *)((int)paVar5 + 0x1c);\n      puVar9[0xe] = *(uint *)((int)paVar5 + 0x18);\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar10;\n      paVar5 = paVar5 + 4;\n    } while (iVar8 != 0);\n  }\n  (__first1->input_section_).shndx_ = (uint)puVar10;\n  return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n          )__first1;\n}\n\n" comment comment comment (ERROR "__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info," (binary_expression "__normal_iterator<gold::Input_section_info*,_std::vector<gold" (binary_expression "__normal_iterator<gold::Input_section_info*,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) : : identifier ,) (labeled_statement "_std::allocator<gold::Input_section_info>_>_>\n std::\n __move_merge<gold::Input_section_info*,___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           (Input_section_info *__first1,Input_section_info *__last1,Input_section_info *__first2,\n           Input_section_info *__last2,\n           __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n           __result,_Iter_comp_iter<gold::Input_section_sorter> __comp)\n\n{\n  pointer pcVar1;\n  uint uVar2;\n  size_type sVar3;\n  bool bVar4;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar5;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar6;\n  size_t sVar7;\n  int iVar8;\n  uint *puVar9;\n  uint *puVar10;\n  \n  puVar10 = (uint *)__comp._M_comp.filename_sort_;\n  if ((__last1 != __first2) && (__last2 != __result._M_current)) {\n    puVar9 = (uint *)__comp._M_comp.filename_sort_;\n    do {\n      bVar4 = gold::Input_section_sorter::operator()\n                        ((Input_section_sorter *)&__comp._M_comp.section_sort_,__last2,__last1);\n      if (bVar4) {\n        paVar5 = &(__last2->section_name_).field_2;\n        *puVar9 = (__last2->input_section_).shndx_;\n        puVar9[1] = (__last2->input_section_).p2align_;\n        puVar9[2] = *(uint *)&(__last2->input_section_).u1_;\n        puVar9[3] = *(uint *)((int)&(__last2->input_section_).u1_ + 4);\n        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last2->input_section_).u2_;\n        puVar9[5] = (__last2->input_section_).section_order_index_;\n        pcVar1 = (__last2->section_name_)._M_dataplus._M_p;\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last2->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last2->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last2->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last2->section_name_)._M_dataplus._M_p;\n              goto LAB_00167706;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last2->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last2->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last2->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_00167706;\n            }\n          }\n          (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }\nLAB_00167706:\n        (__last2->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar2 = *(uint *)((int)&__last2->size_ + 4);\n        puVar9[0xc] = (uint)__last2->size_;\n        puVar9[0xd] = uVar2;\n        uVar2 = *(uint *)((int)&__last2->addralign_ + 4);\n        puVar9[0xe] = (uint)__last2->addralign_;\n        puVar9[0xf] = uVar2;\n        __last2 = __last2 + 1;\n      }\n      else {\n        paVar5 = &(__last1->section_name_).field_2;\n        *puVar9 = (__last1->input_section_).shndx_;\n        puVar9[1] = (__last1->input_section_).p2align_;\n        puVar9[2] = *(uint *)&(__last1->input_section_).u1_;\n        puVar9[3] = *(uint *)((int)&(__last1->input_section_).u1_ + 4);\n        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last1->input_section_).u2_;\n        puVar9[5] = (__last1->input_section_).section_order_index_;\n        pcVar1 = (__last1->section_name_)._M_dataplus._M_p;\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last1->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last1->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last1->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last1->section_name_)._M_dataplus._M_p;\n              goto LAB_001677ba;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last1->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last1->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last1->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_001677ba;\n            }\n          }\n          (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }\nLAB_001677ba:\n        (__last1->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar2 = *(uint *)((int)&__last1->size_ + 4);\n        puVar9[0xc] = (uint)__last1->size_;\n        puVar9[0xd] = uVar2;\n        uVar2 = *(uint *)((int)&__last1->addralign_ + 4);\n        puVar9[0xe] = (uint)__last1->addralign_;\n        puVar9[0xf] = uVar2;\n        __last1 = __last1 + 1;\n      }\n      puVar10 = puVar9 + 0x10;\n    } while ((__last1 != __first2) &&\n            (puVar10 = puVar9 + 0x10, puVar9 = puVar10, __last2 != __result._M_current));\n  }\n  iVar8 = (int)__first2 - (int)__last1 >> 6;\n  if (0 < (int)__first2 - (int)__last1) {\n    paVar5 = &(__last1->section_name_).field_2;\n    puVar9 = puVar10;\n    do {\n      *puVar9 = paVar5[-2]._M_allocated_capacity;\n      puVar9[1] = *(uint *)((int)paVar5 + -0x1c);\n      puVar9[2] = *(uint *)((int)paVar5 + -0x18);\n      puVar9[3] = *(uint *)((int)paVar5 + -0x14);\n      puVar9[4] = paVar5[-1]._M_allocated_capacity;\n      puVar9[5] = *(uint *)((int)paVar5 + -0xc);\n      pcVar1 = (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)puVar9[6];\n      if (paVar5 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)pcVar1) {\n        sVar7 = *(size_type *)((int)paVar5 + -4);\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            sVar3 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = sVar3;\n            *(undefined1 *)(puVar9[6] + sVar3) = 0;\n            paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)(pcVar1 + -8);\n            goto LAB_00167833;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        paVar6->_M_local_buf[sVar7] = '\0';\n        paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   **)(pcVar1 + -8);\n      }\n      else {\n        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)pcVar1;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)pcVar1;\n          sVar3 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = sVar3;\n            goto LAB_00167833;\n          }\n        }\n        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;\n        paVar6 = paVar5;\n      }\nLAB_00167833:\n      *(size_type *)((int)paVar5 + -4) = 0;\n      puVar10 = puVar9 + 0x10;\n      paVar6->_M_local_buf[0] = '\0';\n      uVar2 = *(uint *)((int)paVar5 + 0x14);\n      puVar9[0xc] = paVar5[1]._M_allocated_capacity;\n      puVar9[0xd] = uVar2;\n      uVar2 = *(uint *)((int)paVar5 + 0x1c);\n      puVar9[0xe] = *(uint *)((int)paVar5 + 0x18);\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      paVar5 = paVar5 + 4;\n      puVar9 = puVar10;\n    } while (iVar8 != 0);\n  }\n  iVar8 = (int)__result._M_current - (int)__last2 >> 6;\n  if (0 < (int)__result._M_current - (int)__last2) {\n    puVar9 = puVar10;\n    paVar5 = &(__last2->section_name_).field_2;\n    do {\n      *puVar9 = paVar5[-2]._M_allocated_capacity;\n      puVar9[1] = *(uint *)((int)paVar5 + -0x1c);\n      puVar9[2] = *(uint *)((int)paVar5 + -0x18);\n      puVar9[3] = *(uint *)((int)paVar5 + -0x14);\n      puVar9[4] = paVar5[-1]._M_allocated_capacity;\n      puVar9[5] = *(uint *)((int)paVar5 + -0xc);\n      puVar10 = (uint *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)puVar9[6];\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)puVar10 == paVar5) {\n        sVar7 = *(size_type *)((int)paVar5 + -4);\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            uVar2 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = uVar2;\n            *(undefined1 *)(puVar9[6] + uVar2) = 0;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n            goto LAB_001679c9;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        paVar6->_M_local_buf[sVar7] = '\0';\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      }\n      else {\n        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)puVar10;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)puVar10;\n          uVar2 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;\n        paVar6 = paVar5;\n      }\nLAB_001679c9:\n      *(uint *)((int)paVar5 + -4) = 0;\n      puVar10 = puVar9 + 0x10;\n      paVar6->_M_local_buf[0] = '\0';\n      uVar2 = *(uint *)((int)paVar5 + 0x14);\n      puVar9[0xc] = paVar5[1]._M_allocated_capacity;\n      puVar9[0xd] = uVar2;\n      uVar2 = *(uint *)((int)paVar5 + 0x1c);\n      puVar9[0xe] = *(uint *)((int)paVar5 + 0x18);\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar10;\n      paVar5 = paVar5 + 4;\n    } while (iVar8 != 0);\n  }\n  (__first1->input_section_).shndx_ = (uint)puVar10;\n  return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n          )__first1;\n}" statement_identifier (ERROR "::allocator<gold::Input_section_info>_>_>\n std::\n __move_merge<gold::Input_section_info*,___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           (Input_section_info *__first1,Input_section_info *__last1,Input_section_info *__first2,\n           Input_section_info *__last2,\n           __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n           __result,_Iter_comp_iter<gold:" : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Input_section_info>_>_>\n std" (binary_expression "Input_section_info>_>_" (binary_expression "Input_section_info>_" identifier > identifier) > identifier) > identifier) : : (binary_expression "__move_merge<gold" identifier < identifier) : : (binary_expression "Input_section_info*,___gnu_cxx" identifier * (ERROR "," ,) identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : (binary_expression "Input_section_info*,_std" identifier * (ERROR "," ,) identifier) : : (binary_expression "vector<gold" identifier < identifier) : : (binary_expression "Input_section_info>_>,___gnu_cxx" (binary_expression "Input_section_info>_" identifier > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n           (Input_section_info *__first1,Input_section_info *__last1,Input_section_info *__first2,\n           Input_section_info *__last2,\n           __normal_iterator<gold::Input_section_info*,_std" identifier (ERROR "::_Iter_comp_iter<gold::Input_section_sorter>_>\n           (Input_section_info *__first1,Input_section_info *__last1,Input_section_info *__first2,\n           Input_section_info *__last2,\n           __normal_iterator<gold::Input_section_info*" : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) : : (binary_expression "Input_section_sorter>_" identifier > identifier) > ( (comma_expression "Input_section_info *__first1,Input_section_info *__last1,Input_section_info *__first2,\n           Input_section_info *__last2,\n           __normal_iterator<gold" (binary_expression "Input_section_info *__first1" identifier * identifier) , (comma_expression "Input_section_info *__last1,Input_section_info *__first2,\n           Input_section_info *__last2,\n           __normal_iterator<gold" (binary_expression "Input_section_info *__last1" identifier * identifier) , (comma_expression "Input_section_info *__first2,\n           Input_section_info *__last2,\n           __normal_iterator<gold" (binary_expression "Input_section_info *__first2" identifier * identifier) , (comma_expression "Input_section_info *__last2,\n           __normal_iterator<gold" (binary_expression "Input_section_info *__last2" identifier * identifier) , (binary_expression "__normal_iterator<gold" identifier < identifier))))) : : identifier *) , identifier) : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Input_section_info,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (comma_expression "Input_section_info>_>_>\n           __result,_Iter_comp_iter<gold" (binary_expression "Input_section_info>_>_>\n           __result" (binary_expression "Input_section_info>_>_" (binary_expression "Input_section_info>_" identifier > identifier) > identifier) > identifier) , (binary_expression "_Iter_comp_iter<gold" identifier < identifier)) :) : (ERROR "Input_section_sorter> __comp)" (binary_expression "Input_section_sorter> __comp" identifier > identifier) )) (compound_statement "{\n  pointer pcVar1;\n  uint uVar2;\n  size_type sVar3;\n  bool bVar4;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar5;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar6;\n  size_t sVar7;\n  int iVar8;\n  uint *puVar9;\n  uint *puVar10;\n  \n  puVar10 = (uint *)__comp._M_comp.filename_sort_;\n  if ((__last1 != __first2) && (__last2 != __result._M_current)) {\n    puVar9 = (uint *)__comp._M_comp.filename_sort_;\n    do {\n      bVar4 = gold::Input_section_sorter::operator()\n                        ((Input_section_sorter *)&__comp._M_comp.section_sort_,__last2,__last1);\n      if (bVar4) {\n        paVar5 = &(__last2->section_name_).field_2;\n        *puVar9 = (__last2->input_section_).shndx_;\n        puVar9[1] = (__last2->input_section_).p2align_;\n        puVar9[2] = *(uint *)&(__last2->input_section_).u1_;\n        puVar9[3] = *(uint *)((int)&(__last2->input_section_).u1_ + 4);\n        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last2->input_section_).u2_;\n        puVar9[5] = (__last2->input_section_).section_order_index_;\n        pcVar1 = (__last2->section_name_)._M_dataplus._M_p;\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last2->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last2->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last2->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last2->section_name_)._M_dataplus._M_p;\n              goto LAB_00167706;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last2->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last2->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last2->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_00167706;\n            }\n          }\n          (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }\nLAB_00167706:\n        (__last2->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar2 = *(uint *)((int)&__last2->size_ + 4);\n        puVar9[0xc] = (uint)__last2->size_;\n        puVar9[0xd] = uVar2;\n        uVar2 = *(uint *)((int)&__last2->addralign_ + 4);\n        puVar9[0xe] = (uint)__last2->addralign_;\n        puVar9[0xf] = uVar2;\n        __last2 = __last2 + 1;\n      }\n      else {\n        paVar5 = &(__last1->section_name_).field_2;\n        *puVar9 = (__last1->input_section_).shndx_;\n        puVar9[1] = (__last1->input_section_).p2align_;\n        puVar9[2] = *(uint *)&(__last1->input_section_).u1_;\n        puVar9[3] = *(uint *)((int)&(__last1->input_section_).u1_ + 4);\n        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last1->input_section_).u2_;\n        puVar9[5] = (__last1->input_section_).section_order_index_;\n        pcVar1 = (__last1->section_name_)._M_dataplus._M_p;\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last1->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last1->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last1->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last1->section_name_)._M_dataplus._M_p;\n              goto LAB_001677ba;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last1->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last1->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last1->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_001677ba;\n            }\n          }\n          (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }\nLAB_001677ba:\n        (__last1->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar2 = *(uint *)((int)&__last1->size_ + 4);\n        puVar9[0xc] = (uint)__last1->size_;\n        puVar9[0xd] = uVar2;\n        uVar2 = *(uint *)((int)&__last1->addralign_ + 4);\n        puVar9[0xe] = (uint)__last1->addralign_;\n        puVar9[0xf] = uVar2;\n        __last1 = __last1 + 1;\n      }\n      puVar10 = puVar9 + 0x10;\n    } while ((__last1 != __first2) &&\n            (puVar10 = puVar9 + 0x10, puVar9 = puVar10, __last2 != __result._M_current));\n  }\n  iVar8 = (int)__first2 - (int)__last1 >> 6;\n  if (0 < (int)__first2 - (int)__last1) {\n    paVar5 = &(__last1->section_name_).field_2;\n    puVar9 = puVar10;\n    do {\n      *puVar9 = paVar5[-2]._M_allocated_capacity;\n      puVar9[1] = *(uint *)((int)paVar5 + -0x1c);\n      puVar9[2] = *(uint *)((int)paVar5 + -0x18);\n      puVar9[3] = *(uint *)((int)paVar5 + -0x14);\n      puVar9[4] = paVar5[-1]._M_allocated_capacity;\n      puVar9[5] = *(uint *)((int)paVar5 + -0xc);\n      pcVar1 = (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)puVar9[6];\n      if (paVar5 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)pcVar1) {\n        sVar7 = *(size_type *)((int)paVar5 + -4);\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            sVar3 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = sVar3;\n            *(undefined1 *)(puVar9[6] + sVar3) = 0;\n            paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)(pcVar1 + -8);\n            goto LAB_00167833;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        paVar6->_M_local_buf[sVar7] = '\0';\n        paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   **)(pcVar1 + -8);\n      }\n      else {\n        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)pcVar1;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)pcVar1;\n          sVar3 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = sVar3;\n            goto LAB_00167833;\n          }\n        }\n        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;\n        paVar6 = paVar5;\n      }\nLAB_00167833:\n      *(size_type *)((int)paVar5 + -4) = 0;\n      puVar10 = puVar9 + 0x10;\n      paVar6->_M_local_buf[0] = '\0';\n      uVar2 = *(uint *)((int)paVar5 + 0x14);\n      puVar9[0xc] = paVar5[1]._M_allocated_capacity;\n      puVar9[0xd] = uVar2;\n      uVar2 = *(uint *)((int)paVar5 + 0x1c);\n      puVar9[0xe] = *(uint *)((int)paVar5 + 0x18);\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      paVar5 = paVar5 + 4;\n      puVar9 = puVar10;\n    } while (iVar8 != 0);\n  }\n  iVar8 = (int)__result._M_current - (int)__last2 >> 6;\n  if (0 < (int)__result._M_current - (int)__last2) {\n    puVar9 = puVar10;\n    paVar5 = &(__last2->section_name_).field_2;\n    do {\n      *puVar9 = paVar5[-2]._M_allocated_capacity;\n      puVar9[1] = *(uint *)((int)paVar5 + -0x1c);\n      puVar9[2] = *(uint *)((int)paVar5 + -0x18);\n      puVar9[3] = *(uint *)((int)paVar5 + -0x14);\n      puVar9[4] = paVar5[-1]._M_allocated_capacity;\n      puVar9[5] = *(uint *)((int)paVar5 + -0xc);\n      puVar10 = (uint *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)puVar9[6];\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)puVar10 == paVar5) {\n        sVar7 = *(size_type *)((int)paVar5 + -4);\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            uVar2 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = uVar2;\n            *(undefined1 *)(puVar9[6] + uVar2) = 0;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n            goto LAB_001679c9;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        paVar6->_M_local_buf[sVar7] = '\0';\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      }\n      else {\n        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)puVar10;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)puVar10;\n          uVar2 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;\n        paVar6 = paVar5;\n      }\nLAB_001679c9:\n      *(uint *)((int)paVar5 + -4) = 0;\n      puVar10 = puVar9 + 0x10;\n      paVar6->_M_local_buf[0] = '\0';\n      uVar2 = *(uint *)((int)paVar5 + 0x14);\n      puVar9[0xc] = paVar5[1]._M_allocated_capacity;\n      puVar9[0xd] = uVar2;\n      uVar2 = *(uint *)((int)paVar5 + 0x1c);\n      puVar9[0xe] = *(uint *)((int)paVar5 + 0x18);\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar10;\n      paVar5 = paVar5 + 4;\n    } while (iVar8 != 0);\n  }\n  (__first1->input_section_).shndx_ = (uint)puVar10;\n  return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n          )__first1;\n}" { (declaration "pointer pcVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "size_type sVar3;" type_identifier identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar5;" (binary_expression "allocator<char>_>_9\n  *paVar5" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar5" identifier * identifier)) ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar6;" (binary_expression "allocator<char>_>_9\n  *paVar6" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar6" identifier * identifier)) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (expression_statement "puVar10 = (uint *)__comp._M_comp.filename_sort_;" (assignment_expression "puVar10 = (uint *)__comp._M_comp.filename_sort_" identifier = (cast_expression "(uint *)__comp._M_comp.filename_sort_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "__comp._M_comp.filename_sort_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier))) ;) (if_statement "if ((__last1 != __first2) && (__last2 != __result._M_current)) {\n    puVar9 = (uint *)__comp._M_comp.filename_sort_;\n    do {\n      bVar4 = gold::Input_section_sorter::operator()\n                        ((Input_section_sorter *)&__comp._M_comp.section_sort_,__last2,__last1);\n      if (bVar4) {\n        paVar5 = &(__last2->section_name_).field_2;\n        *puVar9 = (__last2->input_section_).shndx_;\n        puVar9[1] = (__last2->input_section_).p2align_;\n        puVar9[2] = *(uint *)&(__last2->input_section_).u1_;\n        puVar9[3] = *(uint *)((int)&(__last2->input_section_).u1_ + 4);\n        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last2->input_section_).u2_;\n        puVar9[5] = (__last2->input_section_).section_order_index_;\n        pcVar1 = (__last2->section_name_)._M_dataplus._M_p;\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last2->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last2->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last2->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last2->section_name_)._M_dataplus._M_p;\n              goto LAB_00167706;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last2->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last2->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last2->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_00167706;\n            }\n          }\n          (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }\nLAB_00167706:\n        (__last2->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar2 = *(uint *)((int)&__last2->size_ + 4);\n        puVar9[0xc] = (uint)__last2->size_;\n        puVar9[0xd] = uVar2;\n        uVar2 = *(uint *)((int)&__last2->addralign_ + 4);\n        puVar9[0xe] = (uint)__last2->addralign_;\n        puVar9[0xf] = uVar2;\n        __last2 = __last2 + 1;\n      }\n      else {\n        paVar5 = &(__last1->section_name_).field_2;\n        *puVar9 = (__last1->input_section_).shndx_;\n        puVar9[1] = (__last1->input_section_).p2align_;\n        puVar9[2] = *(uint *)&(__last1->input_section_).u1_;\n        puVar9[3] = *(uint *)((int)&(__last1->input_section_).u1_ + 4);\n        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last1->input_section_).u2_;\n        puVar9[5] = (__last1->input_section_).section_order_index_;\n        pcVar1 = (__last1->section_name_)._M_dataplus._M_p;\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last1->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last1->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last1->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last1->section_name_)._M_dataplus._M_p;\n              goto LAB_001677ba;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last1->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last1->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last1->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_001677ba;\n            }\n          }\n          (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }\nLAB_001677ba:\n        (__last1->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar2 = *(uint *)((int)&__last1->size_ + 4);\n        puVar9[0xc] = (uint)__last1->size_;\n        puVar9[0xd] = uVar2;\n        uVar2 = *(uint *)((int)&__last1->addralign_ + 4);\n        puVar9[0xe] = (uint)__last1->addralign_;\n        puVar9[0xf] = uVar2;\n        __last1 = __last1 + 1;\n      }\n      puVar10 = puVar9 + 0x10;\n    } while ((__last1 != __first2) &&\n            (puVar10 = puVar9 + 0x10, puVar9 = puVar10, __last2 != __result._M_current));\n  }" if (parenthesized_expression "((__last1 != __first2) && (__last2 != __result._M_current))" ( (binary_expression "(__last1 != __first2) && (__last2 != __result._M_current)" (parenthesized_expression "(__last1 != __first2)" ( (binary_expression "__last1 != __first2" identifier != identifier) )) && (parenthesized_expression "(__last2 != __result._M_current)" ( (binary_expression "__last2 != __result._M_current" identifier != (field_expression "__result._M_current" identifier . field_identifier)) ))) )) (compound_statement "{\n    puVar9 = (uint *)__comp._M_comp.filename_sort_;\n    do {\n      bVar4 = gold::Input_section_sorter::operator()\n                        ((Input_section_sorter *)&__comp._M_comp.section_sort_,__last2,__last1);\n      if (bVar4) {\n        paVar5 = &(__last2->section_name_).field_2;\n        *puVar9 = (__last2->input_section_).shndx_;\n        puVar9[1] = (__last2->input_section_).p2align_;\n        puVar9[2] = *(uint *)&(__last2->input_section_).u1_;\n        puVar9[3] = *(uint *)((int)&(__last2->input_section_).u1_ + 4);\n        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last2->input_section_).u2_;\n        puVar9[5] = (__last2->input_section_).section_order_index_;\n        pcVar1 = (__last2->section_name_)._M_dataplus._M_p;\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last2->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last2->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last2->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last2->section_name_)._M_dataplus._M_p;\n              goto LAB_00167706;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last2->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last2->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last2->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_00167706;\n            }\n          }\n          (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }\nLAB_00167706:\n        (__last2->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar2 = *(uint *)((int)&__last2->size_ + 4);\n        puVar9[0xc] = (uint)__last2->size_;\n        puVar9[0xd] = uVar2;\n        uVar2 = *(uint *)((int)&__last2->addralign_ + 4);\n        puVar9[0xe] = (uint)__last2->addralign_;\n        puVar9[0xf] = uVar2;\n        __last2 = __last2 + 1;\n      }\n      else {\n        paVar5 = &(__last1->section_name_).field_2;\n        *puVar9 = (__last1->input_section_).shndx_;\n        puVar9[1] = (__last1->input_section_).p2align_;\n        puVar9[2] = *(uint *)&(__last1->input_section_).u1_;\n        puVar9[3] = *(uint *)((int)&(__last1->input_section_).u1_ + 4);\n        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last1->input_section_).u2_;\n        puVar9[5] = (__last1->input_section_).section_order_index_;\n        pcVar1 = (__last1->section_name_)._M_dataplus._M_p;\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last1->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last1->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last1->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last1->section_name_)._M_dataplus._M_p;\n              goto LAB_001677ba;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last1->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last1->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last1->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_001677ba;\n            }\n          }\n          (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }\nLAB_001677ba:\n        (__last1->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar2 = *(uint *)((int)&__last1->size_ + 4);\n        puVar9[0xc] = (uint)__last1->size_;\n        puVar9[0xd] = uVar2;\n        uVar2 = *(uint *)((int)&__last1->addralign_ + 4);\n        puVar9[0xe] = (uint)__last1->addralign_;\n        puVar9[0xf] = uVar2;\n        __last1 = __last1 + 1;\n      }\n      puVar10 = puVar9 + 0x10;\n    } while ((__last1 != __first2) &&\n            (puVar10 = puVar9 + 0x10, puVar9 = puVar10, __last2 != __result._M_current));\n  }" { (expression_statement "puVar9 = (uint *)__comp._M_comp.filename_sort_;" (assignment_expression "puVar9 = (uint *)__comp._M_comp.filename_sort_" identifier = (cast_expression "(uint *)__comp._M_comp.filename_sort_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "__comp._M_comp.filename_sort_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier))) ;) (do_statement "do {\n      bVar4 = gold::Input_section_sorter::operator()\n                        ((Input_section_sorter *)&__comp._M_comp.section_sort_,__last2,__last1);\n      if (bVar4) {\n        paVar5 = &(__last2->section_name_).field_2;\n        *puVar9 = (__last2->input_section_).shndx_;\n        puVar9[1] = (__last2->input_section_).p2align_;\n        puVar9[2] = *(uint *)&(__last2->input_section_).u1_;\n        puVar9[3] = *(uint *)((int)&(__last2->input_section_).u1_ + 4);\n        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last2->input_section_).u2_;\n        puVar9[5] = (__last2->input_section_).section_order_index_;\n        pcVar1 = (__last2->section_name_)._M_dataplus._M_p;\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last2->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last2->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last2->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last2->section_name_)._M_dataplus._M_p;\n              goto LAB_00167706;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last2->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last2->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last2->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_00167706;\n            }\n          }\n          (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }\nLAB_00167706:\n        (__last2->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar2 = *(uint *)((int)&__last2->size_ + 4);\n        puVar9[0xc] = (uint)__last2->size_;\n        puVar9[0xd] = uVar2;\n        uVar2 = *(uint *)((int)&__last2->addralign_ + 4);\n        puVar9[0xe] = (uint)__last2->addralign_;\n        puVar9[0xf] = uVar2;\n        __last2 = __last2 + 1;\n      }\n      else {\n        paVar5 = &(__last1->section_name_).field_2;\n        *puVar9 = (__last1->input_section_).shndx_;\n        puVar9[1] = (__last1->input_section_).p2align_;\n        puVar9[2] = *(uint *)&(__last1->input_section_).u1_;\n        puVar9[3] = *(uint *)((int)&(__last1->input_section_).u1_ + 4);\n        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last1->input_section_).u2_;\n        puVar9[5] = (__last1->input_section_).section_order_index_;\n        pcVar1 = (__last1->section_name_)._M_dataplus._M_p;\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last1->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last1->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last1->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last1->section_name_)._M_dataplus._M_p;\n              goto LAB_001677ba;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last1->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last1->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last1->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_001677ba;\n            }\n          }\n          (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }\nLAB_001677ba:\n        (__last1->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar2 = *(uint *)((int)&__last1->size_ + 4);\n        puVar9[0xc] = (uint)__last1->size_;\n        puVar9[0xd] = uVar2;\n        uVar2 = *(uint *)((int)&__last1->addralign_ + 4);\n        puVar9[0xe] = (uint)__last1->addralign_;\n        puVar9[0xf] = uVar2;\n        __last1 = __last1 + 1;\n      }\n      puVar10 = puVar9 + 0x10;\n    } while ((__last1 != __first2) &&\n            (puVar10 = puVar9 + 0x10, puVar9 = puVar10, __last2 != __result._M_current));" do (compound_statement "{\n      bVar4 = gold::Input_section_sorter::operator()\n                        ((Input_section_sorter *)&__comp._M_comp.section_sort_,__last2,__last1);\n      if (bVar4) {\n        paVar5 = &(__last2->section_name_).field_2;\n        *puVar9 = (__last2->input_section_).shndx_;\n        puVar9[1] = (__last2->input_section_).p2align_;\n        puVar9[2] = *(uint *)&(__last2->input_section_).u1_;\n        puVar9[3] = *(uint *)((int)&(__last2->input_section_).u1_ + 4);\n        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last2->input_section_).u2_;\n        puVar9[5] = (__last2->input_section_).section_order_index_;\n        pcVar1 = (__last2->section_name_)._M_dataplus._M_p;\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last2->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last2->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last2->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last2->section_name_)._M_dataplus._M_p;\n              goto LAB_00167706;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last2->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last2->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last2->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_00167706;\n            }\n          }\n          (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }\nLAB_00167706:\n        (__last2->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar2 = *(uint *)((int)&__last2->size_ + 4);\n        puVar9[0xc] = (uint)__last2->size_;\n        puVar9[0xd] = uVar2;\n        uVar2 = *(uint *)((int)&__last2->addralign_ + 4);\n        puVar9[0xe] = (uint)__last2->addralign_;\n        puVar9[0xf] = uVar2;\n        __last2 = __last2 + 1;\n      }\n      else {\n        paVar5 = &(__last1->section_name_).field_2;\n        *puVar9 = (__last1->input_section_).shndx_;\n        puVar9[1] = (__last1->input_section_).p2align_;\n        puVar9[2] = *(uint *)&(__last1->input_section_).u1_;\n        puVar9[3] = *(uint *)((int)&(__last1->input_section_).u1_ + 4);\n        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last1->input_section_).u2_;\n        puVar9[5] = (__last1->input_section_).section_order_index_;\n        pcVar1 = (__last1->section_name_)._M_dataplus._M_p;\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last1->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last1->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last1->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last1->section_name_)._M_dataplus._M_p;\n              goto LAB_001677ba;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last1->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last1->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last1->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_001677ba;\n            }\n          }\n          (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }\nLAB_001677ba:\n        (__last1->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar2 = *(uint *)((int)&__last1->size_ + 4);\n        puVar9[0xc] = (uint)__last1->size_;\n        puVar9[0xd] = uVar2;\n        uVar2 = *(uint *)((int)&__last1->addralign_ + 4);\n        puVar9[0xe] = (uint)__last1->addralign_;\n        puVar9[0xf] = uVar2;\n        __last1 = __last1 + 1;\n      }\n      puVar10 = puVar9 + 0x10;\n    }" { (ERROR "bVar4 = gold::" (assignment_expression "bVar4 = gold" identifier = identifier) : :) (labeled_statement "Input_section_sorter::operator()\n                        ((Input_section_sorter *)&__comp._M_comp.section_sort_,__last2,__last1);" statement_identifier : (ERROR ":" :) (expression_statement "operator()\n                        ((Input_section_sorter *)&__comp._M_comp.section_sort_,__last2,__last1);" (call_expression "operator()\n                        ((Input_section_sorter *)&__comp._M_comp.section_sort_,__last2,__last1)" (call_expression "operator()" identifier (argument_list "()" ( ))) (argument_list "((Input_section_sorter *)&__comp._M_comp.section_sort_,__last2,__last1)" ( (cast_expression "(Input_section_sorter *)&__comp._M_comp.section_sort_" ( (type_descriptor "Input_section_sorter *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__comp._M_comp.section_sort_" & (field_expression "__comp._M_comp.section_sort_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier))) , identifier , identifier ))) ;)) (if_statement "if (bVar4) {\n        paVar5 = &(__last2->section_name_).field_2;\n        *puVar9 = (__last2->input_section_).shndx_;\n        puVar9[1] = (__last2->input_section_).p2align_;\n        puVar9[2] = *(uint *)&(__last2->input_section_).u1_;\n        puVar9[3] = *(uint *)((int)&(__last2->input_section_).u1_ + 4);\n        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last2->input_section_).u2_;\n        puVar9[5] = (__last2->input_section_).section_order_index_;\n        pcVar1 = (__last2->section_name_)._M_dataplus._M_p;\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last2->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last2->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last2->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last2->section_name_)._M_dataplus._M_p;\n              goto LAB_00167706;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last2->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last2->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last2->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_00167706;\n            }\n          }\n          (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }\nLAB_00167706:\n        (__last2->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar2 = *(uint *)((int)&__last2->size_ + 4);\n        puVar9[0xc] = (uint)__last2->size_;\n        puVar9[0xd] = uVar2;\n        uVar2 = *(uint *)((int)&__last2->addralign_ + 4);\n        puVar9[0xe] = (uint)__last2->addralign_;\n        puVar9[0xf] = uVar2;\n        __last2 = __last2 + 1;\n      }\n      else {\n        paVar5 = &(__last1->section_name_).field_2;\n        *puVar9 = (__last1->input_section_).shndx_;\n        puVar9[1] = (__last1->input_section_).p2align_;\n        puVar9[2] = *(uint *)&(__last1->input_section_).u1_;\n        puVar9[3] = *(uint *)((int)&(__last1->input_section_).u1_ + 4);\n        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last1->input_section_).u2_;\n        puVar9[5] = (__last1->input_section_).section_order_index_;\n        pcVar1 = (__last1->section_name_)._M_dataplus._M_p;\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last1->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last1->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last1->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last1->section_name_)._M_dataplus._M_p;\n              goto LAB_001677ba;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last1->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last1->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last1->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_001677ba;\n            }\n          }\n          (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }\nLAB_001677ba:\n        (__last1->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar2 = *(uint *)((int)&__last1->size_ + 4);\n        puVar9[0xc] = (uint)__last1->size_;\n        puVar9[0xd] = uVar2;\n        uVar2 = *(uint *)((int)&__last1->addralign_ + 4);\n        puVar9[0xe] = (uint)__last1->addralign_;\n        puVar9[0xf] = uVar2;\n        __last1 = __last1 + 1;\n      }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n        paVar5 = &(__last2->section_name_).field_2;\n        *puVar9 = (__last2->input_section_).shndx_;\n        puVar9[1] = (__last2->input_section_).p2align_;\n        puVar9[2] = *(uint *)&(__last2->input_section_).u1_;\n        puVar9[3] = *(uint *)((int)&(__last2->input_section_).u1_ + 4);\n        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last2->input_section_).u2_;\n        puVar9[5] = (__last2->input_section_).section_order_index_;\n        pcVar1 = (__last2->section_name_)._M_dataplus._M_p;\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last2->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last2->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last2->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last2->section_name_)._M_dataplus._M_p;\n              goto LAB_00167706;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last2->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last2->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last2->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_00167706;\n            }\n          }\n          (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }\nLAB_00167706:\n        (__last2->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar2 = *(uint *)((int)&__last2->size_ + 4);\n        puVar9[0xc] = (uint)__last2->size_;\n        puVar9[0xd] = uVar2;\n        uVar2 = *(uint *)((int)&__last2->addralign_ + 4);\n        puVar9[0xe] = (uint)__last2->addralign_;\n        puVar9[0xf] = uVar2;\n        __last2 = __last2 + 1;\n      }" { (expression_statement "paVar5 = &(__last2->section_name_).field_2;" (assignment_expression "paVar5 = &(__last2->section_name_).field_2" identifier = (pointer_expression "&(__last2->section_name_).field_2" & (field_expression "(__last2->section_name_).field_2" (parenthesized_expression "(__last2->section_name_)" ( (field_expression "__last2->section_name_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar9 = (__last2->input_section_).shndx_;" (assignment_expression "*puVar9 = (__last2->input_section_).shndx_" (pointer_expression "*puVar9" * identifier) = (field_expression "(__last2->input_section_).shndx_" (parenthesized_expression "(__last2->input_section_)" ( (field_expression "__last2->input_section_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar9[1] = (__last2->input_section_).p2align_;" (assignment_expression "puVar9[1] = (__last2->input_section_).p2align_" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = (field_expression "(__last2->input_section_).p2align_" (parenthesized_expression "(__last2->input_section_)" ( (field_expression "__last2->input_section_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar9[2] = *(uint *)&(__last2->input_section_).u1_;" (assignment_expression "puVar9[2] = *(uint *)&(__last2->input_section_).u1_" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = (pointer_expression "*(uint *)&(__last2->input_section_).u1_" * (cast_expression "(uint *)&(__last2->input_section_).u1_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(__last2->input_section_).u1_" & (field_expression "(__last2->input_section_).u1_" (parenthesized_expression "(__last2->input_section_)" ( (field_expression "__last2->input_section_" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "puVar9[3] = *(uint *)((int)&(__last2->input_section_).u1_ + 4);" (assignment_expression "puVar9[3] = *(uint *)((int)&(__last2->input_section_).u1_ + 4)" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = (pointer_expression "*(uint *)((int)&(__last2->input_section_).u1_ + 4)" * (cast_expression "(uint *)((int)&(__last2->input_section_).u1_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__last2->input_section_).u1_ + 4)" ( (binary_expression "(int)&(__last2->input_section_).u1_ + 4" (cast_expression "(int)&(__last2->input_section_).u1_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__last2->input_section_).u1_" & (field_expression "(__last2->input_section_).u1_" (parenthesized_expression "(__last2->input_section_)" ( (field_expression "__last2->input_section_" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last2->input_section_).u2_;" (assignment_expression "*(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last2->input_section_).u2_" (pointer_expression "*(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4)" * (cast_expression "(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4)" ( (type_descriptor "anon_union_4_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 4)" ( (binary_expression "puVar9 + 4" identifier + number_literal) )))) = (field_expression "(__last2->input_section_).u2_" (parenthesized_expression "(__last2->input_section_)" ( (field_expression "__last2->input_section_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar9[5] = (__last2->input_section_).section_order_index_;" (assignment_expression "puVar9[5] = (__last2->input_section_).section_order_index_" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = (field_expression "(__last2->input_section_).section_order_index_" (parenthesized_expression "(__last2->input_section_)" ( (field_expression "__last2->input_section_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar1 = (__last2->section_name_)._M_dataplus._M_p;" (assignment_expression "pcVar1 = (__last2->section_name_)._M_dataplus._M_p" identifier = (field_expression "(__last2->section_name_)._M_dataplus._M_p" (field_expression "(__last2->section_name_)._M_dataplus" (parenthesized_expression "(__last2->section_name_)" ( (field_expression "__last2->section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];" (assignment_expression "paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6]" identifier = (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6]" ( (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                  *)puVar9[6]" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                  *)puVar9[6]" identifier * (ERROR ")" )) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) ))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last2->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last2->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last2->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last2->section_name_)._M_dataplus._M_p;\n              goto LAB_00167706;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last2->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last2->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last2->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_00167706;\n            }\n          }\n          (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5)" ( (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             *)pcVar1 == paVar5" (binary_expression "allocator<char>_>_9\n             *)pcVar1" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)pcVar1" identifier * (ERROR ")" )) identifier)) == identifier) )) )) (compound_statement "{\n          sVar7 = (__last2->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last2->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last2->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last2->section_name_)._M_dataplus._M_p;\n              goto LAB_00167706;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last2->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last2->section_name_)._M_dataplus._M_p;\n        }" { (expression_statement "sVar7 = (__last2->section_name_)._M_string_length;" (assignment_expression "sVar7 = (__last2->section_name_)._M_string_length" identifier = (field_expression "(__last2->section_name_)._M_string_length" (parenthesized_expression "(__last2->section_name_)" ( (field_expression "__last2->section_name_" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last2->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last2->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last2->section_name_)._M_dataplus._M_p;\n              goto LAB_00167706;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last2->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }" if (parenthesized_expression "(sVar7 != 0)" ( (binary_expression "sVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last2->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last2->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last2->section_name_)._M_dataplus._M_p;\n              goto LAB_00167706;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last2->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }" { (if_statement "if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last2->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last2->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last2->section_name_)._M_dataplus._M_p;\n              goto LAB_00167706;\n            }" if (parenthesized_expression "(sVar7 == 1)" ( (binary_expression "sVar7 == 1" identifier == number_literal) )) (compound_statement "{\n              paVar6->_M_local_buf[0] = (__last2->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last2->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last2->section_name_)._M_dataplus._M_p;\n              goto LAB_00167706;\n            }" { (expression_statement "paVar6->_M_local_buf[0] = (__last2->section_name_).field_2._M_local_buf[0];" (assignment_expression "paVar6->_M_local_buf[0] = (__last2->section_name_).field_2._M_local_buf[0]" (subscript_expression "paVar6->_M_local_buf[0]" (field_expression "paVar6->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "(__last2->section_name_).field_2._M_local_buf[0]" (field_expression "(__last2->section_name_).field_2._M_local_buf" (field_expression "(__last2->section_name_).field_2" (parenthesized_expression "(__last2->section_name_)" ( (field_expression "__last2->section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ])) ;) (expression_statement "uVar2 = (__last2->section_name_)._M_string_length;" (assignment_expression "uVar2 = (__last2->section_name_)._M_string_length" identifier = (field_expression "(__last2->section_name_)._M_string_length" (parenthesized_expression "(__last2->section_name_)" ( (field_expression "__last2->section_name_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar9[7] = uVar2;" (assignment_expression "puVar9[7] = uVar2" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar9[6] + uVar2) = 0;" (assignment_expression "*(undefined1 *)(puVar9[6] + uVar2) = 0" (pointer_expression "*(undefined1 *)(puVar9[6] + uVar2)" * (cast_expression "(undefined1 *)(puVar9[6] + uVar2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9[6] + uVar2)" ( (binary_expression "puVar9[6] + uVar2" (subscript_expression "puVar9[6]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) (expression_statement "paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last2->section_name_)._M_dataplus._M_p;" (assignment_expression "paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last2->section_name_)._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                        *)(__last2->section_name_)._M_dataplus._M_p" (field_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last2->section_name_)._M_dataplus" (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last2->section_name_)" (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 "(__last2->section_name_)" ( (field_expression "__last2->section_name_" identifier -> field_identifier) ))) . field_identifier) . field_identifier)) ;) (goto_statement "goto LAB_00167706;" goto statement_identifier ;) })) (expression_statement "memcpy(paVar6,pcVar1,sVar7);" (call_expression "memcpy(paVar6,pcVar1,sVar7)" identifier (argument_list "(paVar6,pcVar1,sVar7)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar7 = (__last2->section_name_)._M_string_length;" (assignment_expression "sVar7 = (__last2->section_name_)._M_string_length" identifier = (field_expression "(__last2->section_name_)._M_string_length" (parenthesized_expression "(__last2->section_name_)" ( (field_expression "__last2->section_name_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];" (assignment_expression "paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6]" identifier = (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6]" ( (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                      *)puVar9[6]" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                      *)puVar9[6]" identifier * (ERROR ")" )) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) ))) ;) })) (expression_statement "puVar9[7] = sVar7;" (assignment_expression "puVar9[7] = sVar7" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "paVar6->_M_local_buf[sVar7] = '\0';" (assignment_expression "paVar6->_M_local_buf[sVar7] = '\0'" (subscript_expression "paVar6->_M_local_buf[sVar7]" (field_expression "paVar6->_M_local_buf" identifier -> field_identifier) [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last2->section_name_)._M_dataplus._M_p;" (assignment_expression "paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last2->section_name_)._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                    *)(__last2->section_name_)._M_dataplus._M_p" (field_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last2->section_name_)._M_dataplus" (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last2->section_name_)" (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 "(__last2->section_name_)" ( (field_expression "__last2->section_name_" identifier -> field_identifier) ))) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last2->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_00167706;\n            }\n          }\n          (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }" else (compound_statement "{\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last2->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_00167706;\n            }\n          }\n          (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }" { (if_statement "if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last2->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_00167706;\n            }\n          }" if (parenthesized_expression "(paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8))" ( (binary_expression "paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)" identifier == (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)" (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 "(puVar9 + 8)" ( (binary_expression "puVar9 + 8" identifier + number_literal) )))) )) (compound_statement "{\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n          }" { (expression_statement "puVar9[6] = (uint)pcVar1;" (assignment_expression "puVar9[6] = (uint)pcVar1" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = (cast_expression "(uint)pcVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar9[7] = (__last2->section_name_)._M_string_length;" (assignment_expression "puVar9[7] = (__last2->section_name_)._M_string_length" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (field_expression "(__last2->section_name_)._M_string_length" (parenthesized_expression "(__last2->section_name_)" ( (field_expression "__last2->section_name_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;" (assignment_expression "puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = (field_expression "(__last2->section_name_).field_2._M_allocated_capacity" (field_expression "(__last2->section_name_).field_2" (parenthesized_expression "(__last2->section_name_)" ( (field_expression "__last2->section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last2->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_00167706;\n            }\n          }" else (compound_statement "{\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last2->section_name_)._M_string_length;\n            puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last2->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_00167706;\n            }\n          }" { (expression_statement "puVar9[6] = (uint)pcVar1;" (assignment_expression "puVar9[6] = (uint)pcVar1" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = (cast_expression "(uint)pcVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar2 = puVar9[8];" (assignment_expression "uVar2 = puVar9[8]" identifier = (subscript_expression "puVar9[8]" identifier [ number_literal ])) ;) (expression_statement "puVar9[7] = (__last2->section_name_)._M_string_length;" (assignment_expression "puVar9[7] = (__last2->section_name_)._M_string_length" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (field_expression "(__last2->section_name_)._M_string_length" (parenthesized_expression "(__last2->section_name_)" ( (field_expression "__last2->section_name_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity;" (assignment_expression "puVar9[8] = (__last2->section_name_).field_2._M_allocated_capacity" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = (field_expression "(__last2->section_name_).field_2._M_allocated_capacity" (field_expression "(__last2->section_name_).field_2" (parenthesized_expression "(__last2->section_name_)" ( (field_expression "__last2->section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last2->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_00167706;\n            }" if (parenthesized_expression "(paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0)" ( (binary_expression "paVar6 != (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)) ))) )) (compound_statement "{\n              (__last2->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last2->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_00167706;\n            }" { (expression_statement "(__last2->section_name_)._M_dataplus._M_p = (pointer)paVar6;" (assignment_expression "(__last2->section_name_)._M_dataplus._M_p = (pointer)paVar6" (field_expression "(__last2->section_name_)._M_dataplus._M_p" (field_expression "(__last2->section_name_)._M_dataplus" (parenthesized_expression "(__last2->section_name_)" ( (field_expression "__last2->section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar6" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "(__last2->section_name_).field_2._M_allocated_capacity = uVar2;" (assignment_expression "(__last2->section_name_).field_2._M_allocated_capacity = uVar2" (field_expression "(__last2->section_name_).field_2._M_allocated_capacity" (field_expression "(__last2->section_name_).field_2" (parenthesized_expression "(__last2->section_name_)" ( (field_expression "__last2->section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "paVar5 = paVar6;" (assignment_expression "paVar5 = paVar6" identifier = identifier) ;) (goto_statement "goto LAB_00167706;" goto statement_identifier ;) })) }))) (expression_statement "(__last2->section_name_)._M_dataplus._M_p = (pointer)paVar5;" (assignment_expression "(__last2->section_name_)._M_dataplus._M_p = (pointer)paVar5" (field_expression "(__last2->section_name_)._M_dataplus._M_p" (field_expression "(__last2->section_name_)._M_dataplus" (parenthesized_expression "(__last2->section_name_)" ( (field_expression "__last2->section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar5" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) }))) (labeled_statement "LAB_00167706:\n        (__last2->section_name_)._M_string_length = 0;" statement_identifier : (expression_statement "(__last2->section_name_)._M_string_length = 0;" (assignment_expression "(__last2->section_name_)._M_string_length = 0" (field_expression "(__last2->section_name_)._M_string_length" (parenthesized_expression "(__last2->section_name_)" ( (field_expression "__last2->section_name_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;)) (expression_statement "paVar5->_M_local_buf[0] = '\0';" (assignment_expression "paVar5->_M_local_buf[0] = '\0'" (subscript_expression "paVar5->_M_local_buf[0]" (field_expression "paVar5->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar2 = *(uint *)((int)&__last2->size_ + 4);" (assignment_expression "uVar2 = *(uint *)((int)&__last2->size_ + 4)" identifier = (pointer_expression "*(uint *)((int)&__last2->size_ + 4)" * (cast_expression "(uint *)((int)&__last2->size_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__last2->size_ + 4)" ( (binary_expression "(int)&__last2->size_ + 4" (cast_expression "(int)&__last2->size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__last2->size_" & (field_expression "__last2->size_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "puVar9[0xc] = (uint)__last2->size_;" (assignment_expression "puVar9[0xc] = (uint)__last2->size_" (subscript_expression "puVar9[0xc]" identifier [ number_literal ]) = (cast_expression "(uint)__last2->size_" ( (type_descriptor "uint" type_identifier) ) (field_expression "__last2->size_" identifier -> field_identifier))) ;) (expression_statement "puVar9[0xd] = uVar2;" (assignment_expression "puVar9[0xd] = uVar2" (subscript_expression "puVar9[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = *(uint *)((int)&__last2->addralign_ + 4);" (assignment_expression "uVar2 = *(uint *)((int)&__last2->addralign_ + 4)" identifier = (pointer_expression "*(uint *)((int)&__last2->addralign_ + 4)" * (cast_expression "(uint *)((int)&__last2->addralign_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__last2->addralign_ + 4)" ( (binary_expression "(int)&__last2->addralign_ + 4" (cast_expression "(int)&__last2->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__last2->addralign_" & (field_expression "__last2->addralign_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "puVar9[0xe] = (uint)__last2->addralign_;" (assignment_expression "puVar9[0xe] = (uint)__last2->addralign_" (subscript_expression "puVar9[0xe]" identifier [ number_literal ]) = (cast_expression "(uint)__last2->addralign_" ( (type_descriptor "uint" type_identifier) ) (field_expression "__last2->addralign_" identifier -> field_identifier))) ;) (expression_statement "puVar9[0xf] = uVar2;" (assignment_expression "puVar9[0xf] = uVar2" (subscript_expression "puVar9[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__last2 = __last2 + 1;" (assignment_expression "__last2 = __last2 + 1" identifier = (binary_expression "__last2 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n        paVar5 = &(__last1->section_name_).field_2;\n        *puVar9 = (__last1->input_section_).shndx_;\n        puVar9[1] = (__last1->input_section_).p2align_;\n        puVar9[2] = *(uint *)&(__last1->input_section_).u1_;\n        puVar9[3] = *(uint *)((int)&(__last1->input_section_).u1_ + 4);\n        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last1->input_section_).u2_;\n        puVar9[5] = (__last1->input_section_).section_order_index_;\n        pcVar1 = (__last1->section_name_)._M_dataplus._M_p;\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last1->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last1->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last1->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last1->section_name_)._M_dataplus._M_p;\n              goto LAB_001677ba;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last1->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last1->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last1->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_001677ba;\n            }\n          }\n          (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }\nLAB_001677ba:\n        (__last1->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar2 = *(uint *)((int)&__last1->size_ + 4);\n        puVar9[0xc] = (uint)__last1->size_;\n        puVar9[0xd] = uVar2;\n        uVar2 = *(uint *)((int)&__last1->addralign_ + 4);\n        puVar9[0xe] = (uint)__last1->addralign_;\n        puVar9[0xf] = uVar2;\n        __last1 = __last1 + 1;\n      }" else (compound_statement "{\n        paVar5 = &(__last1->section_name_).field_2;\n        *puVar9 = (__last1->input_section_).shndx_;\n        puVar9[1] = (__last1->input_section_).p2align_;\n        puVar9[2] = *(uint *)&(__last1->input_section_).u1_;\n        puVar9[3] = *(uint *)((int)&(__last1->input_section_).u1_ + 4);\n        *(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last1->input_section_).u2_;\n        puVar9[5] = (__last1->input_section_).section_order_index_;\n        pcVar1 = (__last1->section_name_)._M_dataplus._M_p;\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last1->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last1->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last1->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last1->section_name_)._M_dataplus._M_p;\n              goto LAB_001677ba;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last1->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last1->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last1->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_001677ba;\n            }\n          }\n          (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }\nLAB_001677ba:\n        (__last1->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar2 = *(uint *)((int)&__last1->size_ + 4);\n        puVar9[0xc] = (uint)__last1->size_;\n        puVar9[0xd] = uVar2;\n        uVar2 = *(uint *)((int)&__last1->addralign_ + 4);\n        puVar9[0xe] = (uint)__last1->addralign_;\n        puVar9[0xf] = uVar2;\n        __last1 = __last1 + 1;\n      }" { (expression_statement "paVar5 = &(__last1->section_name_).field_2;" (assignment_expression "paVar5 = &(__last1->section_name_).field_2" identifier = (pointer_expression "&(__last1->section_name_).field_2" & (field_expression "(__last1->section_name_).field_2" (parenthesized_expression "(__last1->section_name_)" ( (field_expression "__last1->section_name_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar9 = (__last1->input_section_).shndx_;" (assignment_expression "*puVar9 = (__last1->input_section_).shndx_" (pointer_expression "*puVar9" * identifier) = (field_expression "(__last1->input_section_).shndx_" (parenthesized_expression "(__last1->input_section_)" ( (field_expression "__last1->input_section_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar9[1] = (__last1->input_section_).p2align_;" (assignment_expression "puVar9[1] = (__last1->input_section_).p2align_" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = (field_expression "(__last1->input_section_).p2align_" (parenthesized_expression "(__last1->input_section_)" ( (field_expression "__last1->input_section_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar9[2] = *(uint *)&(__last1->input_section_).u1_;" (assignment_expression "puVar9[2] = *(uint *)&(__last1->input_section_).u1_" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = (pointer_expression "*(uint *)&(__last1->input_section_).u1_" * (cast_expression "(uint *)&(__last1->input_section_).u1_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(__last1->input_section_).u1_" & (field_expression "(__last1->input_section_).u1_" (parenthesized_expression "(__last1->input_section_)" ( (field_expression "__last1->input_section_" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "puVar9[3] = *(uint *)((int)&(__last1->input_section_).u1_ + 4);" (assignment_expression "puVar9[3] = *(uint *)((int)&(__last1->input_section_).u1_ + 4)" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = (pointer_expression "*(uint *)((int)&(__last1->input_section_).u1_ + 4)" * (cast_expression "(uint *)((int)&(__last1->input_section_).u1_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__last1->input_section_).u1_ + 4)" ( (binary_expression "(int)&(__last1->input_section_).u1_ + 4" (cast_expression "(int)&(__last1->input_section_).u1_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__last1->input_section_).u1_" & (field_expression "(__last1->input_section_).u1_" (parenthesized_expression "(__last1->input_section_)" ( (field_expression "__last1->input_section_" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last1->input_section_).u2_;" (assignment_expression "*(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4) = (__last1->input_section_).u2_" (pointer_expression "*(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4)" * (cast_expression "(anon_union_4_4_139239c7_for_u2_ *)(puVar9 + 4)" ( (type_descriptor "anon_union_4_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 4)" ( (binary_expression "puVar9 + 4" identifier + number_literal) )))) = (field_expression "(__last1->input_section_).u2_" (parenthesized_expression "(__last1->input_section_)" ( (field_expression "__last1->input_section_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar9[5] = (__last1->input_section_).section_order_index_;" (assignment_expression "puVar9[5] = (__last1->input_section_).section_order_index_" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = (field_expression "(__last1->input_section_).section_order_index_" (parenthesized_expression "(__last1->input_section_)" ( (field_expression "__last1->input_section_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar1 = (__last1->section_name_)._M_dataplus._M_p;" (assignment_expression "pcVar1 = (__last1->section_name_)._M_dataplus._M_p" identifier = (field_expression "(__last1->section_name_)._M_dataplus._M_p" (field_expression "(__last1->section_name_)._M_dataplus" (parenthesized_expression "(__last1->section_name_)" ( (field_expression "__last1->section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6];" (assignment_expression "paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6]" identifier = (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)puVar9[6]" ( (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                  *)puVar9[6]" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                  *)puVar9[6]" identifier * (ERROR ")" )) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) ))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5) {\n          sVar7 = (__last1->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last1->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last1->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last1->section_name_)._M_dataplus._M_p;\n              goto LAB_001677ba;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last1->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last1->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last1->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_001677ba;\n            }\n          }\n          (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar1 == paVar5)" ( (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             *)pcVar1 == paVar5" (binary_expression "allocator<char>_>_9\n             *)pcVar1" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)pcVar1" identifier * (ERROR ")" )) identifier)) == identifier) )) )) (compound_statement "{\n          sVar7 = (__last1->section_name_)._M_string_length;\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last1->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last1->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last1->section_name_)._M_dataplus._M_p;\n              goto LAB_001677ba;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last1->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          paVar6->_M_local_buf[sVar7] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last1->section_name_)._M_dataplus._M_p;\n        }" { (expression_statement "sVar7 = (__last1->section_name_)._M_string_length;" (assignment_expression "sVar7 = (__last1->section_name_)._M_string_length" identifier = (field_expression "(__last1->section_name_)._M_string_length" (parenthesized_expression "(__last1->section_name_)" ( (field_expression "__last1->section_name_" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last1->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last1->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last1->section_name_)._M_dataplus._M_p;\n              goto LAB_001677ba;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last1->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }" if (parenthesized_expression "(sVar7 != 0)" ( (binary_expression "sVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last1->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last1->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last1->section_name_)._M_dataplus._M_p;\n              goto LAB_001677ba;\n            }\n            memcpy(paVar6,pcVar1,sVar7);\n            sVar7 = (__last1->section_name_)._M_string_length;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];\n          }" { (if_statement "if (sVar7 == 1) {\n              paVar6->_M_local_buf[0] = (__last1->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last1->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last1->section_name_)._M_dataplus._M_p;\n              goto LAB_001677ba;\n            }" if (parenthesized_expression "(sVar7 == 1)" ( (binary_expression "sVar7 == 1" identifier == number_literal) )) (compound_statement "{\n              paVar6->_M_local_buf[0] = (__last1->section_name_).field_2._M_local_buf[0];\n              uVar2 = (__last1->section_name_)._M_string_length;\n              puVar9[7] = uVar2;\n              *(undefined1 *)(puVar9[6] + uVar2) = 0;\n              paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last1->section_name_)._M_dataplus._M_p;\n              goto LAB_001677ba;\n            }" { (expression_statement "paVar6->_M_local_buf[0] = (__last1->section_name_).field_2._M_local_buf[0];" (assignment_expression "paVar6->_M_local_buf[0] = (__last1->section_name_).field_2._M_local_buf[0]" (subscript_expression "paVar6->_M_local_buf[0]" (field_expression "paVar6->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "(__last1->section_name_).field_2._M_local_buf[0]" (field_expression "(__last1->section_name_).field_2._M_local_buf" (field_expression "(__last1->section_name_).field_2" (parenthesized_expression "(__last1->section_name_)" ( (field_expression "__last1->section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ])) ;) (expression_statement "uVar2 = (__last1->section_name_)._M_string_length;" (assignment_expression "uVar2 = (__last1->section_name_)._M_string_length" identifier = (field_expression "(__last1->section_name_)._M_string_length" (parenthesized_expression "(__last1->section_name_)" ( (field_expression "__last1->section_name_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar9[7] = uVar2;" (assignment_expression "puVar9[7] = uVar2" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar9[6] + uVar2) = 0;" (assignment_expression "*(undefined1 *)(puVar9[6] + uVar2) = 0" (pointer_expression "*(undefined1 *)(puVar9[6] + uVar2)" * (cast_expression "(undefined1 *)(puVar9[6] + uVar2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9[6] + uVar2)" ( (binary_expression "puVar9[6] + uVar2" (subscript_expression "puVar9[6]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) (expression_statement "paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last1->section_name_)._M_dataplus._M_p;" (assignment_expression "paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last1->section_name_)._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                        *)(__last1->section_name_)._M_dataplus._M_p" (field_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last1->section_name_)._M_dataplus" (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(__last1->section_name_)" (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 "(__last1->section_name_)" ( (field_expression "__last1->section_name_" identifier -> field_identifier) ))) . field_identifier) . field_identifier)) ;) (goto_statement "goto LAB_001677ba;" goto statement_identifier ;) })) (expression_statement "memcpy(paVar6,pcVar1,sVar7);" (call_expression "memcpy(paVar6,pcVar1,sVar7)" identifier (argument_list "(paVar6,pcVar1,sVar7)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar7 = (__last1->section_name_)._M_string_length;" (assignment_expression "sVar7 = (__last1->section_name_)._M_string_length" identifier = (field_expression "(__last1->section_name_)._M_string_length" (parenthesized_expression "(__last1->section_name_)" ( (field_expression "__last1->section_name_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6];" (assignment_expression "paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6]" identifier = (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)puVar9[6]" ( (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                      *)puVar9[6]" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                      *)puVar9[6]" identifier * (ERROR ")" )) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) ))) ;) })) (expression_statement "puVar9[7] = sVar7;" (assignment_expression "puVar9[7] = sVar7" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "paVar6->_M_local_buf[sVar7] = '\0';" (assignment_expression "paVar6->_M_local_buf[sVar7] = '\0'" (subscript_expression "paVar6->_M_local_buf[sVar7]" (field_expression "paVar6->_M_local_buf" identifier -> field_identifier) [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last1->section_name_)._M_dataplus._M_p;" (assignment_expression "paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last1->section_name_)._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                    *)(__last1->section_name_)._M_dataplus._M_p" (field_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last1->section_name_)._M_dataplus" (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(__last1->section_name_)" (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 "(__last1->section_name_)" ( (field_expression "__last1->section_name_" identifier -> field_identifier) ))) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last1->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_001677ba;\n            }\n          }\n          (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }" else (compound_statement "{\n          if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last1->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_001677ba;\n            }\n          }\n          (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        }" { (if_statement "if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)) {\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n          }\n          else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last1->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_001677ba;\n            }\n          }" if (parenthesized_expression "(paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8))" ( (binary_expression "paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)" identifier == (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)(puVar9 + 8)" (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 "(puVar9 + 8)" ( (binary_expression "puVar9 + 8" identifier + number_literal) )))) )) (compound_statement "{\n            puVar9[6] = (uint)pcVar1;\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n          }" { (expression_statement "puVar9[6] = (uint)pcVar1;" (assignment_expression "puVar9[6] = (uint)pcVar1" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = (cast_expression "(uint)pcVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar9[7] = (__last1->section_name_)._M_string_length;" (assignment_expression "puVar9[7] = (__last1->section_name_)._M_string_length" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (field_expression "(__last1->section_name_)._M_string_length" (parenthesized_expression "(__last1->section_name_)" ( (field_expression "__last1->section_name_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;" (assignment_expression "puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = (field_expression "(__last1->section_name_).field_2._M_allocated_capacity" (field_expression "(__last1->section_name_).field_2" (parenthesized_expression "(__last1->section_name_)" ( (field_expression "__last1->section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last1->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_001677ba;\n            }\n          }" else (compound_statement "{\n            puVar9[6] = (uint)pcVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = (__last1->section_name_)._M_string_length;\n            puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;\n            if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last1->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_001677ba;\n            }\n          }" { (expression_statement "puVar9[6] = (uint)pcVar1;" (assignment_expression "puVar9[6] = (uint)pcVar1" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = (cast_expression "(uint)pcVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar2 = puVar9[8];" (assignment_expression "uVar2 = puVar9[8]" identifier = (subscript_expression "puVar9[8]" identifier [ number_literal ])) ;) (expression_statement "puVar9[7] = (__last1->section_name_)._M_string_length;" (assignment_expression "puVar9[7] = (__last1->section_name_)._M_string_length" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (field_expression "(__last1->section_name_)._M_string_length" (parenthesized_expression "(__last1->section_name_)" ( (field_expression "__last1->section_name_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity;" (assignment_expression "puVar9[8] = (__last1->section_name_).field_2._M_allocated_capacity" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = (field_expression "(__last1->section_name_).field_2._M_allocated_capacity" (field_expression "(__last1->section_name_).field_2" (parenthesized_expression "(__last1->section_name_)" ( (field_expression "__last1->section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0) {\n              (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last1->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_001677ba;\n            }" if (parenthesized_expression "(paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)0x0)" ( (binary_expression "paVar6 != (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)) ))) )) (compound_statement "{\n              (__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6;\n              (__last1->section_name_).field_2._M_allocated_capacity = uVar2;\n              paVar5 = paVar6;\n              goto LAB_001677ba;\n            }" { (expression_statement "(__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6;" (assignment_expression "(__last1->section_name_)._M_dataplus._M_p = (pointer)paVar6" (field_expression "(__last1->section_name_)._M_dataplus._M_p" (field_expression "(__last1->section_name_)._M_dataplus" (parenthesized_expression "(__last1->section_name_)" ( (field_expression "__last1->section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar6" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "(__last1->section_name_).field_2._M_allocated_capacity = uVar2;" (assignment_expression "(__last1->section_name_).field_2._M_allocated_capacity = uVar2" (field_expression "(__last1->section_name_).field_2._M_allocated_capacity" (field_expression "(__last1->section_name_).field_2" (parenthesized_expression "(__last1->section_name_)" ( (field_expression "__last1->section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "paVar5 = paVar6;" (assignment_expression "paVar5 = paVar6" identifier = identifier) ;) (goto_statement "goto LAB_001677ba;" goto statement_identifier ;) })) }))) (expression_statement "(__last1->section_name_)._M_dataplus._M_p = (pointer)paVar5;" (assignment_expression "(__last1->section_name_)._M_dataplus._M_p = (pointer)paVar5" (field_expression "(__last1->section_name_)._M_dataplus._M_p" (field_expression "(__last1->section_name_)._M_dataplus" (parenthesized_expression "(__last1->section_name_)" ( (field_expression "__last1->section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar5" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) }))) (labeled_statement "LAB_001677ba:\n        (__last1->section_name_)._M_string_length = 0;" statement_identifier : (expression_statement "(__last1->section_name_)._M_string_length = 0;" (assignment_expression "(__last1->section_name_)._M_string_length = 0" (field_expression "(__last1->section_name_)._M_string_length" (parenthesized_expression "(__last1->section_name_)" ( (field_expression "__last1->section_name_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;)) (expression_statement "paVar5->_M_local_buf[0] = '\0';" (assignment_expression "paVar5->_M_local_buf[0] = '\0'" (subscript_expression "paVar5->_M_local_buf[0]" (field_expression "paVar5->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar2 = *(uint *)((int)&__last1->size_ + 4);" (assignment_expression "uVar2 = *(uint *)((int)&__last1->size_ + 4)" identifier = (pointer_expression "*(uint *)((int)&__last1->size_ + 4)" * (cast_expression "(uint *)((int)&__last1->size_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__last1->size_ + 4)" ( (binary_expression "(int)&__last1->size_ + 4" (cast_expression "(int)&__last1->size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__last1->size_" & (field_expression "__last1->size_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "puVar9[0xc] = (uint)__last1->size_;" (assignment_expression "puVar9[0xc] = (uint)__last1->size_" (subscript_expression "puVar9[0xc]" identifier [ number_literal ]) = (cast_expression "(uint)__last1->size_" ( (type_descriptor "uint" type_identifier) ) (field_expression "__last1->size_" identifier -> field_identifier))) ;) (expression_statement "puVar9[0xd] = uVar2;" (assignment_expression "puVar9[0xd] = uVar2" (subscript_expression "puVar9[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = *(uint *)((int)&__last1->addralign_ + 4);" (assignment_expression "uVar2 = *(uint *)((int)&__last1->addralign_ + 4)" identifier = (pointer_expression "*(uint *)((int)&__last1->addralign_ + 4)" * (cast_expression "(uint *)((int)&__last1->addralign_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__last1->addralign_ + 4)" ( (binary_expression "(int)&__last1->addralign_ + 4" (cast_expression "(int)&__last1->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__last1->addralign_" & (field_expression "__last1->addralign_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "puVar9[0xe] = (uint)__last1->addralign_;" (assignment_expression "puVar9[0xe] = (uint)__last1->addralign_" (subscript_expression "puVar9[0xe]" identifier [ number_literal ]) = (cast_expression "(uint)__last1->addralign_" ( (type_descriptor "uint" type_identifier) ) (field_expression "__last1->addralign_" identifier -> field_identifier))) ;) (expression_statement "puVar9[0xf] = uVar2;" (assignment_expression "puVar9[0xf] = uVar2" (subscript_expression "puVar9[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__last1 = __last1 + 1;" (assignment_expression "__last1 = __last1 + 1" identifier = (binary_expression "__last1 + 1" identifier + number_literal)) ;) }))) (expression_statement "puVar10 = puVar9 + 0x10;" (assignment_expression "puVar10 = puVar9 + 0x10" identifier = (binary_expression "puVar9 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "((__last1 != __first2) &&\n            (puVar10 = puVar9 + 0x10, puVar9 = puVar10, __last2 != __result._M_current))" ( (binary_expression "(__last1 != __first2) &&\n            (puVar10 = puVar9 + 0x10, puVar9 = puVar10, __last2 != __result._M_current)" (parenthesized_expression "(__last1 != __first2)" ( (binary_expression "__last1 != __first2" identifier != identifier) )) && (parenthesized_expression "(puVar10 = puVar9 + 0x10, puVar9 = puVar10, __last2 != __result._M_current)" ( (comma_expression "puVar10 = puVar9 + 0x10, puVar9 = puVar10, __last2 != __result._M_current" (assignment_expression "puVar10 = puVar9 + 0x10" identifier = (binary_expression "puVar9 + 0x10" identifier + number_literal)) , (comma_expression "puVar9 = puVar10, __last2 != __result._M_current" (assignment_expression "puVar9 = puVar10" identifier = identifier) , (binary_expression "__last2 != __result._M_current" identifier != (field_expression "__result._M_current" identifier . field_identifier)))) ))) )) ;) })) (expression_statement "iVar8 = (int)__first2 - (int)__last1 >> 6;" (assignment_expression "iVar8 = (int)__first2 - (int)__last1 >> 6" identifier = (binary_expression "(int)__first2 - (int)__last1 >> 6" (binary_expression "(int)__first2 - (int)__last1" (cast_expression "(int)__first2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__last1" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (if_statement "if (0 < (int)__first2 - (int)__last1) {\n    paVar5 = &(__last1->section_name_).field_2;\n    puVar9 = puVar10;\n    do {\n      *puVar9 = paVar5[-2]._M_allocated_capacity;\n      puVar9[1] = *(uint *)((int)paVar5 + -0x1c);\n      puVar9[2] = *(uint *)((int)paVar5 + -0x18);\n      puVar9[3] = *(uint *)((int)paVar5 + -0x14);\n      puVar9[4] = paVar5[-1]._M_allocated_capacity;\n      puVar9[5] = *(uint *)((int)paVar5 + -0xc);\n      pcVar1 = (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)puVar9[6];\n      if (paVar5 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)pcVar1) {\n        sVar7 = *(size_type *)((int)paVar5 + -4);\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            sVar3 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = sVar3;\n            *(undefined1 *)(puVar9[6] + sVar3) = 0;\n            paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)(pcVar1 + -8);\n            goto LAB_00167833;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        paVar6->_M_local_buf[sVar7] = '\0';\n        paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   **)(pcVar1 + -8);\n      }\n      else {\n        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)pcVar1;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)pcVar1;\n          sVar3 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = sVar3;\n            goto LAB_00167833;\n          }\n        }\n        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;\n        paVar6 = paVar5;\n      }\nLAB_00167833:\n      *(size_type *)((int)paVar5 + -4) = 0;\n      puVar10 = puVar9 + 0x10;\n      paVar6->_M_local_buf[0] = '\0';\n      uVar2 = *(uint *)((int)paVar5 + 0x14);\n      puVar9[0xc] = paVar5[1]._M_allocated_capacity;\n      puVar9[0xd] = uVar2;\n      uVar2 = *(uint *)((int)paVar5 + 0x1c);\n      puVar9[0xe] = *(uint *)((int)paVar5 + 0x18);\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      paVar5 = paVar5 + 4;\n      puVar9 = puVar10;\n    } while (iVar8 != 0);\n  }" if (parenthesized_expression "(0 < (int)__first2 - (int)__last1)" ( (binary_expression "0 < (int)__first2 - (int)__last1" number_literal < (binary_expression "(int)__first2 - (int)__last1" (cast_expression "(int)__first2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__last1" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n    paVar5 = &(__last1->section_name_).field_2;\n    puVar9 = puVar10;\n    do {\n      *puVar9 = paVar5[-2]._M_allocated_capacity;\n      puVar9[1] = *(uint *)((int)paVar5 + -0x1c);\n      puVar9[2] = *(uint *)((int)paVar5 + -0x18);\n      puVar9[3] = *(uint *)((int)paVar5 + -0x14);\n      puVar9[4] = paVar5[-1]._M_allocated_capacity;\n      puVar9[5] = *(uint *)((int)paVar5 + -0xc);\n      pcVar1 = (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)puVar9[6];\n      if (paVar5 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)pcVar1) {\n        sVar7 = *(size_type *)((int)paVar5 + -4);\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            sVar3 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = sVar3;\n            *(undefined1 *)(puVar9[6] + sVar3) = 0;\n            paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)(pcVar1 + -8);\n            goto LAB_00167833;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        paVar6->_M_local_buf[sVar7] = '\0';\n        paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   **)(pcVar1 + -8);\n      }\n      else {\n        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)pcVar1;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)pcVar1;\n          sVar3 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = sVar3;\n            goto LAB_00167833;\n          }\n        }\n        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;\n        paVar6 = paVar5;\n      }\nLAB_00167833:\n      *(size_type *)((int)paVar5 + -4) = 0;\n      puVar10 = puVar9 + 0x10;\n      paVar6->_M_local_buf[0] = '\0';\n      uVar2 = *(uint *)((int)paVar5 + 0x14);\n      puVar9[0xc] = paVar5[1]._M_allocated_capacity;\n      puVar9[0xd] = uVar2;\n      uVar2 = *(uint *)((int)paVar5 + 0x1c);\n      puVar9[0xe] = *(uint *)((int)paVar5 + 0x18);\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      paVar5 = paVar5 + 4;\n      puVar9 = puVar10;\n    } while (iVar8 != 0);\n  }" { (expression_statement "paVar5 = &(__last1->section_name_).field_2;" (assignment_expression "paVar5 = &(__last1->section_name_).field_2" identifier = (pointer_expression "&(__last1->section_name_).field_2" & (field_expression "(__last1->section_name_).field_2" (parenthesized_expression "(__last1->section_name_)" ( (field_expression "__last1->section_name_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "puVar9 = puVar10;" (assignment_expression "puVar9 = puVar10" identifier = identifier) ;) (do_statement "do {\n      *puVar9 = paVar5[-2]._M_allocated_capacity;\n      puVar9[1] = *(uint *)((int)paVar5 + -0x1c);\n      puVar9[2] = *(uint *)((int)paVar5 + -0x18);\n      puVar9[3] = *(uint *)((int)paVar5 + -0x14);\n      puVar9[4] = paVar5[-1]._M_allocated_capacity;\n      puVar9[5] = *(uint *)((int)paVar5 + -0xc);\n      pcVar1 = (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)puVar9[6];\n      if (paVar5 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)pcVar1) {\n        sVar7 = *(size_type *)((int)paVar5 + -4);\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            sVar3 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = sVar3;\n            *(undefined1 *)(puVar9[6] + sVar3) = 0;\n            paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)(pcVar1 + -8);\n            goto LAB_00167833;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        paVar6->_M_local_buf[sVar7] = '\0';\n        paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   **)(pcVar1 + -8);\n      }\n      else {\n        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)pcVar1;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)pcVar1;\n          sVar3 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = sVar3;\n            goto LAB_00167833;\n          }\n        }\n        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;\n        paVar6 = paVar5;\n      }\nLAB_00167833:\n      *(size_type *)((int)paVar5 + -4) = 0;\n      puVar10 = puVar9 + 0x10;\n      paVar6->_M_local_buf[0] = '\0';\n      uVar2 = *(uint *)((int)paVar5 + 0x14);\n      puVar9[0xc] = paVar5[1]._M_allocated_capacity;\n      puVar9[0xd] = uVar2;\n      uVar2 = *(uint *)((int)paVar5 + 0x1c);\n      puVar9[0xe] = *(uint *)((int)paVar5 + 0x18);\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      paVar5 = paVar5 + 4;\n      puVar9 = puVar10;\n    } while (iVar8 != 0);" do (compound_statement "{\n      *puVar9 = paVar5[-2]._M_allocated_capacity;\n      puVar9[1] = *(uint *)((int)paVar5 + -0x1c);\n      puVar9[2] = *(uint *)((int)paVar5 + -0x18);\n      puVar9[3] = *(uint *)((int)paVar5 + -0x14);\n      puVar9[4] = paVar5[-1]._M_allocated_capacity;\n      puVar9[5] = *(uint *)((int)paVar5 + -0xc);\n      pcVar1 = (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)puVar9[6];\n      if (paVar5 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)pcVar1) {\n        sVar7 = *(size_type *)((int)paVar5 + -4);\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            sVar3 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = sVar3;\n            *(undefined1 *)(puVar9[6] + sVar3) = 0;\n            paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)(pcVar1 + -8);\n            goto LAB_00167833;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        paVar6->_M_local_buf[sVar7] = '\0';\n        paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   **)(pcVar1 + -8);\n      }\n      else {\n        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)pcVar1;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)pcVar1;\n          sVar3 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = sVar3;\n            goto LAB_00167833;\n          }\n        }\n        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;\n        paVar6 = paVar5;\n      }\nLAB_00167833:\n      *(size_type *)((int)paVar5 + -4) = 0;\n      puVar10 = puVar9 + 0x10;\n      paVar6->_M_local_buf[0] = '\0';\n      uVar2 = *(uint *)((int)paVar5 + 0x14);\n      puVar9[0xc] = paVar5[1]._M_allocated_capacity;\n      puVar9[0xd] = uVar2;\n      uVar2 = *(uint *)((int)paVar5 + 0x1c);\n      puVar9[0xe] = *(uint *)((int)paVar5 + 0x18);\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      paVar5 = paVar5 + 4;\n      puVar9 = puVar10;\n    }" { (expression_statement "*puVar9 = paVar5[-2]._M_allocated_capacity;" (assignment_expression "*puVar9 = paVar5[-2]._M_allocated_capacity" (pointer_expression "*puVar9" * identifier) = (field_expression "paVar5[-2]._M_allocated_capacity" (subscript_expression "paVar5[-2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "puVar9[1] = *(uint *)((int)paVar5 + -0x1c);" (assignment_expression "puVar9[1] = *(uint *)((int)paVar5 + -0x1c)" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = (pointer_expression "*(uint *)((int)paVar5 + -0x1c)" * (cast_expression "(uint *)((int)paVar5 + -0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -0x1c)" ( (binary_expression "(int)paVar5 + -0x1c" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar9[2] = *(uint *)((int)paVar5 + -0x18);" (assignment_expression "puVar9[2] = *(uint *)((int)paVar5 + -0x18)" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = (pointer_expression "*(uint *)((int)paVar5 + -0x18)" * (cast_expression "(uint *)((int)paVar5 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -0x18)" ( (binary_expression "(int)paVar5 + -0x18" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar9[3] = *(uint *)((int)paVar5 + -0x14);" (assignment_expression "puVar9[3] = *(uint *)((int)paVar5 + -0x14)" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = (pointer_expression "*(uint *)((int)paVar5 + -0x14)" * (cast_expression "(uint *)((int)paVar5 + -0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -0x14)" ( (binary_expression "(int)paVar5 + -0x14" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar9[4] = paVar5[-1]._M_allocated_capacity;" (assignment_expression "puVar9[4] = paVar5[-1]._M_allocated_capacity" (subscript_expression "puVar9[4]" identifier [ number_literal ]) = (field_expression "paVar5[-1]._M_allocated_capacity" (subscript_expression "paVar5[-1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "puVar9[5] = *(uint *)((int)paVar5 + -0xc);" (assignment_expression "puVar9[5] = *(uint *)((int)paVar5 + -0xc)" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = (pointer_expression "*(uint *)((int)paVar5 + -0xc)" * (cast_expression "(uint *)((int)paVar5 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -0xc)" ( (binary_expression "(int)paVar5 + -0xc" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pcVar1 = (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;" (assignment_expression "pcVar1 = (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p" identifier = (field_expression "(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar5 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar5 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar5 + -8))" ( (cast_expression "(string *)((int)paVar5 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -8)" ( (binary_expression "(int)paVar5 + -8" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)puVar9[6];" (assignment_expression "paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)puVar9[6]" identifier = (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)puVar9[6]" ( (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                *)puVar9[6]" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                *)puVar9[6]" identifier * (ERROR ")" )) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) ))) ;) (if_statement "if (paVar5 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)pcVar1) {\n        sVar7 = *(size_type *)((int)paVar5 + -4);\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            sVar3 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = sVar3;\n            *(undefined1 *)(puVar9[6] + sVar3) = 0;\n            paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)(pcVar1 + -8);\n            goto LAB_00167833;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        paVar6->_M_local_buf[sVar7] = '\0';\n        paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   **)(pcVar1 + -8);\n      }\n      else {\n        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)pcVar1;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)pcVar1;\n          sVar3 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = sVar3;\n            goto LAB_00167833;\n          }\n        }\n        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;\n        paVar6 = paVar5;\n      }" if (parenthesized_expression "(paVar5 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)pcVar1)" ( (binary_expression "paVar5 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)pcVar1)" identifier == (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)pcVar1)" ( (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                     *)pcVar1" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                     *)pcVar1" identifier * (ERROR ")" )) identifier)) ))) )) (compound_statement "{\n        sVar7 = *(size_type *)((int)paVar5 + -4);\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            sVar3 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = sVar3;\n            *(undefined1 *)(puVar9[6] + sVar3) = 0;\n            paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)(pcVar1 + -8);\n            goto LAB_00167833;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        paVar6->_M_local_buf[sVar7] = '\0';\n        paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   **)(pcVar1 + -8);\n      }" { (expression_statement "sVar7 = *(size_type *)((int)paVar5 + -4);" (assignment_expression "sVar7 = *(size_type *)((int)paVar5 + -4)" identifier = (pointer_expression "*(size_type *)((int)paVar5 + -4)" * (cast_expression "(size_type *)((int)paVar5 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -4)" ( (binary_expression "(int)paVar5 + -4" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            sVar3 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = sVar3;\n            *(undefined1 *)(puVar9[6] + sVar3) = 0;\n            paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)(pcVar1 + -8);\n            goto LAB_00167833;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }" if (parenthesized_expression "(sVar7 != 0)" ( (binary_expression "sVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            sVar3 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = sVar3;\n            *(undefined1 *)(puVar9[6] + sVar3) = 0;\n            paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)(pcVar1 + -8);\n            goto LAB_00167833;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }" { (if_statement "if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            sVar3 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = sVar3;\n            *(undefined1 *)(puVar9[6] + sVar3) = 0;\n            paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)(pcVar1 + -8);\n            goto LAB_00167833;\n          }" if (parenthesized_expression "(sVar7 == 1)" ( (binary_expression "sVar7 == 1" identifier == number_literal) )) (compound_statement "{\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            sVar3 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = sVar3;\n            *(undefined1 *)(puVar9[6] + sVar3) = 0;\n            paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)(pcVar1 + -8);\n            goto LAB_00167833;\n          }" { (expression_statement "paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];" (assignment_expression "paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0]" (subscript_expression "paVar6->_M_local_buf[0]" (field_expression "paVar6->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "paVar5->_M_local_buf[0]" (field_expression "paVar5->_M_local_buf" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "sVar3 = *(size_type *)((int)paVar5 + -4);" (assignment_expression "sVar3 = *(size_type *)((int)paVar5 + -4)" identifier = (pointer_expression "*(size_type *)((int)paVar5 + -4)" * (cast_expression "(size_type *)((int)paVar5 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -4)" ( (binary_expression "(int)paVar5 + -4" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar9[7] = sVar3;" (assignment_expression "puVar9[7] = sVar3" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar9[6] + sVar3) = 0;" (assignment_expression "*(undefined1 *)(puVar9[6] + sVar3) = 0" (pointer_expression "*(undefined1 *)(puVar9[6] + sVar3)" * (cast_expression "(undefined1 *)(puVar9[6] + sVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9[6] + sVar3)" ( (binary_expression "puVar9[6] + sVar3" (subscript_expression "puVar9[6]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) (expression_statement "paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)(pcVar1 + -8);" (assignment_expression "paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)(pcVar1 + -8)" identifier = (pointer_expression "*(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)(pcVar1 + -8)" * (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       **)(pcVar1 + -8)" (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 "(pcVar1 + -8)" ( (binary_expression "pcVar1 + -8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00167833;" goto statement_identifier ;) })) (expression_statement "memcpy(paVar6,paVar5,sVar7);" (call_expression "memcpy(paVar6,paVar5,sVar7)" identifier (argument_list "(paVar6,paVar5,sVar7)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar7 = *(size_type *)((int)paVar5 + -4);" (assignment_expression "sVar7 = *(size_type *)((int)paVar5 + -4)" identifier = (pointer_expression "*(size_type *)((int)paVar5 + -4)" * (cast_expression "(size_type *)((int)paVar5 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -4)" ( (binary_expression "(int)paVar5 + -4" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];" (assignment_expression "paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6]" identifier = (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6]" ( (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                    *)puVar9[6]" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                    *)puVar9[6]" identifier * (ERROR ")" )) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) ))) ;) })) (expression_statement "puVar9[7] = sVar7;" (assignment_expression "puVar9[7] = sVar7" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "paVar6->_M_local_buf[sVar7] = '\0';" (assignment_expression "paVar6->_M_local_buf[sVar7] = '\0'" (subscript_expression "paVar6->_M_local_buf[sVar7]" (field_expression "paVar6->_M_local_buf" identifier -> field_identifier) [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   **)(pcVar1 + -8);" (assignment_expression "paVar6 = *(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   **)(pcVar1 + -8)" identifier = (pointer_expression "*(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   **)(pcVar1 + -8)" * (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   **)(pcVar1 + -8)" (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 "(pcVar1 + -8)" ( (binary_expression "pcVar1 + -8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)pcVar1;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)pcVar1;\n          sVar3 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = sVar3;\n            goto LAB_00167833;\n          }\n        }\n        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;\n        paVar6 = paVar5;\n      }" else (compound_statement "{\n        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)pcVar1;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)pcVar1;\n          sVar3 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = sVar3;\n            goto LAB_00167833;\n          }\n        }\n        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;\n        paVar6 = paVar5;\n      }" { (if_statement "if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)pcVar1;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)pcVar1;\n          sVar3 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = sVar3;\n            goto LAB_00167833;\n          }\n        }" if (parenthesized_expression "(paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8))" ( (binary_expression "paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)" identifier == (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)" (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 "(puVar9 + 8)" ( (binary_expression "puVar9 + 8" identifier + number_literal) )))) )) (compound_statement "{\n          puVar9[6] = (uint)pcVar1;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }" { (expression_statement "puVar9[6] = (uint)pcVar1;" (assignment_expression "puVar9[6] = (uint)pcVar1" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = (cast_expression "(uint)pcVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar9[7] = *(size_type *)((int)paVar5 + -4);" (assignment_expression "puVar9[7] = *(size_type *)((int)paVar5 + -4)" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (pointer_expression "*(size_type *)((int)paVar5 + -4)" * (cast_expression "(size_type *)((int)paVar5 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -4)" ( (binary_expression "(int)paVar5 + -4" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar9[8] = paVar5->_M_allocated_capacity;" (assignment_expression "puVar9[8] = paVar5->_M_allocated_capacity" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = (field_expression "paVar5->_M_allocated_capacity" identifier -> field_identifier)) ;) }) (else_clause "else {\n          puVar9[6] = (uint)pcVar1;\n          sVar3 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = sVar3;\n            goto LAB_00167833;\n          }\n        }" else (compound_statement "{\n          puVar9[6] = (uint)pcVar1;\n          sVar3 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = sVar3;\n            goto LAB_00167833;\n          }\n        }" { (expression_statement "puVar9[6] = (uint)pcVar1;" (assignment_expression "puVar9[6] = (uint)pcVar1" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = (cast_expression "(uint)pcVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "sVar3 = puVar9[8];" (assignment_expression "sVar3 = puVar9[8]" identifier = (subscript_expression "puVar9[8]" identifier [ number_literal ])) ;) (expression_statement "puVar9[7] = *(size_type *)((int)paVar5 + -4);" (assignment_expression "puVar9[7] = *(size_type *)((int)paVar5 + -4)" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (pointer_expression "*(size_type *)((int)paVar5 + -4)" * (cast_expression "(size_type *)((int)paVar5 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -4)" ( (binary_expression "(int)paVar5 + -4" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar9[8] = paVar5->_M_allocated_capacity;" (assignment_expression "puVar9[8] = paVar5->_M_allocated_capacity" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = (field_expression "paVar5->_M_allocated_capacity" identifier -> field_identifier)) ;) (if_statement "if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = sVar3;\n            goto LAB_00167833;\n          }" if (parenthesized_expression "(paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0)" ( (binary_expression "paVar6 != (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)) ))) )) (compound_statement "{\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = sVar3;\n            goto LAB_00167833;\n          }" { (expression_statement "(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;" (assignment_expression "(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6" (field_expression "(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar5 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar5 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar5 + -8))" ( (cast_expression "(string *)((int)paVar5 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -8)" ( (binary_expression "(int)paVar5 + -8" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar6" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "paVar5->_M_allocated_capacity = sVar3;" (assignment_expression "paVar5->_M_allocated_capacity = sVar3" (field_expression "paVar5->_M_allocated_capacity" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_00167833;" goto statement_identifier ;) })) }))) (expression_statement "(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;" (assignment_expression "(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5" (field_expression "(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar5 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar5 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar5 + -8))" ( (cast_expression "(string *)((int)paVar5 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -8)" ( (binary_expression "(int)paVar5 + -8" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar5" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "paVar6 = paVar5;" (assignment_expression "paVar6 = paVar5" identifier = identifier) ;) }))) (labeled_statement "LAB_00167833:\n      *(size_type *)((int)paVar5 + -4) = 0;" statement_identifier : (expression_statement "*(size_type *)((int)paVar5 + -4) = 0;" (assignment_expression "*(size_type *)((int)paVar5 + -4) = 0" (pointer_expression "*(size_type *)((int)paVar5 + -4)" * (cast_expression "(size_type *)((int)paVar5 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -4)" ( (binary_expression "(int)paVar5 + -4" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;)) (expression_statement "puVar10 = puVar9 + 0x10;" (assignment_expression "puVar10 = puVar9 + 0x10" identifier = (binary_expression "puVar9 + 0x10" identifier + number_literal)) ;) (expression_statement "paVar6->_M_local_buf[0] = '\0';" (assignment_expression "paVar6->_M_local_buf[0] = '\0'" (subscript_expression "paVar6->_M_local_buf[0]" (field_expression "paVar6->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar2 = *(uint *)((int)paVar5 + 0x14);" (assignment_expression "uVar2 = *(uint *)((int)paVar5 + 0x14)" identifier = (pointer_expression "*(uint *)((int)paVar5 + 0x14)" * (cast_expression "(uint *)((int)paVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + 0x14)" ( (binary_expression "(int)paVar5 + 0x14" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar9[0xc] = paVar5[1]._M_allocated_capacity;" (assignment_expression "puVar9[0xc] = paVar5[1]._M_allocated_capacity" (subscript_expression "puVar9[0xc]" identifier [ number_literal ]) = (field_expression "paVar5[1]._M_allocated_capacity" (subscript_expression "paVar5[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "puVar9[0xd] = uVar2;" (assignment_expression "puVar9[0xd] = uVar2" (subscript_expression "puVar9[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = *(uint *)((int)paVar5 + 0x1c);" (assignment_expression "uVar2 = *(uint *)((int)paVar5 + 0x1c)" identifier = (pointer_expression "*(uint *)((int)paVar5 + 0x1c)" * (cast_expression "(uint *)((int)paVar5 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + 0x1c)" ( (binary_expression "(int)paVar5 + 0x1c" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar9[0xe] = *(uint *)((int)paVar5 + 0x18);" (assignment_expression "puVar9[0xe] = *(uint *)((int)paVar5 + 0x18)" (subscript_expression "puVar9[0xe]" identifier [ number_literal ]) = (pointer_expression "*(uint *)((int)paVar5 + 0x18)" * (cast_expression "(uint *)((int)paVar5 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + 0x18)" ( (binary_expression "(int)paVar5 + 0x18" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar9[0xf] = uVar2;" (assignment_expression "puVar9[0xf] = uVar2" (subscript_expression "puVar9[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "paVar5 = paVar5 + 4;" (assignment_expression "paVar5 = paVar5 + 4" identifier = (binary_expression "paVar5 + 4" identifier + number_literal)) ;) (expression_statement "puVar9 = puVar10;" (assignment_expression "puVar9 = puVar10" identifier = identifier) ;) }) while (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) ;) })) (expression_statement "iVar8 = (int)__result._M_current - (int)__last2 >> 6;" (assignment_expression "iVar8 = (int)__result._M_current - (int)__last2 >> 6" identifier = (binary_expression "(int)__result._M_current - (int)__last2 >> 6" (binary_expression "(int)__result._M_current - (int)__last2" (cast_expression "(int)__result._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__result._M_current" identifier . field_identifier)) - (cast_expression "(int)__last2" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (if_statement "if (0 < (int)__result._M_current - (int)__last2) {\n    puVar9 = puVar10;\n    paVar5 = &(__last2->section_name_).field_2;\n    do {\n      *puVar9 = paVar5[-2]._M_allocated_capacity;\n      puVar9[1] = *(uint *)((int)paVar5 + -0x1c);\n      puVar9[2] = *(uint *)((int)paVar5 + -0x18);\n      puVar9[3] = *(uint *)((int)paVar5 + -0x14);\n      puVar9[4] = paVar5[-1]._M_allocated_capacity;\n      puVar9[5] = *(uint *)((int)paVar5 + -0xc);\n      puVar10 = (uint *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)puVar9[6];\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)puVar10 == paVar5) {\n        sVar7 = *(size_type *)((int)paVar5 + -4);\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            uVar2 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = uVar2;\n            *(undefined1 *)(puVar9[6] + uVar2) = 0;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n            goto LAB_001679c9;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        paVar6->_M_local_buf[sVar7] = '\0';\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      }\n      else {\n        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)puVar10;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)puVar10;\n          uVar2 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;\n        paVar6 = paVar5;\n      }\nLAB_001679c9:\n      *(uint *)((int)paVar5 + -4) = 0;\n      puVar10 = puVar9 + 0x10;\n      paVar6->_M_local_buf[0] = '\0';\n      uVar2 = *(uint *)((int)paVar5 + 0x14);\n      puVar9[0xc] = paVar5[1]._M_allocated_capacity;\n      puVar9[0xd] = uVar2;\n      uVar2 = *(uint *)((int)paVar5 + 0x1c);\n      puVar9[0xe] = *(uint *)((int)paVar5 + 0x18);\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar10;\n      paVar5 = paVar5 + 4;\n    } while (iVar8 != 0);\n  }" if (parenthesized_expression "(0 < (int)__result._M_current - (int)__last2)" ( (binary_expression "0 < (int)__result._M_current - (int)__last2" number_literal < (binary_expression "(int)__result._M_current - (int)__last2" (cast_expression "(int)__result._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__result._M_current" identifier . field_identifier)) - (cast_expression "(int)__last2" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n    puVar9 = puVar10;\n    paVar5 = &(__last2->section_name_).field_2;\n    do {\n      *puVar9 = paVar5[-2]._M_allocated_capacity;\n      puVar9[1] = *(uint *)((int)paVar5 + -0x1c);\n      puVar9[2] = *(uint *)((int)paVar5 + -0x18);\n      puVar9[3] = *(uint *)((int)paVar5 + -0x14);\n      puVar9[4] = paVar5[-1]._M_allocated_capacity;\n      puVar9[5] = *(uint *)((int)paVar5 + -0xc);\n      puVar10 = (uint *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)puVar9[6];\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)puVar10 == paVar5) {\n        sVar7 = *(size_type *)((int)paVar5 + -4);\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            uVar2 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = uVar2;\n            *(undefined1 *)(puVar9[6] + uVar2) = 0;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n            goto LAB_001679c9;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        paVar6->_M_local_buf[sVar7] = '\0';\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      }\n      else {\n        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)puVar10;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)puVar10;\n          uVar2 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;\n        paVar6 = paVar5;\n      }\nLAB_001679c9:\n      *(uint *)((int)paVar5 + -4) = 0;\n      puVar10 = puVar9 + 0x10;\n      paVar6->_M_local_buf[0] = '\0';\n      uVar2 = *(uint *)((int)paVar5 + 0x14);\n      puVar9[0xc] = paVar5[1]._M_allocated_capacity;\n      puVar9[0xd] = uVar2;\n      uVar2 = *(uint *)((int)paVar5 + 0x1c);\n      puVar9[0xe] = *(uint *)((int)paVar5 + 0x18);\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar10;\n      paVar5 = paVar5 + 4;\n    } while (iVar8 != 0);\n  }" { (expression_statement "puVar9 = puVar10;" (assignment_expression "puVar9 = puVar10" identifier = identifier) ;) (expression_statement "paVar5 = &(__last2->section_name_).field_2;" (assignment_expression "paVar5 = &(__last2->section_name_).field_2" identifier = (pointer_expression "&(__last2->section_name_).field_2" & (field_expression "(__last2->section_name_).field_2" (parenthesized_expression "(__last2->section_name_)" ( (field_expression "__last2->section_name_" identifier -> field_identifier) )) . field_identifier))) ;) (do_statement "do {\n      *puVar9 = paVar5[-2]._M_allocated_capacity;\n      puVar9[1] = *(uint *)((int)paVar5 + -0x1c);\n      puVar9[2] = *(uint *)((int)paVar5 + -0x18);\n      puVar9[3] = *(uint *)((int)paVar5 + -0x14);\n      puVar9[4] = paVar5[-1]._M_allocated_capacity;\n      puVar9[5] = *(uint *)((int)paVar5 + -0xc);\n      puVar10 = (uint *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)puVar9[6];\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)puVar10 == paVar5) {\n        sVar7 = *(size_type *)((int)paVar5 + -4);\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            uVar2 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = uVar2;\n            *(undefined1 *)(puVar9[6] + uVar2) = 0;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n            goto LAB_001679c9;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        paVar6->_M_local_buf[sVar7] = '\0';\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      }\n      else {\n        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)puVar10;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)puVar10;\n          uVar2 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;\n        paVar6 = paVar5;\n      }\nLAB_001679c9:\n      *(uint *)((int)paVar5 + -4) = 0;\n      puVar10 = puVar9 + 0x10;\n      paVar6->_M_local_buf[0] = '\0';\n      uVar2 = *(uint *)((int)paVar5 + 0x14);\n      puVar9[0xc] = paVar5[1]._M_allocated_capacity;\n      puVar9[0xd] = uVar2;\n      uVar2 = *(uint *)((int)paVar5 + 0x1c);\n      puVar9[0xe] = *(uint *)((int)paVar5 + 0x18);\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar10;\n      paVar5 = paVar5 + 4;\n    } while (iVar8 != 0);" do (compound_statement "{\n      *puVar9 = paVar5[-2]._M_allocated_capacity;\n      puVar9[1] = *(uint *)((int)paVar5 + -0x1c);\n      puVar9[2] = *(uint *)((int)paVar5 + -0x18);\n      puVar9[3] = *(uint *)((int)paVar5 + -0x14);\n      puVar9[4] = paVar5[-1]._M_allocated_capacity;\n      puVar9[5] = *(uint *)((int)paVar5 + -0xc);\n      puVar10 = (uint *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)puVar9[6];\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)puVar10 == paVar5) {\n        sVar7 = *(size_type *)((int)paVar5 + -4);\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            uVar2 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = uVar2;\n            *(undefined1 *)(puVar9[6] + uVar2) = 0;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n            goto LAB_001679c9;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        paVar6->_M_local_buf[sVar7] = '\0';\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      }\n      else {\n        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)puVar10;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)puVar10;\n          uVar2 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;\n        paVar6 = paVar5;\n      }\nLAB_001679c9:\n      *(uint *)((int)paVar5 + -4) = 0;\n      puVar10 = puVar9 + 0x10;\n      paVar6->_M_local_buf[0] = '\0';\n      uVar2 = *(uint *)((int)paVar5 + 0x14);\n      puVar9[0xc] = paVar5[1]._M_allocated_capacity;\n      puVar9[0xd] = uVar2;\n      uVar2 = *(uint *)((int)paVar5 + 0x1c);\n      puVar9[0xe] = *(uint *)((int)paVar5 + 0x18);\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar10;\n      paVar5 = paVar5 + 4;\n    }" { (expression_statement "*puVar9 = paVar5[-2]._M_allocated_capacity;" (assignment_expression "*puVar9 = paVar5[-2]._M_allocated_capacity" (pointer_expression "*puVar9" * identifier) = (field_expression "paVar5[-2]._M_allocated_capacity" (subscript_expression "paVar5[-2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "puVar9[1] = *(uint *)((int)paVar5 + -0x1c);" (assignment_expression "puVar9[1] = *(uint *)((int)paVar5 + -0x1c)" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = (pointer_expression "*(uint *)((int)paVar5 + -0x1c)" * (cast_expression "(uint *)((int)paVar5 + -0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -0x1c)" ( (binary_expression "(int)paVar5 + -0x1c" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar9[2] = *(uint *)((int)paVar5 + -0x18);" (assignment_expression "puVar9[2] = *(uint *)((int)paVar5 + -0x18)" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = (pointer_expression "*(uint *)((int)paVar5 + -0x18)" * (cast_expression "(uint *)((int)paVar5 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -0x18)" ( (binary_expression "(int)paVar5 + -0x18" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar9[3] = *(uint *)((int)paVar5 + -0x14);" (assignment_expression "puVar9[3] = *(uint *)((int)paVar5 + -0x14)" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = (pointer_expression "*(uint *)((int)paVar5 + -0x14)" * (cast_expression "(uint *)((int)paVar5 + -0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -0x14)" ( (binary_expression "(int)paVar5 + -0x14" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar9[4] = paVar5[-1]._M_allocated_capacity;" (assignment_expression "puVar9[4] = paVar5[-1]._M_allocated_capacity" (subscript_expression "puVar9[4]" identifier [ number_literal ]) = (field_expression "paVar5[-1]._M_allocated_capacity" (subscript_expression "paVar5[-1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "puVar9[5] = *(uint *)((int)paVar5 + -0xc);" (assignment_expression "puVar9[5] = *(uint *)((int)paVar5 + -0xc)" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = (pointer_expression "*(uint *)((int)paVar5 + -0xc)" * (cast_expression "(uint *)((int)paVar5 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -0xc)" ( (binary_expression "(int)paVar5 + -0xc" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar10 = (uint *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;" (assignment_expression "puVar10 = (uint *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p" identifier = (cast_expression "(uint *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar5 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar5 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar5 + -8))" ( (cast_expression "(string *)((int)paVar5 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -8)" ( (binary_expression "(int)paVar5 + -8" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier))) ;) (expression_statement "paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)puVar9[6];" (assignment_expression "paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)puVar9[6]" identifier = (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)puVar9[6]" ( (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                *)puVar9[6]" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                *)puVar9[6]" identifier * (ERROR ")" )) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) ))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)puVar10 == paVar5) {\n        sVar7 = *(size_type *)((int)paVar5 + -4);\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            uVar2 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = uVar2;\n            *(undefined1 *)(puVar9[6] + uVar2) = 0;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n            goto LAB_001679c9;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        paVar6->_M_local_buf[sVar7] = '\0';\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      }\n      else {\n        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)puVar10;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)puVar10;\n          uVar2 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;\n        paVar6 = paVar5;\n      }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)puVar10 == paVar5)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)puVar10 == paVar5)" ( (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           *)puVar10 == paVar5" (binary_expression "allocator<char>_>_9\n           *)puVar10" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)puVar10" identifier * (ERROR ")" )) identifier)) == identifier) )) )) (compound_statement "{\n        sVar7 = *(size_type *)((int)paVar5 + -4);\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            uVar2 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = uVar2;\n            *(undefined1 *)(puVar9[6] + uVar2) = 0;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n            goto LAB_001679c9;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        paVar6->_M_local_buf[sVar7] = '\0';\n        paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n      }" { (expression_statement "sVar7 = *(size_type *)((int)paVar5 + -4);" (assignment_expression "sVar7 = *(size_type *)((int)paVar5 + -4)" identifier = (pointer_expression "*(size_type *)((int)paVar5 + -4)" * (cast_expression "(size_type *)((int)paVar5 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -4)" ( (binary_expression "(int)paVar5 + -4" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            uVar2 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = uVar2;\n            *(undefined1 *)(puVar9[6] + uVar2) = 0;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n            goto LAB_001679c9;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }" if (parenthesized_expression "(sVar7 != 0)" ( (binary_expression "sVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            uVar2 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = uVar2;\n            *(undefined1 *)(puVar9[6] + uVar2) = 0;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n            goto LAB_001679c9;\n          }\n          memcpy(paVar6,paVar5,sVar7);\n          sVar7 = *(size_type *)((int)paVar5 + -4);\n          paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];\n        }" { (if_statement "if (sVar7 == 1) {\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            uVar2 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = uVar2;\n            *(undefined1 *)(puVar9[6] + uVar2) = 0;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n            goto LAB_001679c9;\n          }" if (parenthesized_expression "(sVar7 == 1)" ( (binary_expression "sVar7 == 1" identifier == number_literal) )) (compound_statement "{\n            paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];\n            uVar2 = *(size_type *)((int)paVar5 + -4);\n            puVar9[7] = uVar2;\n            *(undefined1 *)(puVar9[6] + uVar2) = 0;\n            paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;\n            goto LAB_001679c9;\n          }" { (expression_statement "paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0];" (assignment_expression "paVar6->_M_local_buf[0] = paVar5->_M_local_buf[0]" (subscript_expression "paVar6->_M_local_buf[0]" (field_expression "paVar6->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "paVar5->_M_local_buf[0]" (field_expression "paVar5->_M_local_buf" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar2 = *(size_type *)((int)paVar5 + -4);" (assignment_expression "uVar2 = *(size_type *)((int)paVar5 + -4)" identifier = (pointer_expression "*(size_type *)((int)paVar5 + -4)" * (cast_expression "(size_type *)((int)paVar5 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -4)" ( (binary_expression "(int)paVar5 + -4" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar9[7] = uVar2;" (assignment_expression "puVar9[7] = uVar2" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar9[6] + uVar2) = 0;" (assignment_expression "*(undefined1 *)(puVar9[6] + uVar2) = 0" (pointer_expression "*(undefined1 *)(puVar9[6] + uVar2)" * (cast_expression "(undefined1 *)(puVar9[6] + uVar2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9[6] + uVar2)" ( (binary_expression "puVar9[6] + uVar2" (subscript_expression "puVar9[6]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) (expression_statement "paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;" (assignment_expression "paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(((string *)((int)paVar5 + -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)paVar5 + -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)paVar5 + -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)paVar5 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar5 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar5 + -8))" ( (cast_expression "(string *)((int)paVar5 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -8)" ( (binary_expression "(int)paVar5 + -8" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) ))) . field_identifier)) ;) (goto_statement "goto LAB_001679c9;" goto statement_identifier ;) })) (expression_statement "memcpy(paVar6,paVar5,sVar7);" (call_expression "memcpy(paVar6,paVar5,sVar7)" identifier (argument_list "(paVar6,paVar5,sVar7)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar7 = *(size_type *)((int)paVar5 + -4);" (assignment_expression "sVar7 = *(size_type *)((int)paVar5 + -4)" identifier = (pointer_expression "*(size_type *)((int)paVar5 + -4)" * (cast_expression "(size_type *)((int)paVar5 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -4)" ( (binary_expression "(int)paVar5 + -4" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6];" (assignment_expression "paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6]" identifier = (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)puVar9[6]" ( (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                    *)puVar9[6]" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                    *)puVar9[6]" identifier * (ERROR ")" )) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) ))) ;) })) (expression_statement "puVar9[7] = sVar7;" (assignment_expression "puVar9[7] = sVar7" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "paVar6->_M_local_buf[sVar7] = '\0';" (assignment_expression "paVar6->_M_local_buf[sVar7] = '\0'" (subscript_expression "paVar6->_M_local_buf[sVar7]" (field_expression "paVar6->_M_local_buf" identifier -> field_identifier) [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p;" (assignment_expression "paVar6 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)(((string *)((int)paVar5 + -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)paVar5 + -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)paVar5 + -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)paVar5 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar5 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar5 + -8))" ( (cast_expression "(string *)((int)paVar5 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -8)" ( (binary_expression "(int)paVar5 + -8" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) ))) . field_identifier)) ;) }) (else_clause "else {\n        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)puVar10;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)puVar10;\n          uVar2 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;\n        paVar6 = paVar5;\n      }" else (compound_statement "{\n        if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)puVar10;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)puVar10;\n          uVar2 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;\n        paVar6 = paVar5;\n      }" { (if_statement "if (paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)) {\n          puVar9[6] = (uint)puVar10;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }\n        else {\n          puVar9[6] = (uint)puVar10;\n          uVar2 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = uVar2;\n            goto LAB_001679c9;\n          }\n        }" if (parenthesized_expression "(paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8))" ( (binary_expression "paVar6 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)" identifier == (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)(puVar9 + 8)" (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 "(puVar9 + 8)" ( (binary_expression "puVar9 + 8" identifier + number_literal) )))) )) (compound_statement "{\n          puVar9[6] = (uint)puVar10;\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n        }" { (expression_statement "puVar9[6] = (uint)puVar10;" (assignment_expression "puVar9[6] = (uint)puVar10" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = (cast_expression "(uint)puVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar9[7] = *(size_type *)((int)paVar5 + -4);" (assignment_expression "puVar9[7] = *(size_type *)((int)paVar5 + -4)" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (pointer_expression "*(size_type *)((int)paVar5 + -4)" * (cast_expression "(size_type *)((int)paVar5 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -4)" ( (binary_expression "(int)paVar5 + -4" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar9[8] = paVar5->_M_allocated_capacity;" (assignment_expression "puVar9[8] = paVar5->_M_allocated_capacity" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = (field_expression "paVar5->_M_allocated_capacity" identifier -> field_identifier)) ;) }) (else_clause "else {\n          puVar9[6] = (uint)puVar10;\n          uVar2 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = uVar2;\n            goto LAB_001679c9;\n          }\n        }" else (compound_statement "{\n          puVar9[6] = (uint)puVar10;\n          uVar2 = puVar9[8];\n          puVar9[7] = *(size_type *)((int)paVar5 + -4);\n          puVar9[8] = paVar5->_M_allocated_capacity;\n          if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = uVar2;\n            goto LAB_001679c9;\n          }\n        }" { (expression_statement "puVar9[6] = (uint)puVar10;" (assignment_expression "puVar9[6] = (uint)puVar10" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = (cast_expression "(uint)puVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar2 = puVar9[8];" (assignment_expression "uVar2 = puVar9[8]" identifier = (subscript_expression "puVar9[8]" identifier [ number_literal ])) ;) (expression_statement "puVar9[7] = *(size_type *)((int)paVar5 + -4);" (assignment_expression "puVar9[7] = *(size_type *)((int)paVar5 + -4)" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (pointer_expression "*(size_type *)((int)paVar5 + -4)" * (cast_expression "(size_type *)((int)paVar5 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -4)" ( (binary_expression "(int)paVar5 + -4" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar9[8] = paVar5->_M_allocated_capacity;" (assignment_expression "puVar9[8] = paVar5->_M_allocated_capacity" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = (field_expression "paVar5->_M_allocated_capacity" identifier -> field_identifier)) ;) (if_statement "if (paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0) {\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = uVar2;\n            goto LAB_001679c9;\n          }" if (parenthesized_expression "(paVar6 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                         *)0x0)" ( (binary_expression "paVar6 != (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)) ))) )) (compound_statement "{\n            (((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;\n            paVar5->_M_allocated_capacity = uVar2;\n            goto LAB_001679c9;\n          }" { (expression_statement "(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6;" (assignment_expression "(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar6" (field_expression "(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar5 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar5 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar5 + -8))" ( (cast_expression "(string *)((int)paVar5 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -8)" ( (binary_expression "(int)paVar5 + -8" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar6" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "paVar5->_M_allocated_capacity = uVar2;" (assignment_expression "paVar5->_M_allocated_capacity = uVar2" (field_expression "paVar5->_M_allocated_capacity" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_001679c9;" goto statement_identifier ;) })) }))) (expression_statement "(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5;" (assignment_expression "(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p = (pointer)paVar5" (field_expression "(((string *)((int)paVar5 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar5 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar5 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar5 + -8))" ( (cast_expression "(string *)((int)paVar5 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -8)" ( (binary_expression "(int)paVar5 + -8" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar5" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "paVar6 = paVar5;" (assignment_expression "paVar6 = paVar5" identifier = identifier) ;) }))) (labeled_statement "LAB_001679c9:\n      *(uint *)((int)paVar5 + -4) = 0;" statement_identifier : (expression_statement "*(uint *)((int)paVar5 + -4) = 0;" (assignment_expression "*(uint *)((int)paVar5 + -4) = 0" (pointer_expression "*(uint *)((int)paVar5 + -4)" * (cast_expression "(uint *)((int)paVar5 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + -4)" ( (binary_expression "(int)paVar5 + -4" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;)) (expression_statement "puVar10 = puVar9 + 0x10;" (assignment_expression "puVar10 = puVar9 + 0x10" identifier = (binary_expression "puVar9 + 0x10" identifier + number_literal)) ;) (expression_statement "paVar6->_M_local_buf[0] = '\0';" (assignment_expression "paVar6->_M_local_buf[0] = '\0'" (subscript_expression "paVar6->_M_local_buf[0]" (field_expression "paVar6->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar2 = *(uint *)((int)paVar5 + 0x14);" (assignment_expression "uVar2 = *(uint *)((int)paVar5 + 0x14)" identifier = (pointer_expression "*(uint *)((int)paVar5 + 0x14)" * (cast_expression "(uint *)((int)paVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + 0x14)" ( (binary_expression "(int)paVar5 + 0x14" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar9[0xc] = paVar5[1]._M_allocated_capacity;" (assignment_expression "puVar9[0xc] = paVar5[1]._M_allocated_capacity" (subscript_expression "puVar9[0xc]" identifier [ number_literal ]) = (field_expression "paVar5[1]._M_allocated_capacity" (subscript_expression "paVar5[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "puVar9[0xd] = uVar2;" (assignment_expression "puVar9[0xd] = uVar2" (subscript_expression "puVar9[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = *(uint *)((int)paVar5 + 0x1c);" (assignment_expression "uVar2 = *(uint *)((int)paVar5 + 0x1c)" identifier = (pointer_expression "*(uint *)((int)paVar5 + 0x1c)" * (cast_expression "(uint *)((int)paVar5 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + 0x1c)" ( (binary_expression "(int)paVar5 + 0x1c" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar9[0xe] = *(uint *)((int)paVar5 + 0x18);" (assignment_expression "puVar9[0xe] = *(uint *)((int)paVar5 + 0x18)" (subscript_expression "puVar9[0xe]" identifier [ number_literal ]) = (pointer_expression "*(uint *)((int)paVar5 + 0x18)" * (cast_expression "(uint *)((int)paVar5 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar5 + 0x18)" ( (binary_expression "(int)paVar5 + 0x18" (cast_expression "(int)paVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar9[0xf] = uVar2;" (assignment_expression "puVar9[0xf] = uVar2" (subscript_expression "puVar9[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "puVar9 = puVar10;" (assignment_expression "puVar9 = puVar10" identifier = identifier) ;) (expression_statement "paVar5 = paVar5 + 4;" (assignment_expression "paVar5 = paVar5 + 4" identifier = (binary_expression "paVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) ;) })) (expression_statement "(__first1->input_section_).shndx_ = (uint)puVar10;" (assignment_expression "(__first1->input_section_).shndx_ = (uint)puVar10" (field_expression "(__first1->input_section_).shndx_" (parenthesized_expression "(__first1->input_section_)" ( (field_expression "__first1->input_section_" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uint)puVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (return_statement "return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n          )__first1;" return (parenthesized_expression "(__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n          )__first1" ( (ERROR "__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::" (comma_expression "__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std" (binary_expression "__normal_iterator<gold::Input_section_info*,_std::vector<gold" (binary_expression "__normal_iterator<gold::Input_section_info*,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Input_section_info>_>_>\n          )__first1" (binary_expression "Input_section_info>_>_" (binary_expression "Input_section_info>_" identifier > identifier) > identifier) > (ERROR ")" )) identifier) )) ;) })))
(translation_unit "void FUN_00167660(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  char cVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  size_t sVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  \n  if ((param_2 != param_3) && (param_4 != param_5)) {\n    puVar9 = param_6;\n    do {\n      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);\n      if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }\n      param_6 = puVar9 + 0x10;\n    } while ((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)\n            );\n  }\n  iVar8 = (int)param_3 - (int)param_2 >> 6;\n  if (0 < (int)param_3 - (int)param_2) {\n    puVar9 = param_2 + 8;\n    puVar5 = param_6;\n    do {\n      *puVar5 = puVar9[-8];\n      puVar5[1] = puVar9[-7];\n      puVar5[2] = puVar9[-6];\n      puVar5[3] = puVar9[-5];\n      puVar5[4] = puVar9[-4];\n      puVar5[5] = puVar9[-3];\n      puVar1 = (undefined4 *)puVar9[-2];\n      puVar6 = (undefined4 *)puVar5[6];\n      if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }\nLAB_00167833:\n      puVar9[-1] = 0;\n      param_6 = puVar5 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar9[5];\n      puVar5[0xc] = puVar9[4];\n      puVar5[0xd] = uVar2;\n      uVar2 = puVar9[7];\n      puVar5[0xe] = puVar9[6];\n      puVar5[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar9 + 0x10;\n      puVar5 = param_6;\n    } while (iVar8 != 0);\n  }\n  iVar8 = (int)param_5 - (int)param_4 >> 6;\n  if (0 < (int)param_5 - (int)param_4) {\n    puVar9 = param_6;\n    puVar5 = param_4 + 8;\n    do {\n      *puVar9 = puVar5[-8];\n      puVar9[1] = puVar5[-7];\n      puVar9[2] = puVar5[-6];\n      puVar9[3] = puVar5[-5];\n      puVar9[4] = puVar5[-4];\n      puVar9[5] = puVar5[-3];\n      puVar1 = (undefined4 *)puVar5[-2];\n      puVar6 = (undefined4 *)puVar9[6];\n      if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }\nLAB_001679c9:\n      puVar5[-1] = 0;\n      param_6 = puVar9 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar5[5];\n      puVar9[0xc] = puVar5[4];\n      puVar9[0xd] = uVar2;\n      uVar2 = puVar5[7];\n      puVar9[0xe] = puVar5[6];\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = param_6;\n      puVar5 = puVar5 + 0x10;\n    } while (iVar8 != 0);\n  }\n  *param_1 = param_6;\n  return;\n}\n\n" (function_definition "void FUN_00167660(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  char cVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  size_t sVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  \n  if ((param_2 != param_3) && (param_4 != param_5)) {\n    puVar9 = param_6;\n    do {\n      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);\n      if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }\n      param_6 = puVar9 + 0x10;\n    } while ((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)\n            );\n  }\n  iVar8 = (int)param_3 - (int)param_2 >> 6;\n  if (0 < (int)param_3 - (int)param_2) {\n    puVar9 = param_2 + 8;\n    puVar5 = param_6;\n    do {\n      *puVar5 = puVar9[-8];\n      puVar5[1] = puVar9[-7];\n      puVar5[2] = puVar9[-6];\n      puVar5[3] = puVar9[-5];\n      puVar5[4] = puVar9[-4];\n      puVar5[5] = puVar9[-3];\n      puVar1 = (undefined4 *)puVar9[-2];\n      puVar6 = (undefined4 *)puVar5[6];\n      if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }\nLAB_00167833:\n      puVar9[-1] = 0;\n      param_6 = puVar5 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar9[5];\n      puVar5[0xc] = puVar9[4];\n      puVar5[0xd] = uVar2;\n      uVar2 = puVar9[7];\n      puVar5[0xe] = puVar9[6];\n      puVar5[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar9 + 0x10;\n      puVar5 = param_6;\n    } while (iVar8 != 0);\n  }\n  iVar8 = (int)param_5 - (int)param_4 >> 6;\n  if (0 < (int)param_5 - (int)param_4) {\n    puVar9 = param_6;\n    puVar5 = param_4 + 8;\n    do {\n      *puVar9 = puVar5[-8];\n      puVar9[1] = puVar5[-7];\n      puVar9[2] = puVar5[-6];\n      puVar9[3] = puVar5[-5];\n      puVar9[4] = puVar5[-4];\n      puVar9[5] = puVar5[-3];\n      puVar1 = (undefined4 *)puVar5[-2];\n      puVar6 = (undefined4 *)puVar9[6];\n      if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }\nLAB_001679c9:\n      puVar5[-1] = 0;\n      param_6 = puVar9 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar5[5];\n      puVar9[0xc] = puVar5[4];\n      puVar9[0xd] = uVar2;\n      uVar2 = puVar5[7];\n      puVar9[0xe] = puVar5[6];\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = param_6;\n      puVar5 = puVar5 + 0x10;\n    } while (iVar8 != 0);\n  }\n  *param_1 = param_6;\n  return;\n}" primitive_type (function_declarator "FUN_00167660(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)" identifier (parameter_list "(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)" ( (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 (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined4 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  char cVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  size_t sVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  \n  if ((param_2 != param_3) && (param_4 != param_5)) {\n    puVar9 = param_6;\n    do {\n      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);\n      if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }\n      param_6 = puVar9 + 0x10;\n    } while ((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)\n            );\n  }\n  iVar8 = (int)param_3 - (int)param_2 >> 6;\n  if (0 < (int)param_3 - (int)param_2) {\n    puVar9 = param_2 + 8;\n    puVar5 = param_6;\n    do {\n      *puVar5 = puVar9[-8];\n      puVar5[1] = puVar9[-7];\n      puVar5[2] = puVar9[-6];\n      puVar5[3] = puVar9[-5];\n      puVar5[4] = puVar9[-4];\n      puVar5[5] = puVar9[-3];\n      puVar1 = (undefined4 *)puVar9[-2];\n      puVar6 = (undefined4 *)puVar5[6];\n      if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }\nLAB_00167833:\n      puVar9[-1] = 0;\n      param_6 = puVar5 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar9[5];\n      puVar5[0xc] = puVar9[4];\n      puVar5[0xd] = uVar2;\n      uVar2 = puVar9[7];\n      puVar5[0xe] = puVar9[6];\n      puVar5[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar9 + 0x10;\n      puVar5 = param_6;\n    } while (iVar8 != 0);\n  }\n  iVar8 = (int)param_5 - (int)param_4 >> 6;\n  if (0 < (int)param_5 - (int)param_4) {\n    puVar9 = param_6;\n    puVar5 = param_4 + 8;\n    do {\n      *puVar9 = puVar5[-8];\n      puVar9[1] = puVar5[-7];\n      puVar9[2] = puVar5[-6];\n      puVar9[3] = puVar5[-5];\n      puVar9[4] = puVar5[-4];\n      puVar9[5] = puVar5[-3];\n      puVar1 = (undefined4 *)puVar5[-2];\n      puVar6 = (undefined4 *)puVar9[6];\n      if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }\nLAB_001679c9:\n      puVar5[-1] = 0;\n      param_6 = puVar9 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar5[5];\n      puVar9[0xc] = puVar5[4];\n      puVar9[0xd] = uVar2;\n      uVar2 = puVar5[7];\n      puVar9[0xe] = puVar5[6];\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = param_6;\n      puVar5 = puVar5 + 0x10;\n    } while (iVar8 != 0);\n  }\n  *param_1 = param_6;\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (if_statement "if ((param_2 != param_3) && (param_4 != param_5)) {\n    puVar9 = param_6;\n    do {\n      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);\n      if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }\n      param_6 = puVar9 + 0x10;\n    } while ((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)\n            );\n  }" if (parenthesized_expression "((param_2 != param_3) && (param_4 != param_5))" ( (binary_expression "(param_2 != param_3) && (param_4 != param_5)" (parenthesized_expression "(param_2 != param_3)" ( (binary_expression "param_2 != param_3" identifier != identifier) )) && (parenthesized_expression "(param_4 != param_5)" ( (binary_expression "param_4 != param_5" identifier != identifier) ))) )) (compound_statement "{\n    puVar9 = param_6;\n    do {\n      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);\n      if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }\n      param_6 = puVar9 + 0x10;\n    } while ((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)\n            );\n  }" { (expression_statement "puVar9 = param_6;" (assignment_expression "puVar9 = param_6" identifier = identifier) ;) (do_statement "do {\n      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);\n      if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }\n      param_6 = puVar9 + 0x10;\n    } while ((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)\n            );" do (compound_statement "{\n      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);\n      if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }\n      param_6 = puVar9 + 0x10;\n    }" { (expression_statement "cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);" (assignment_expression "cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2)" identifier = (call_expression "FUN_0015b910(&stack0x0000001c,param_4,param_2)" identifier (argument_list "(&stack0x0000001c,param_4,param_2)" ( (pointer_expression "&stack0x0000001c" & identifier) , identifier , identifier )))) ;) (if_statement "if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }" { (expression_statement "puVar5 = param_2 + 8;" (assignment_expression "puVar5 = param_2 + 8" identifier = (binary_expression "param_2 + 8" identifier + number_literal)) ;) (expression_statement "*puVar9 = *param_2;" (assignment_expression "*puVar9 = *param_2" (pointer_expression "*puVar9" * identifier) = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "puVar9[1] = param_2[1];" (assignment_expression "puVar9[1] = param_2[1]" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar9[2] = param_2[2];" (assignment_expression "puVar9[2] = param_2[2]" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "puVar9[3] = param_2[3];" (assignment_expression "puVar9[3] = param_2[3]" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "puVar9[4] = param_2[4];" (assignment_expression "puVar9[4] = param_2[4]" (subscript_expression "puVar9[4]" identifier [ number_literal ]) = (subscript_expression "param_2[4]" identifier [ number_literal ])) ;) (expression_statement "puVar9[5] = param_2[5];" (assignment_expression "puVar9[5] = param_2[5]" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = (subscript_expression "param_2[5]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = (undefined4 *)param_2[6];" (assignment_expression "puVar1 = (undefined4 *)param_2[6]" identifier = (cast_expression "(undefined4 *)param_2[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) ;) (expression_statement "puVar6 = (undefined4 *)puVar9[6];" (assignment_expression "puVar6 = (undefined4 *)puVar9[6]" identifier = (cast_expression "(undefined4 *)puVar9[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) ;) (if_statement "if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }" if (parenthesized_expression "(puVar1 == puVar5)" ( (binary_expression "puVar1 == puVar5" identifier == identifier) )) (compound_statement "{\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }" { (expression_statement "sVar7 = param_2[7];" (assignment_expression "sVar7 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (if_statement "if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }" if (parenthesized_expression "(sVar7 != 0)" ( (binary_expression "sVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }" { (if_statement "if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }" if (parenthesized_expression "(sVar7 == 1)" ( (binary_expression "sVar7 == 1" identifier == number_literal) )) (compound_statement "{\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }" { (expression_statement "*(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);" (assignment_expression "*(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8)" (pointer_expression "*(undefined1 *)puVar6" * (cast_expression "(undefined1 *)puVar6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)(param_2 + 8)" * (cast_expression "(undefined1 *)(param_2 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = param_2[7];" (assignment_expression "iVar8 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (expression_statement "puVar9[7] = iVar8;" (assignment_expression "puVar9[7] = iVar8" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar9[6] + iVar8) = 0;" (assignment_expression "*(undefined1 *)(puVar9[6] + iVar8) = 0" (pointer_expression "*(undefined1 *)(puVar9[6] + iVar8)" * (cast_expression "(undefined1 *)(puVar9[6] + iVar8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9[6] + iVar8)" ( (binary_expression "puVar9[6] + iVar8" (subscript_expression "puVar9[6]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)param_2[6];" (assignment_expression "puVar5 = (undefined4 *)param_2[6]" identifier = (cast_expression "(undefined4 *)param_2[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_001677ba;" goto statement_identifier ;) })) (expression_statement "memcpy(puVar6,puVar1,sVar7);" (call_expression "memcpy(puVar6,puVar1,sVar7)" identifier (argument_list "(puVar6,puVar1,sVar7)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar7 = param_2[7];" (assignment_expression "sVar7 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (expression_statement "puVar6 = (undefined4 *)puVar9[6];" (assignment_expression "puVar6 = (undefined4 *)puVar9[6]" identifier = (cast_expression "(undefined4 *)puVar9[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) ;) })) (expression_statement "puVar9[7] = sVar7;" (assignment_expression "puVar9[7] = sVar7" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar6 + sVar7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar6 + sVar7) = 0" (pointer_expression "*(undefined1 *)((int)puVar6 + sVar7)" * (cast_expression "(undefined1 *)((int)puVar6 + sVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + sVar7)" ( (binary_expression "(int)puVar6 + sVar7" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)param_2[6];" (assignment_expression "puVar5 = (undefined4 *)param_2[6]" identifier = (cast_expression "(undefined4 *)param_2[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }" else (compound_statement "{\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }" { (if_statement "if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }" if (parenthesized_expression "(puVar6 == puVar9 + 8)" ( (binary_expression "puVar6 == puVar9 + 8" identifier == (binary_expression "puVar9 + 8" identifier + number_literal)) )) (compound_statement "{\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }" { (expression_statement "puVar9[6] = puVar1;" (assignment_expression "puVar9[6] = puVar1" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[7] = param_2[7];" (assignment_expression "puVar9[7] = param_2[7]" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (expression_statement "puVar9[8] = param_2[8];" (assignment_expression "puVar9[8] = param_2[8]" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }" else (compound_statement "{\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }" { (expression_statement "puVar9[6] = puVar1;" (assignment_expression "puVar9[6] = puVar1" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = puVar9[8];" (assignment_expression "uVar2 = puVar9[8]" identifier = (subscript_expression "puVar9[8]" identifier [ number_literal ])) ;) (expression_statement "puVar9[7] = param_2[7];" (assignment_expression "puVar9[7] = param_2[7]" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (expression_statement "puVar9[8] = param_2[8];" (assignment_expression "puVar9[8] = param_2[8]" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (if_statement "if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }" if (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" ( (binary_expression "puVar6 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }" { (expression_statement "param_2[6] = puVar6;" (assignment_expression "param_2[6] = puVar6" (subscript_expression "param_2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[8] = uVar2;" (assignment_expression "param_2[8] = uVar2" (subscript_expression "param_2[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5 = puVar6;" (assignment_expression "puVar5 = puVar6" identifier = identifier) ;) (goto_statement "goto LAB_001677ba;" goto statement_identifier ;) })) }))) (expression_statement "param_2[6] = puVar5;" (assignment_expression "param_2[6] = puVar5" (subscript_expression "param_2[6]" identifier [ number_literal ]) = identifier) ;) }))) (labeled_statement "LAB_001677ba:\n        param_2[7] = 0;" statement_identifier : (expression_statement "param_2[7] = 0;" (assignment_expression "param_2[7] = 0" (subscript_expression "param_2[7]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "*(undefined1 *)puVar5 = 0;" (assignment_expression "*(undefined1 *)puVar5 = 0" (pointer_expression "*(undefined1 *)puVar5" * (cast_expression "(undefined1 *)puVar5" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar2 = param_2[0xd];" (assignment_expression "uVar2 = param_2[0xd]" identifier = (subscript_expression "param_2[0xd]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xc] = param_2[0xc];" (assignment_expression "puVar9[0xc] = param_2[0xc]" (subscript_expression "puVar9[0xc]" identifier [ number_literal ]) = (subscript_expression "param_2[0xc]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xd] = uVar2;" (assignment_expression "puVar9[0xd] = uVar2" (subscript_expression "puVar9[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = param_2[0xf];" (assignment_expression "uVar2 = param_2[0xf]" identifier = (subscript_expression "param_2[0xf]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xe] = param_2[0xe];" (assignment_expression "puVar9[0xe] = param_2[0xe]" (subscript_expression "puVar9[0xe]" identifier [ number_literal ]) = (subscript_expression "param_2[0xe]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xf] = uVar2;" (assignment_expression "puVar9[0xf] = uVar2" (subscript_expression "puVar9[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2 = param_2 + 0x10;" (assignment_expression "param_2 = param_2 + 0x10" identifier = (binary_expression "param_2 + 0x10" identifier + number_literal)) ;) }) (else_clause "else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }" else (compound_statement "{\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }" { (expression_statement "puVar5 = param_4 + 8;" (assignment_expression "puVar5 = param_4 + 8" identifier = (binary_expression "param_4 + 8" identifier + number_literal)) ;) (expression_statement "*puVar9 = *param_4;" (assignment_expression "*puVar9 = *param_4" (pointer_expression "*puVar9" * identifier) = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "puVar9[1] = param_4[1];" (assignment_expression "puVar9[1] = param_4[1]" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "puVar9[2] = param_4[2];" (assignment_expression "puVar9[2] = param_4[2]" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = (subscript_expression "param_4[2]" identifier [ number_literal ])) ;) (expression_statement "puVar9[3] = param_4[3];" (assignment_expression "puVar9[3] = param_4[3]" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = (subscript_expression "param_4[3]" identifier [ number_literal ])) ;) (expression_statement "puVar9[4] = param_4[4];" (assignment_expression "puVar9[4] = param_4[4]" (subscript_expression "puVar9[4]" identifier [ number_literal ]) = (subscript_expression "param_4[4]" identifier [ number_literal ])) ;) (expression_statement "puVar9[5] = param_4[5];" (assignment_expression "puVar9[5] = param_4[5]" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = (subscript_expression "param_4[5]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = (undefined4 *)param_4[6];" (assignment_expression "puVar1 = (undefined4 *)param_4[6]" identifier = (cast_expression "(undefined4 *)param_4[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[6]" identifier [ number_literal ]))) ;) (expression_statement "puVar6 = (undefined4 *)puVar9[6];" (assignment_expression "puVar6 = (undefined4 *)puVar9[6]" identifier = (cast_expression "(undefined4 *)puVar9[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) ;) (if_statement "if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }" if (parenthesized_expression "(puVar1 == puVar5)" ( (binary_expression "puVar1 == puVar5" identifier == identifier) )) (compound_statement "{\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }" { (expression_statement "sVar7 = param_4[7];" (assignment_expression "sVar7 = param_4[7]" identifier = (subscript_expression "param_4[7]" identifier [ number_literal ])) ;) (if_statement "if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }" if (parenthesized_expression "(sVar7 != 0)" ( (binary_expression "sVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }" { (if_statement "if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }" if (parenthesized_expression "(sVar7 == 1)" ( (binary_expression "sVar7 == 1" identifier == number_literal) )) (compound_statement "{\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }" { (expression_statement "*(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);" (assignment_expression "*(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8)" (pointer_expression "*(undefined1 *)puVar6" * (cast_expression "(undefined1 *)puVar6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)(param_4 + 8)" * (cast_expression "(undefined1 *)(param_4 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = param_4[7];" (assignment_expression "iVar8 = param_4[7]" identifier = (subscript_expression "param_4[7]" identifier [ number_literal ])) ;) (expression_statement "puVar9[7] = iVar8;" (assignment_expression "puVar9[7] = iVar8" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar9[6] + iVar8) = 0;" (assignment_expression "*(undefined1 *)(puVar9[6] + iVar8) = 0" (pointer_expression "*(undefined1 *)(puVar9[6] + iVar8)" * (cast_expression "(undefined1 *)(puVar9[6] + iVar8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9[6] + iVar8)" ( (binary_expression "puVar9[6] + iVar8" (subscript_expression "puVar9[6]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)param_4[6];" (assignment_expression "puVar5 = (undefined4 *)param_4[6]" identifier = (cast_expression "(undefined4 *)param_4[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[6]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_00167706;" goto statement_identifier ;) })) (expression_statement "memcpy(puVar6,puVar1,sVar7);" (call_expression "memcpy(puVar6,puVar1,sVar7)" identifier (argument_list "(puVar6,puVar1,sVar7)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar7 = param_4[7];" (assignment_expression "sVar7 = param_4[7]" identifier = (subscript_expression "param_4[7]" identifier [ number_literal ])) ;) (expression_statement "puVar6 = (undefined4 *)puVar9[6];" (assignment_expression "puVar6 = (undefined4 *)puVar9[6]" identifier = (cast_expression "(undefined4 *)puVar9[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) ;) })) (expression_statement "puVar9[7] = sVar7;" (assignment_expression "puVar9[7] = sVar7" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar6 + sVar7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar6 + sVar7) = 0" (pointer_expression "*(undefined1 *)((int)puVar6 + sVar7)" * (cast_expression "(undefined1 *)((int)puVar6 + sVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + sVar7)" ( (binary_expression "(int)puVar6 + sVar7" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)param_4[6];" (assignment_expression "puVar5 = (undefined4 *)param_4[6]" identifier = (cast_expression "(undefined4 *)param_4[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[6]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }" else (compound_statement "{\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }" { (if_statement "if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }" if (parenthesized_expression "(puVar6 == puVar9 + 8)" ( (binary_expression "puVar6 == puVar9 + 8" identifier == (binary_expression "puVar9 + 8" identifier + number_literal)) )) (compound_statement "{\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }" { (expression_statement "puVar9[6] = puVar1;" (assignment_expression "puVar9[6] = puVar1" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[7] = param_4[7];" (assignment_expression "puVar9[7] = param_4[7]" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (subscript_expression "param_4[7]" identifier [ number_literal ])) ;) (expression_statement "puVar9[8] = param_4[8];" (assignment_expression "puVar9[8] = param_4[8]" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = (subscript_expression "param_4[8]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }" else (compound_statement "{\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }" { (expression_statement "puVar9[6] = puVar1;" (assignment_expression "puVar9[6] = puVar1" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = puVar9[8];" (assignment_expression "uVar2 = puVar9[8]" identifier = (subscript_expression "puVar9[8]" identifier [ number_literal ])) ;) (expression_statement "puVar9[7] = param_4[7];" (assignment_expression "puVar9[7] = param_4[7]" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (subscript_expression "param_4[7]" identifier [ number_literal ])) ;) (expression_statement "puVar9[8] = param_4[8];" (assignment_expression "puVar9[8] = param_4[8]" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = (subscript_expression "param_4[8]" identifier [ number_literal ])) ;) (if_statement "if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }" if (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" ( (binary_expression "puVar6 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }" { (expression_statement "param_4[6] = puVar6;" (assignment_expression "param_4[6] = puVar6" (subscript_expression "param_4[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[8] = uVar2;" (assignment_expression "param_4[8] = uVar2" (subscript_expression "param_4[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5 = puVar6;" (assignment_expression "puVar5 = puVar6" identifier = identifier) ;) (goto_statement "goto LAB_00167706;" goto statement_identifier ;) })) }))) (expression_statement "param_4[6] = puVar5;" (assignment_expression "param_4[6] = puVar5" (subscript_expression "param_4[6]" identifier [ number_literal ]) = identifier) ;) }))) (labeled_statement "LAB_00167706:\n        param_4[7] = 0;" statement_identifier : (expression_statement "param_4[7] = 0;" (assignment_expression "param_4[7] = 0" (subscript_expression "param_4[7]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "*(undefined1 *)puVar5 = 0;" (assignment_expression "*(undefined1 *)puVar5 = 0" (pointer_expression "*(undefined1 *)puVar5" * (cast_expression "(undefined1 *)puVar5" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar2 = param_4[0xd];" (assignment_expression "uVar2 = param_4[0xd]" identifier = (subscript_expression "param_4[0xd]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xc] = param_4[0xc];" (assignment_expression "puVar9[0xc] = param_4[0xc]" (subscript_expression "puVar9[0xc]" identifier [ number_literal ]) = (subscript_expression "param_4[0xc]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xd] = uVar2;" (assignment_expression "puVar9[0xd] = uVar2" (subscript_expression "puVar9[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = param_4[0xf];" (assignment_expression "uVar2 = param_4[0xf]" identifier = (subscript_expression "param_4[0xf]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xe] = param_4[0xe];" (assignment_expression "puVar9[0xe] = param_4[0xe]" (subscript_expression "puVar9[0xe]" identifier [ number_literal ]) = (subscript_expression "param_4[0xe]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xf] = uVar2;" (assignment_expression "puVar9[0xf] = uVar2" (subscript_expression "puVar9[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4 = param_4 + 0x10;" (assignment_expression "param_4 = param_4 + 0x10" identifier = (binary_expression "param_4 + 0x10" identifier + number_literal)) ;) }))) (expression_statement "param_6 = puVar9 + 0x10;" (assignment_expression "param_6 = puVar9 + 0x10" identifier = (binary_expression "puVar9 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)\n            )" ( (binary_expression "(param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)" (parenthesized_expression "(param_2 != param_3)" ( (binary_expression "param_2 != param_3" identifier != identifier) )) && (parenthesized_expression "(param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)" ( (comma_expression "param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5" (assignment_expression "param_6 = puVar9 + 0x10" identifier = (binary_expression "puVar9 + 0x10" identifier + number_literal)) , (comma_expression "puVar9 = param_6, param_4 != param_5" (assignment_expression "puVar9 = param_6" identifier = identifier) , (binary_expression "param_4 != param_5" identifier != identifier))) ))) )) ;) })) (expression_statement "iVar8 = (int)param_3 - (int)param_2 >> 6;" (assignment_expression "iVar8 = (int)param_3 - (int)param_2 >> 6" identifier = (binary_expression "(int)param_3 - (int)param_2 >> 6" (binary_expression "(int)param_3 - (int)param_2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (if_statement "if (0 < (int)param_3 - (int)param_2) {\n    puVar9 = param_2 + 8;\n    puVar5 = param_6;\n    do {\n      *puVar5 = puVar9[-8];\n      puVar5[1] = puVar9[-7];\n      puVar5[2] = puVar9[-6];\n      puVar5[3] = puVar9[-5];\n      puVar5[4] = puVar9[-4];\n      puVar5[5] = puVar9[-3];\n      puVar1 = (undefined4 *)puVar9[-2];\n      puVar6 = (undefined4 *)puVar5[6];\n      if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }\nLAB_00167833:\n      puVar9[-1] = 0;\n      param_6 = puVar5 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar9[5];\n      puVar5[0xc] = puVar9[4];\n      puVar5[0xd] = uVar2;\n      uVar2 = puVar9[7];\n      puVar5[0xe] = puVar9[6];\n      puVar5[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar9 + 0x10;\n      puVar5 = param_6;\n    } while (iVar8 != 0);\n  }" if (parenthesized_expression "(0 < (int)param_3 - (int)param_2)" ( (binary_expression "0 < (int)param_3 - (int)param_2" number_literal < (binary_expression "(int)param_3 - (int)param_2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n    puVar9 = param_2 + 8;\n    puVar5 = param_6;\n    do {\n      *puVar5 = puVar9[-8];\n      puVar5[1] = puVar9[-7];\n      puVar5[2] = puVar9[-6];\n      puVar5[3] = puVar9[-5];\n      puVar5[4] = puVar9[-4];\n      puVar5[5] = puVar9[-3];\n      puVar1 = (undefined4 *)puVar9[-2];\n      puVar6 = (undefined4 *)puVar5[6];\n      if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }\nLAB_00167833:\n      puVar9[-1] = 0;\n      param_6 = puVar5 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar9[5];\n      puVar5[0xc] = puVar9[4];\n      puVar5[0xd] = uVar2;\n      uVar2 = puVar9[7];\n      puVar5[0xe] = puVar9[6];\n      puVar5[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar9 + 0x10;\n      puVar5 = param_6;\n    } while (iVar8 != 0);\n  }" { (expression_statement "puVar9 = param_2 + 8;" (assignment_expression "puVar9 = param_2 + 8" identifier = (binary_expression "param_2 + 8" identifier + number_literal)) ;) (expression_statement "puVar5 = param_6;" (assignment_expression "puVar5 = param_6" identifier = identifier) ;) (do_statement "do {\n      *puVar5 = puVar9[-8];\n      puVar5[1] = puVar9[-7];\n      puVar5[2] = puVar9[-6];\n      puVar5[3] = puVar9[-5];\n      puVar5[4] = puVar9[-4];\n      puVar5[5] = puVar9[-3];\n      puVar1 = (undefined4 *)puVar9[-2];\n      puVar6 = (undefined4 *)puVar5[6];\n      if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }\nLAB_00167833:\n      puVar9[-1] = 0;\n      param_6 = puVar5 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar9[5];\n      puVar5[0xc] = puVar9[4];\n      puVar5[0xd] = uVar2;\n      uVar2 = puVar9[7];\n      puVar5[0xe] = puVar9[6];\n      puVar5[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar9 + 0x10;\n      puVar5 = param_6;\n    } while (iVar8 != 0);" do (compound_statement "{\n      *puVar5 = puVar9[-8];\n      puVar5[1] = puVar9[-7];\n      puVar5[2] = puVar9[-6];\n      puVar5[3] = puVar9[-5];\n      puVar5[4] = puVar9[-4];\n      puVar5[5] = puVar9[-3];\n      puVar1 = (undefined4 *)puVar9[-2];\n      puVar6 = (undefined4 *)puVar5[6];\n      if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }\nLAB_00167833:\n      puVar9[-1] = 0;\n      param_6 = puVar5 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar9[5];\n      puVar5[0xc] = puVar9[4];\n      puVar5[0xd] = uVar2;\n      uVar2 = puVar9[7];\n      puVar5[0xe] = puVar9[6];\n      puVar5[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar9 + 0x10;\n      puVar5 = param_6;\n    }" { (expression_statement "*puVar5 = puVar9[-8];" (assignment_expression "*puVar5 = puVar9[-8]" (pointer_expression "*puVar5" * identifier) = (subscript_expression "puVar9[-8]" identifier [ number_literal ])) ;) (expression_statement "puVar5[1] = puVar9[-7];" (assignment_expression "puVar5[1] = puVar9[-7]" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = (subscript_expression "puVar9[-7]" identifier [ number_literal ])) ;) (expression_statement "puVar5[2] = puVar9[-6];" (assignment_expression "puVar5[2] = puVar9[-6]" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = (subscript_expression "puVar9[-6]" identifier [ number_literal ])) ;) (expression_statement "puVar5[3] = puVar9[-5];" (assignment_expression "puVar5[3] = puVar9[-5]" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = (subscript_expression "puVar9[-5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[4] = puVar9[-4];" (assignment_expression "puVar5[4] = puVar9[-4]" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (subscript_expression "puVar9[-4]" identifier [ number_literal ])) ;) (expression_statement "puVar5[5] = puVar9[-3];" (assignment_expression "puVar5[5] = puVar9[-3]" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = (subscript_expression "puVar9[-3]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = (undefined4 *)puVar9[-2];" (assignment_expression "puVar1 = (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 "puVar6 = (undefined4 *)puVar5[6];" (assignment_expression "puVar6 = (undefined4 *)puVar5[6]" identifier = (cast_expression "(undefined4 *)puVar5[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[6]" identifier [ number_literal ]))) ;) (if_statement "if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }" if (parenthesized_expression "(puVar9 == puVar1)" ( (binary_expression "puVar9 == puVar1" identifier == identifier) )) (compound_statement "{\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }" { (expression_statement "sVar7 = puVar9[-1];" (assignment_expression "sVar7 = puVar9[-1]" identifier = (subscript_expression "puVar9[-1]" identifier [ number_literal ])) ;) (if_statement "if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }" if (parenthesized_expression "(sVar7 != 0)" ( (binary_expression "sVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }" { (if_statement "if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }" if (parenthesized_expression "(sVar7 == 1)" ( (binary_expression "sVar7 == 1" identifier == number_literal) )) (compound_statement "{\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }" { (expression_statement "*(undefined1 *)puVar6 = *(undefined1 *)puVar9;" (assignment_expression "*(undefined1 *)puVar6 = *(undefined1 *)puVar9" (pointer_expression "*(undefined1 *)puVar6" * (cast_expression "(undefined1 *)puVar6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)puVar9" * (cast_expression "(undefined1 *)puVar9" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar3 = puVar9[-1];" (assignment_expression "iVar3 = puVar9[-1]" identifier = (subscript_expression "puVar9[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar5[7] = iVar3;" (assignment_expression "puVar5[7] = iVar3" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar5[6] + iVar3) = 0;" (assignment_expression "*(undefined1 *)(puVar5[6] + iVar3) = 0" (pointer_expression "*(undefined1 *)(puVar5[6] + iVar3)" * (cast_expression "(undefined1 *)(puVar5[6] + iVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5[6] + iVar3)" ( (binary_expression "puVar5[6] + iVar3" (subscript_expression "puVar5[6]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)puVar1[-2];" (assignment_expression "puVar6 = (undefined4 *)puVar1[-2]" identifier = (cast_expression "(undefined4 *)puVar1[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[-2]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_00167833;" goto statement_identifier ;) })) (expression_statement "memcpy(puVar6,puVar9,sVar7);" (call_expression "memcpy(puVar6,puVar9,sVar7)" identifier (argument_list "(puVar6,puVar9,sVar7)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar7 = puVar9[-1];" (assignment_expression "sVar7 = puVar9[-1]" identifier = (subscript_expression "puVar9[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar6 = (undefined4 *)puVar5[6];" (assignment_expression "puVar6 = (undefined4 *)puVar5[6]" identifier = (cast_expression "(undefined4 *)puVar5[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[6]" identifier [ number_literal ]))) ;) })) (expression_statement "puVar5[7] = sVar7;" (assignment_expression "puVar5[7] = sVar7" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar6 + sVar7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar6 + sVar7) = 0" (pointer_expression "*(undefined1 *)((int)puVar6 + sVar7)" * (cast_expression "(undefined1 *)((int)puVar6 + sVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + sVar7)" ( (binary_expression "(int)puVar6 + sVar7" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)puVar1[-2];" (assignment_expression "puVar6 = (undefined4 *)puVar1[-2]" identifier = (cast_expression "(undefined4 *)puVar1[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[-2]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }" else (compound_statement "{\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }" { (if_statement "if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }" if (parenthesized_expression "(puVar6 == puVar5 + 8)" ( (binary_expression "puVar6 == puVar5 + 8" identifier == (binary_expression "puVar5 + 8" identifier + number_literal)) )) (compound_statement "{\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }" { (expression_statement "puVar5[6] = puVar1;" (assignment_expression "puVar5[6] = puVar1" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[7] = puVar9[-1];" (assignment_expression "puVar5[7] = puVar9[-1]" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = (subscript_expression "puVar9[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar5[8] = *puVar9;" (assignment_expression "puVar5[8] = *puVar9" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = (pointer_expression "*puVar9" * identifier)) ;) }) (else_clause "else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }" else (compound_statement "{\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }" { (expression_statement "puVar5[6] = puVar1;" (assignment_expression "puVar5[6] = puVar1" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = puVar5[8];" (assignment_expression "uVar2 = puVar5[8]" identifier = (subscript_expression "puVar5[8]" identifier [ number_literal ])) ;) (expression_statement "puVar5[7] = puVar9[-1];" (assignment_expression "puVar5[7] = puVar9[-1]" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = (subscript_expression "puVar9[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar5[8] = *puVar9;" (assignment_expression "puVar5[8] = *puVar9" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = (pointer_expression "*puVar9" * identifier)) ;) (if_statement "if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }" if (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" ( (binary_expression "puVar6 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }" { (expression_statement "puVar9[-2] = puVar6;" (assignment_expression "puVar9[-2] = puVar6" (subscript_expression "puVar9[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar9 = uVar2;" (assignment_expression "*puVar9 = uVar2" (pointer_expression "*puVar9" * identifier) = identifier) ;) (goto_statement "goto LAB_00167833;" goto statement_identifier ;) })) }))) (expression_statement "puVar9[-2] = puVar9;" (assignment_expression "puVar9[-2] = puVar9" (subscript_expression "puVar9[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6 = puVar9;" (assignment_expression "puVar6 = puVar9" identifier = identifier) ;) }))) (labeled_statement "LAB_00167833:\n      puVar9[-1] = 0;" statement_identifier : (expression_statement "puVar9[-1] = 0;" (assignment_expression "puVar9[-1] = 0" (subscript_expression "puVar9[-1]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "param_6 = puVar5 + 0x10;" (assignment_expression "param_6 = puVar5 + 0x10" identifier = (binary_expression "puVar5 + 0x10" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)puVar6 = 0;" (assignment_expression "*(undefined1 *)puVar6 = 0" (pointer_expression "*(undefined1 *)puVar6" * (cast_expression "(undefined1 *)puVar6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar2 = puVar9[5];" (assignment_expression "uVar2 = puVar9[5]" identifier = (subscript_expression "puVar9[5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[0xc] = puVar9[4];" (assignment_expression "puVar5[0xc] = puVar9[4]" (subscript_expression "puVar5[0xc]" identifier [ number_literal ]) = (subscript_expression "puVar9[4]" identifier [ number_literal ])) ;) (expression_statement "puVar5[0xd] = uVar2;" (assignment_expression "puVar5[0xd] = uVar2" (subscript_expression "puVar5[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = puVar9[7];" (assignment_expression "uVar2 = puVar9[7]" identifier = (subscript_expression "puVar9[7]" identifier [ number_literal ])) ;) (expression_statement "puVar5[0xe] = puVar9[6];" (assignment_expression "puVar5[0xe] = puVar9[6]" (subscript_expression "puVar5[0xe]" identifier [ number_literal ]) = (subscript_expression "puVar9[6]" identifier [ number_literal ])) ;) (expression_statement "puVar5[0xf] = uVar2;" (assignment_expression "puVar5[0xf] = uVar2" (subscript_expression "puVar5[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "puVar9 = puVar9 + 0x10;" (assignment_expression "puVar9 = puVar9 + 0x10" identifier = (binary_expression "puVar9 + 0x10" identifier + number_literal)) ;) (expression_statement "puVar5 = param_6;" (assignment_expression "puVar5 = param_6" identifier = identifier) ;) }) while (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) ;) })) (expression_statement "iVar8 = (int)param_5 - (int)param_4 >> 6;" (assignment_expression "iVar8 = (int)param_5 - (int)param_4 >> 6" identifier = (binary_expression "(int)param_5 - (int)param_4 >> 6" (binary_expression "(int)param_5 - (int)param_4" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (if_statement "if (0 < (int)param_5 - (int)param_4) {\n    puVar9 = param_6;\n    puVar5 = param_4 + 8;\n    do {\n      *puVar9 = puVar5[-8];\n      puVar9[1] = puVar5[-7];\n      puVar9[2] = puVar5[-6];\n      puVar9[3] = puVar5[-5];\n      puVar9[4] = puVar5[-4];\n      puVar9[5] = puVar5[-3];\n      puVar1 = (undefined4 *)puVar5[-2];\n      puVar6 = (undefined4 *)puVar9[6];\n      if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }\nLAB_001679c9:\n      puVar5[-1] = 0;\n      param_6 = puVar9 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar5[5];\n      puVar9[0xc] = puVar5[4];\n      puVar9[0xd] = uVar2;\n      uVar2 = puVar5[7];\n      puVar9[0xe] = puVar5[6];\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = param_6;\n      puVar5 = puVar5 + 0x10;\n    } while (iVar8 != 0);\n  }" if (parenthesized_expression "(0 < (int)param_5 - (int)param_4)" ( (binary_expression "0 < (int)param_5 - (int)param_4" number_literal < (binary_expression "(int)param_5 - (int)param_4" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n    puVar9 = param_6;\n    puVar5 = param_4 + 8;\n    do {\n      *puVar9 = puVar5[-8];\n      puVar9[1] = puVar5[-7];\n      puVar9[2] = puVar5[-6];\n      puVar9[3] = puVar5[-5];\n      puVar9[4] = puVar5[-4];\n      puVar9[5] = puVar5[-3];\n      puVar1 = (undefined4 *)puVar5[-2];\n      puVar6 = (undefined4 *)puVar9[6];\n      if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }\nLAB_001679c9:\n      puVar5[-1] = 0;\n      param_6 = puVar9 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar5[5];\n      puVar9[0xc] = puVar5[4];\n      puVar9[0xd] = uVar2;\n      uVar2 = puVar5[7];\n      puVar9[0xe] = puVar5[6];\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = param_6;\n      puVar5 = puVar5 + 0x10;\n    } while (iVar8 != 0);\n  }" { (expression_statement "puVar9 = param_6;" (assignment_expression "puVar9 = param_6" identifier = identifier) ;) (expression_statement "puVar5 = param_4 + 8;" (assignment_expression "puVar5 = param_4 + 8" identifier = (binary_expression "param_4 + 8" identifier + number_literal)) ;) (do_statement "do {\n      *puVar9 = puVar5[-8];\n      puVar9[1] = puVar5[-7];\n      puVar9[2] = puVar5[-6];\n      puVar9[3] = puVar5[-5];\n      puVar9[4] = puVar5[-4];\n      puVar9[5] = puVar5[-3];\n      puVar1 = (undefined4 *)puVar5[-2];\n      puVar6 = (undefined4 *)puVar9[6];\n      if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }\nLAB_001679c9:\n      puVar5[-1] = 0;\n      param_6 = puVar9 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar5[5];\n      puVar9[0xc] = puVar5[4];\n      puVar9[0xd] = uVar2;\n      uVar2 = puVar5[7];\n      puVar9[0xe] = puVar5[6];\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = param_6;\n      puVar5 = puVar5 + 0x10;\n    } while (iVar8 != 0);" do (compound_statement "{\n      *puVar9 = puVar5[-8];\n      puVar9[1] = puVar5[-7];\n      puVar9[2] = puVar5[-6];\n      puVar9[3] = puVar5[-5];\n      puVar9[4] = puVar5[-4];\n      puVar9[5] = puVar5[-3];\n      puVar1 = (undefined4 *)puVar5[-2];\n      puVar6 = (undefined4 *)puVar9[6];\n      if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }\nLAB_001679c9:\n      puVar5[-1] = 0;\n      param_6 = puVar9 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar5[5];\n      puVar9[0xc] = puVar5[4];\n      puVar9[0xd] = uVar2;\n      uVar2 = puVar5[7];\n      puVar9[0xe] = puVar5[6];\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = param_6;\n      puVar5 = puVar5 + 0x10;\n    }" { (expression_statement "*puVar9 = puVar5[-8];" (assignment_expression "*puVar9 = puVar5[-8]" (pointer_expression "*puVar9" * identifier) = (subscript_expression "puVar5[-8]" identifier [ number_literal ])) ;) (expression_statement "puVar9[1] = puVar5[-7];" (assignment_expression "puVar9[1] = puVar5[-7]" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = (subscript_expression "puVar5[-7]" identifier [ number_literal ])) ;) (expression_statement "puVar9[2] = puVar5[-6];" (assignment_expression "puVar9[2] = puVar5[-6]" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = (subscript_expression "puVar5[-6]" identifier [ number_literal ])) ;) (expression_statement "puVar9[3] = puVar5[-5];" (assignment_expression "puVar9[3] = puVar5[-5]" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = (subscript_expression "puVar5[-5]" identifier [ number_literal ])) ;) (expression_statement "puVar9[4] = puVar5[-4];" (assignment_expression "puVar9[4] = puVar5[-4]" (subscript_expression "puVar9[4]" identifier [ number_literal ]) = (subscript_expression "puVar5[-4]" identifier [ number_literal ])) ;) (expression_statement "puVar9[5] = puVar5[-3];" (assignment_expression "puVar9[5] = puVar5[-3]" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = (subscript_expression "puVar5[-3]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar1 = (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 "puVar6 = (undefined4 *)puVar9[6];" (assignment_expression "puVar6 = (undefined4 *)puVar9[6]" identifier = (cast_expression "(undefined4 *)puVar9[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) ;) (if_statement "if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }" if (parenthesized_expression "(puVar1 == puVar5)" ( (binary_expression "puVar1 == puVar5" identifier == identifier) )) (compound_statement "{\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }" { (expression_statement "sVar7 = puVar5[-1];" (assignment_expression "sVar7 = puVar5[-1]" identifier = (subscript_expression "puVar5[-1]" identifier [ number_literal ])) ;) (if_statement "if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }" if (parenthesized_expression "(sVar7 != 0)" ( (binary_expression "sVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }" { (if_statement "if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }" if (parenthesized_expression "(sVar7 == 1)" ( (binary_expression "sVar7 == 1" identifier == number_literal) )) (compound_statement "{\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }" { (expression_statement "*(undefined1 *)puVar6 = *(undefined1 *)puVar5;" (assignment_expression "*(undefined1 *)puVar6 = *(undefined1 *)puVar5" (pointer_expression "*(undefined1 *)puVar6" * (cast_expression "(undefined1 *)puVar6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)puVar5" * (cast_expression "(undefined1 *)puVar5" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar3 = puVar5[-1];" (assignment_expression "iVar3 = puVar5[-1]" identifier = (subscript_expression "puVar5[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar9[7] = iVar3;" (assignment_expression "puVar9[7] = iVar3" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar9[6] + iVar3) = 0;" (assignment_expression "*(undefined1 *)(puVar9[6] + iVar3) = 0" (pointer_expression "*(undefined1 *)(puVar9[6] + iVar3)" * (cast_expression "(undefined1 *)(puVar9[6] + iVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9[6] + iVar3)" ( (binary_expression "puVar9[6] + iVar3" (subscript_expression "puVar9[6]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar6 = (undefined4 *)puVar5[-2]" identifier = (cast_expression "(undefined4 *)puVar5[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[-2]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_001679c9;" goto statement_identifier ;) })) (expression_statement "memcpy(puVar6,puVar5,sVar7);" (call_expression "memcpy(puVar6,puVar5,sVar7)" identifier (argument_list "(puVar6,puVar5,sVar7)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar7 = puVar5[-1];" (assignment_expression "sVar7 = puVar5[-1]" identifier = (subscript_expression "puVar5[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar6 = (undefined4 *)puVar9[6];" (assignment_expression "puVar6 = (undefined4 *)puVar9[6]" identifier = (cast_expression "(undefined4 *)puVar9[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) ;) })) (expression_statement "puVar9[7] = sVar7;" (assignment_expression "puVar9[7] = sVar7" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar6 + sVar7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar6 + sVar7) = 0" (pointer_expression "*(undefined1 *)((int)puVar6 + sVar7)" * (cast_expression "(undefined1 *)((int)puVar6 + sVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + sVar7)" ( (binary_expression "(int)puVar6 + sVar7" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar6 = (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        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }" else (compound_statement "{\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }" { (if_statement "if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }" if (parenthesized_expression "(puVar6 == puVar9 + 8)" ( (binary_expression "puVar6 == puVar9 + 8" identifier == (binary_expression "puVar9 + 8" identifier + number_literal)) )) (compound_statement "{\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }" { (expression_statement "puVar9[6] = puVar1;" (assignment_expression "puVar9[6] = puVar1" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[7] = puVar5[-1];" (assignment_expression "puVar9[7] = puVar5[-1]" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (subscript_expression "puVar5[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar9[8] = *puVar5;" (assignment_expression "puVar9[8] = *puVar5" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = (pointer_expression "*puVar5" * identifier)) ;) }) (else_clause "else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }" else (compound_statement "{\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }" { (expression_statement "puVar9[6] = puVar1;" (assignment_expression "puVar9[6] = puVar1" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = puVar9[8];" (assignment_expression "uVar2 = puVar9[8]" identifier = (subscript_expression "puVar9[8]" identifier [ number_literal ])) ;) (expression_statement "puVar9[7] = puVar5[-1];" (assignment_expression "puVar9[7] = puVar5[-1]" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (subscript_expression "puVar5[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar9[8] = *puVar5;" (assignment_expression "puVar9[8] = *puVar5" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = (pointer_expression "*puVar5" * identifier)) ;) (if_statement "if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }" if (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" ( (binary_expression "puVar6 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }" { (expression_statement "puVar5[-2] = puVar6;" (assignment_expression "puVar5[-2] = puVar6" (subscript_expression "puVar5[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar5 = uVar2;" (assignment_expression "*puVar5 = uVar2" (pointer_expression "*puVar5" * identifier) = identifier) ;) (goto_statement "goto LAB_001679c9;" goto statement_identifier ;) })) }))) (expression_statement "puVar5[-2] = puVar5;" (assignment_expression "puVar5[-2] = puVar5" (subscript_expression "puVar5[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6 = puVar5;" (assignment_expression "puVar6 = puVar5" identifier = identifier) ;) }))) (labeled_statement "LAB_001679c9:\n      puVar5[-1] = 0;" statement_identifier : (expression_statement "puVar5[-1] = 0;" (assignment_expression "puVar5[-1] = 0" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "param_6 = puVar9 + 0x10;" (assignment_expression "param_6 = puVar9 + 0x10" identifier = (binary_expression "puVar9 + 0x10" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)puVar6 = 0;" (assignment_expression "*(undefined1 *)puVar6 = 0" (pointer_expression "*(undefined1 *)puVar6" * (cast_expression "(undefined1 *)puVar6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar2 = puVar5[5];" (assignment_expression "uVar2 = puVar5[5]" identifier = (subscript_expression "puVar5[5]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xc] = puVar5[4];" (assignment_expression "puVar9[0xc] = puVar5[4]" (subscript_expression "puVar9[0xc]" identifier [ number_literal ]) = (subscript_expression "puVar5[4]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xd] = uVar2;" (assignment_expression "puVar9[0xd] = uVar2" (subscript_expression "puVar9[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = puVar5[7];" (assignment_expression "uVar2 = puVar5[7]" identifier = (subscript_expression "puVar5[7]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xe] = puVar5[6];" (assignment_expression "puVar9[0xe] = puVar5[6]" (subscript_expression "puVar9[0xe]" identifier [ number_literal ]) = (subscript_expression "puVar5[6]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0xf] = uVar2;" (assignment_expression "puVar9[0xf] = uVar2" (subscript_expression "puVar9[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "puVar9 = param_6;" (assignment_expression "puVar9 = param_6" identifier = identifier) ;) (expression_statement "puVar5 = puVar5 + 0x10;" (assignment_expression "puVar5 = puVar5 + 0x10" identifier = (binary_expression "puVar5 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) ;) })) (expression_statement "*param_1 = param_6;" (assignment_expression "*param_1 = param_6" (pointer_expression "*param_1" * 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 (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (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 ]))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) (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 == (binary_expression IDENT + LIT)) )) (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 (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_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 *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (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 ]))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) (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 == (binary_expression IDENT + LIT)) )) (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 (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_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 *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != IDENT))) ))) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 ]))) ;) (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 (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) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) (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 == (binary_expression IDENT + LIT)) )) (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 (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 IDENT = (binary_expression IDENT + LIT)) ;) (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 (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 ]))) ;) (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 (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) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) (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 == (binary_expression IDENT + LIT)) )) (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 (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 IDENT = (binary_expression IDENT + LIT)) ;) (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 (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return ;) })))
(function_definition "void FUN_00167660(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  char cVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  size_t sVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  \n  if ((param_2 != param_3) && (param_4 != param_5)) {\n    puVar9 = param_6;\n    do {\n      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);\n      if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }\n      param_6 = puVar9 + 0x10;\n    } while ((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)\n            );\n  }\n  iVar8 = (int)param_3 - (int)param_2 >> 6;\n  if (0 < (int)param_3 - (int)param_2) {\n    puVar9 = param_2 + 8;\n    puVar5 = param_6;\n    do {\n      *puVar5 = puVar9[-8];\n      puVar5[1] = puVar9[-7];\n      puVar5[2] = puVar9[-6];\n      puVar5[3] = puVar9[-5];\n      puVar5[4] = puVar9[-4];\n      puVar5[5] = puVar9[-3];\n      puVar1 = (undefined4 *)puVar9[-2];\n      puVar6 = (undefined4 *)puVar5[6];\n      if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }\nLAB_00167833:\n      puVar9[-1] = 0;\n      param_6 = puVar5 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar9[5];\n      puVar5[0xc] = puVar9[4];\n      puVar5[0xd] = uVar2;\n      uVar2 = puVar9[7];\n      puVar5[0xe] = puVar9[6];\n      puVar5[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar9 + 0x10;\n      puVar5 = param_6;\n    } while (iVar8 != 0);\n  }\n  iVar8 = (int)param_5 - (int)param_4 >> 6;\n  if (0 < (int)param_5 - (int)param_4) {\n    puVar9 = param_6;\n    puVar5 = param_4 + 8;\n    do {\n      *puVar9 = puVar5[-8];\n      puVar9[1] = puVar5[-7];\n      puVar9[2] = puVar5[-6];\n      puVar9[3] = puVar5[-5];\n      puVar9[4] = puVar5[-4];\n      puVar9[5] = puVar5[-3];\n      puVar1 = (undefined4 *)puVar5[-2];\n      puVar6 = (undefined4 *)puVar9[6];\n      if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }\nLAB_001679c9:\n      puVar5[-1] = 0;\n      param_6 = puVar9 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar5[5];\n      puVar9[0xc] = puVar5[4];\n      puVar9[0xd] = uVar2;\n      uVar2 = puVar5[7];\n      puVar9[0xe] = puVar5[6];\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = param_6;\n      puVar5 = puVar5 + 0x10;\n    } while (iVar8 != 0);\n  }\n  *param_1 = param_6;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00167660(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)" (identifier "FUN_00167660") (parameter_list "(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)" (( "(") (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") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "undefined4 *param_4" (type_identifier "undefined4") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "undefined4 *param_5" (type_identifier "undefined4") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "undefined4 *param_6" (type_identifier "undefined4") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  char cVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  size_t sVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  \n  if ((param_2 != param_3) && (param_4 != param_5)) {\n    puVar9 = param_6;\n    do {\n      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);\n      if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }\n      param_6 = puVar9 + 0x10;\n    } while ((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)\n            );\n  }\n  iVar8 = (int)param_3 - (int)param_2 >> 6;\n  if (0 < (int)param_3 - (int)param_2) {\n    puVar9 = param_2 + 8;\n    puVar5 = param_6;\n    do {\n      *puVar5 = puVar9[-8];\n      puVar5[1] = puVar9[-7];\n      puVar5[2] = puVar9[-6];\n      puVar5[3] = puVar9[-5];\n      puVar5[4] = puVar9[-4];\n      puVar5[5] = puVar9[-3];\n      puVar1 = (undefined4 *)puVar9[-2];\n      puVar6 = (undefined4 *)puVar5[6];\n      if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }\nLAB_00167833:\n      puVar9[-1] = 0;\n      param_6 = puVar5 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar9[5];\n      puVar5[0xc] = puVar9[4];\n      puVar5[0xd] = uVar2;\n      uVar2 = puVar9[7];\n      puVar5[0xe] = puVar9[6];\n      puVar5[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar9 + 0x10;\n      puVar5 = param_6;\n    } while (iVar8 != 0);\n  }\n  iVar8 = (int)param_5 - (int)param_4 >> 6;\n  if (0 < (int)param_5 - (int)param_4) {\n    puVar9 = param_6;\n    puVar5 = param_4 + 8;\n    do {\n      *puVar9 = puVar5[-8];\n      puVar9[1] = puVar5[-7];\n      puVar9[2] = puVar5[-6];\n      puVar9[3] = puVar5[-5];\n      puVar9[4] = puVar5[-4];\n      puVar9[5] = puVar5[-3];\n      puVar1 = (undefined4 *)puVar5[-2];\n      puVar6 = (undefined4 *)puVar9[6];\n      if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }\nLAB_001679c9:\n      puVar5[-1] = 0;\n      param_6 = puVar9 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar5[5];\n      puVar9[0xc] = puVar5[4];\n      puVar9[0xd] = uVar2;\n      uVar2 = puVar5[7];\n      puVar9[0xe] = puVar5[6];\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = param_6;\n      puVar5 = puVar5 + 0x10;\n    } while (iVar8 != 0);\n  }\n  *param_1 = param_6;\n  return;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "size_t sVar7;" (primitive_type "size_t") (identifier "sVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (if_statement "if ((param_2 != param_3) && (param_4 != param_5)) {\n    puVar9 = param_6;\n    do {\n      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);\n      if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }\n      param_6 = puVar9 + 0x10;\n    } while ((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)\n            );\n  }" (if "if") (parenthesized_expression "((param_2 != param_3) && (param_4 != param_5))" (( "(") (binary_expression "(param_2 != param_3) && (param_4 != param_5)" (parenthesized_expression "(param_2 != param_3)" (( "(") (binary_expression "param_2 != param_3" (identifier "param_2") (!= "!=") (identifier "param_3")) () ")")) (&& "&&") (parenthesized_expression "(param_4 != param_5)" (( "(") (binary_expression "param_4 != param_5" (identifier "param_4") (!= "!=") (identifier "param_5")) () ")"))) () ")")) (compound_statement "{\n    puVar9 = param_6;\n    do {\n      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);\n      if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }\n      param_6 = puVar9 + 0x10;\n    } while ((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)\n            );\n  }" ({ "{") (expression_statement "puVar9 = param_6;" (assignment_expression "puVar9 = param_6" (identifier "puVar9") (= "=") (identifier "param_6")) (; ";")) (do_statement "do {\n      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);\n      if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }\n      param_6 = puVar9 + 0x10;\n    } while ((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)\n            );" (do "do") (compound_statement "{\n      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);\n      if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }\n      param_6 = puVar9 + 0x10;\n    }" ({ "{") (expression_statement "cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);" (assignment_expression "cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2)" (identifier "cVar4") (= "=") (call_expression "FUN_0015b910(&stack0x0000001c,param_4,param_2)" (identifier "FUN_0015b910") (argument_list "(&stack0x0000001c,param_4,param_2)" (( "(") (pointer_expression "&stack0x0000001c" (& "&") (identifier "stack0x0000001c")) (, ",") (identifier "param_4") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (cVar4 == '\0') {\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }\n      else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        puVar5 = param_2 + 8;\n        *puVar9 = *param_2;\n        puVar9[1] = param_2[1];\n        puVar9[2] = param_2[2];\n        puVar9[3] = param_2[3];\n        puVar9[4] = param_2[4];\n        puVar9[5] = param_2[5];\n        puVar1 = (undefined4 *)param_2[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }\nLAB_001677ba:\n        param_2[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_2[0xd];\n        puVar9[0xc] = param_2[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_2[0xf];\n        puVar9[0xe] = param_2[0xe];\n        puVar9[0xf] = uVar2;\n        param_2 = param_2 + 0x10;\n      }" ({ "{") (expression_statement "puVar5 = param_2 + 8;" (assignment_expression "puVar5 = param_2 + 8" (identifier "puVar5") (= "=") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "*puVar9 = *param_2;" (assignment_expression "*puVar9 = *param_2" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "puVar9[1] = param_2[1];" (assignment_expression "puVar9[1] = param_2[1]" (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar9[2] = param_2[2];" (assignment_expression "puVar9[2] = param_2[2]" (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar9[3] = param_2[3];" (assignment_expression "puVar9[3] = param_2[3]" (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar9[4] = param_2[4];" (assignment_expression "puVar9[4] = param_2[4]" (subscript_expression "puVar9[4]" (identifier "puVar9") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar9[5] = param_2[5];" (assignment_expression "puVar9[5] = param_2[5]" (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar1 = (undefined4 *)param_2[6];" (assignment_expression "puVar1 = (undefined4 *)param_2[6]" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)param_2[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "puVar6 = (undefined4 *)puVar9[6];" (assignment_expression "puVar6 = (undefined4 *)puVar9[6]" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)puVar9[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")))) (; ";")) (if_statement "if (puVar1 == puVar5) {\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }" (if "if") (parenthesized_expression "(puVar1 == puVar5)" (( "(") (binary_expression "puVar1 == puVar5" (identifier "puVar1") (== "==") (identifier "puVar5")) () ")")) (compound_statement "{\n          sVar7 = param_2[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_2[6];\n        }" ({ "{") (expression_statement "sVar7 = param_2[7];" (assignment_expression "sVar7 = param_2[7]" (identifier "sVar7") (= "=") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (if_statement "if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }" (if "if") (parenthesized_expression "(sVar7 != 0)" (( "(") (binary_expression "sVar7 != 0" (identifier "sVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_2[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }" ({ "{") (if_statement "if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }" (if "if") (parenthesized_expression "(sVar7 == 1)" (( "(") (binary_expression "sVar7 == 1" (identifier "sVar7") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);\n              iVar8 = param_2[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_2[6];\n              goto LAB_001677ba;\n            }" ({ "{") (expression_statement "*(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);" (assignment_expression "*(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8)" (pointer_expression "*(undefined1 *)puVar6" (* "*") (cast_expression "(undefined1 *)puVar6" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6"))) (= "=") (pointer_expression "*(undefined1 *)(param_2 + 8)" (* "*") (cast_expression "(undefined1 *)(param_2 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar8 = param_2[7];" (assignment_expression "iVar8 = param_2[7]" (identifier "iVar8") (= "=") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar9[7] = iVar8;" (assignment_expression "puVar9[7] = iVar8" (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "*(undefined1 *)(puVar9[6] + iVar8) = 0;" (assignment_expression "*(undefined1 *)(puVar9[6] + iVar8) = 0" (pointer_expression "*(undefined1 *)(puVar9[6] + iVar8)" (* "*") (cast_expression "(undefined1 *)(puVar9[6] + iVar8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9[6] + iVar8)" (( "(") (binary_expression "puVar9[6] + iVar8" (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")) (+ "+") (identifier "iVar8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5 = (undefined4 *)param_2[6];" (assignment_expression "puVar5 = (undefined4 *)param_2[6]" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)param_2[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")))) (; ";")) (goto_statement "goto LAB_001677ba;" (goto "goto") (statement_identifier "LAB_001677ba") (; ";")) (} "}"))) (expression_statement "memcpy(puVar6,puVar1,sVar7);" (call_expression "memcpy(puVar6,puVar1,sVar7)" (identifier "memcpy") (argument_list "(puVar6,puVar1,sVar7)" (( "(") (identifier "puVar6") (, ",") (identifier "puVar1") (, ",") (identifier "sVar7") () ")"))) (; ";")) (expression_statement "sVar7 = param_2[7];" (assignment_expression "sVar7 = param_2[7]" (identifier "sVar7") (= "=") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar6 = (undefined4 *)puVar9[6];" (assignment_expression "puVar6 = (undefined4 *)puVar9[6]" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)puVar9[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")))) (; ";")) (} "}"))) (expression_statement "puVar9[7] = sVar7;" (assignment_expression "puVar9[7] = sVar7" (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "sVar7")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar6 + sVar7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar6 + sVar7) = 0" (pointer_expression "*(undefined1 *)((int)puVar6 + sVar7)" (* "*") (cast_expression "(undefined1 *)((int)puVar6 + sVar7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar6 + sVar7)" (( "(") (binary_expression "(int)puVar6 + sVar7" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (+ "+") (identifier "sVar7")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5 = (undefined4 *)param_2[6];" (assignment_expression "puVar5 = (undefined4 *)param_2[6]" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)param_2[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }" (else "else") (compound_statement "{\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }\n          param_2[6] = puVar5;\n        }" ({ "{") (if_statement "if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }" (if "if") (parenthesized_expression "(puVar6 == puVar9 + 8)" (( "(") (binary_expression "puVar6 == puVar9 + 8" (identifier "puVar6") (== "==") (binary_expression "puVar9 + 8" (identifier "puVar9") (+ "+") (number_literal "8"))) () ")")) (compound_statement "{\n            puVar9[6] = puVar1;\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n          }" ({ "{") (expression_statement "puVar9[6] = puVar1;" (assignment_expression "puVar9[6] = puVar1" (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "puVar1")) (; ";")) (expression_statement "puVar9[7] = param_2[7];" (assignment_expression "puVar9[7] = param_2[7]" (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar9[8] = param_2[8];" (assignment_expression "puVar9[8] = param_2[8]" (subscript_expression "puVar9[8]" (identifier "puVar9") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }" (else "else") (compound_statement "{\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_2[7];\n            puVar9[8] = param_2[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }\n          }" ({ "{") (expression_statement "puVar9[6] = puVar1;" (assignment_expression "puVar9[6] = puVar1" (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "puVar1")) (; ";")) (expression_statement "uVar2 = puVar9[8];" (assignment_expression "uVar2 = puVar9[8]" (identifier "uVar2") (= "=") (subscript_expression "puVar9[8]" (identifier "puVar9") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "puVar9[7] = param_2[7];" (assignment_expression "puVar9[7] = param_2[7]" (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar9[8] = param_2[8];" (assignment_expression "puVar9[8] = param_2[8]" (subscript_expression "puVar9[8]" (identifier "puVar9") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]"))) (; ";")) (if_statement "if (puVar6 != (undefined4 *)0x0) {\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }" (if "if") (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar6 != (undefined4 *)0x0" (identifier "puVar6") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              param_2[6] = puVar6;\n              param_2[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_001677ba;\n            }" ({ "{") (expression_statement "param_2[6] = puVar6;" (assignment_expression "param_2[6] = puVar6" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "param_2[8] = uVar2;" (assignment_expression "param_2[8] = uVar2" (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar5 = puVar6;" (assignment_expression "puVar5 = puVar6" (identifier "puVar5") (= "=") (identifier "puVar6")) (; ";")) (goto_statement "goto LAB_001677ba;" (goto "goto") (statement_identifier "LAB_001677ba") (; ";")) (} "}"))) (} "}")))) (expression_statement "param_2[6] = puVar5;" (assignment_expression "param_2[6] = puVar5" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "puVar5")) (; ";")) (} "}")))) (labeled_statement "LAB_001677ba:\n        param_2[7] = 0;" (statement_identifier "LAB_001677ba") (: ":") (expression_statement "param_2[7] = 0;" (assignment_expression "param_2[7] = 0" (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "*(undefined1 *)puVar5 = 0;" (assignment_expression "*(undefined1 *)puVar5 = 0" (pointer_expression "*(undefined1 *)puVar5" (* "*") (cast_expression "(undefined1 *)puVar5" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = param_2[0xd];" (assignment_expression "uVar2 = param_2[0xd]" (identifier "uVar2") (= "=") (subscript_expression "param_2[0xd]" (identifier "param_2") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "puVar9[0xc] = param_2[0xc];" (assignment_expression "puVar9[0xc] = param_2[0xc]" (subscript_expression "puVar9[0xc]" (identifier "puVar9") ([ "[") (number_literal "0xc") (] "]")) (= "=") (subscript_expression "param_2[0xc]" (identifier "param_2") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "puVar9[0xd] = uVar2;" (assignment_expression "puVar9[0xd] = uVar2" (subscript_expression "puVar9[0xd]" (identifier "puVar9") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = param_2[0xf];" (assignment_expression "uVar2 = param_2[0xf]" (identifier "uVar2") (= "=") (subscript_expression "param_2[0xf]" (identifier "param_2") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "puVar9[0xe] = param_2[0xe];" (assignment_expression "puVar9[0xe] = param_2[0xe]" (subscript_expression "puVar9[0xe]" (identifier "puVar9") ([ "[") (number_literal "0xe") (] "]")) (= "=") (subscript_expression "param_2[0xe]" (identifier "param_2") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "puVar9[0xf] = uVar2;" (assignment_expression "puVar9[0xf] = uVar2" (subscript_expression "puVar9[0xf]" (identifier "puVar9") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "param_2 = param_2 + 0x10;" (assignment_expression "param_2 = param_2 + 0x10" (identifier "param_2") (= "=") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (else_clause "else {\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }" (else "else") (compound_statement "{\n        puVar5 = param_4 + 8;\n        *puVar9 = *param_4;\n        puVar9[1] = param_4[1];\n        puVar9[2] = param_4[2];\n        puVar9[3] = param_4[3];\n        puVar9[4] = param_4[4];\n        puVar9[5] = param_4[5];\n        puVar1 = (undefined4 *)param_4[6];\n        puVar6 = (undefined4 *)puVar9[6];\n        if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }\nLAB_00167706:\n        param_4[7] = 0;\n        *(undefined1 *)puVar5 = 0;\n        uVar2 = param_4[0xd];\n        puVar9[0xc] = param_4[0xc];\n        puVar9[0xd] = uVar2;\n        uVar2 = param_4[0xf];\n        puVar9[0xe] = param_4[0xe];\n        puVar9[0xf] = uVar2;\n        param_4 = param_4 + 0x10;\n      }" ({ "{") (expression_statement "puVar5 = param_4 + 8;" (assignment_expression "puVar5 = param_4 + 8" (identifier "puVar5") (= "=") (binary_expression "param_4 + 8" (identifier "param_4") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "*puVar9 = *param_4;" (assignment_expression "*puVar9 = *param_4" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "puVar9[1] = param_4[1];" (assignment_expression "puVar9[1] = param_4[1]" (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar9[2] = param_4[2];" (assignment_expression "puVar9[2] = param_4[2]" (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar9[3] = param_4[3];" (assignment_expression "puVar9[3] = param_4[3]" (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar9[4] = param_4[4];" (assignment_expression "puVar9[4] = param_4[4]" (subscript_expression "puVar9[4]" (identifier "puVar9") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "param_4[4]" (identifier "param_4") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar9[5] = param_4[5];" (assignment_expression "puVar9[5] = param_4[5]" (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "param_4[5]" (identifier "param_4") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar1 = (undefined4 *)param_4[6];" (assignment_expression "puVar1 = (undefined4 *)param_4[6]" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)param_4[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[6]" (identifier "param_4") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "puVar6 = (undefined4 *)puVar9[6];" (assignment_expression "puVar6 = (undefined4 *)puVar9[6]" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)puVar9[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")))) (; ";")) (if_statement "if (puVar1 == puVar5) {\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }\n        else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }" (if "if") (parenthesized_expression "(puVar1 == puVar5)" (( "(") (binary_expression "puVar1 == puVar5" (identifier "puVar1") (== "==") (identifier "puVar5")) () ")")) (compound_statement "{\n          sVar7 = param_4[7];\n          if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }\n          puVar9[7] = sVar7;\n          *(undefined1 *)((int)puVar6 + sVar7) = 0;\n          puVar5 = (undefined4 *)param_4[6];\n        }" ({ "{") (expression_statement "sVar7 = param_4[7];" (assignment_expression "sVar7 = param_4[7]" (identifier "sVar7") (= "=") (subscript_expression "param_4[7]" (identifier "param_4") ([ "[") (number_literal "7") (] "]"))) (; ";")) (if_statement "if (sVar7 != 0) {\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }" (if "if") (parenthesized_expression "(sVar7 != 0)" (( "(") (binary_expression "sVar7 != 0" (identifier "sVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }\n            memcpy(puVar6,puVar1,sVar7);\n            sVar7 = param_4[7];\n            puVar6 = (undefined4 *)puVar9[6];\n          }" ({ "{") (if_statement "if (sVar7 == 1) {\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }" (if "if") (parenthesized_expression "(sVar7 == 1)" (( "(") (binary_expression "sVar7 == 1" (identifier "sVar7") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);\n              iVar8 = param_4[7];\n              puVar9[7] = iVar8;\n              *(undefined1 *)(puVar9[6] + iVar8) = 0;\n              puVar5 = (undefined4 *)param_4[6];\n              goto LAB_00167706;\n            }" ({ "{") (expression_statement "*(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);" (assignment_expression "*(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8)" (pointer_expression "*(undefined1 *)puVar6" (* "*") (cast_expression "(undefined1 *)puVar6" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6"))) (= "=") (pointer_expression "*(undefined1 *)(param_4 + 8)" (* "*") (cast_expression "(undefined1 *)(param_4 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 8)" (( "(") (binary_expression "param_4 + 8" (identifier "param_4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar8 = param_4[7];" (assignment_expression "iVar8 = param_4[7]" (identifier "iVar8") (= "=") (subscript_expression "param_4[7]" (identifier "param_4") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar9[7] = iVar8;" (assignment_expression "puVar9[7] = iVar8" (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "*(undefined1 *)(puVar9[6] + iVar8) = 0;" (assignment_expression "*(undefined1 *)(puVar9[6] + iVar8) = 0" (pointer_expression "*(undefined1 *)(puVar9[6] + iVar8)" (* "*") (cast_expression "(undefined1 *)(puVar9[6] + iVar8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9[6] + iVar8)" (( "(") (binary_expression "puVar9[6] + iVar8" (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")) (+ "+") (identifier "iVar8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5 = (undefined4 *)param_4[6];" (assignment_expression "puVar5 = (undefined4 *)param_4[6]" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)param_4[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[6]" (identifier "param_4") ([ "[") (number_literal "6") (] "]")))) (; ";")) (goto_statement "goto LAB_00167706;" (goto "goto") (statement_identifier "LAB_00167706") (; ";")) (} "}"))) (expression_statement "memcpy(puVar6,puVar1,sVar7);" (call_expression "memcpy(puVar6,puVar1,sVar7)" (identifier "memcpy") (argument_list "(puVar6,puVar1,sVar7)" (( "(") (identifier "puVar6") (, ",") (identifier "puVar1") (, ",") (identifier "sVar7") () ")"))) (; ";")) (expression_statement "sVar7 = param_4[7];" (assignment_expression "sVar7 = param_4[7]" (identifier "sVar7") (= "=") (subscript_expression "param_4[7]" (identifier "param_4") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar6 = (undefined4 *)puVar9[6];" (assignment_expression "puVar6 = (undefined4 *)puVar9[6]" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)puVar9[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")))) (; ";")) (} "}"))) (expression_statement "puVar9[7] = sVar7;" (assignment_expression "puVar9[7] = sVar7" (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "sVar7")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar6 + sVar7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar6 + sVar7) = 0" (pointer_expression "*(undefined1 *)((int)puVar6 + sVar7)" (* "*") (cast_expression "(undefined1 *)((int)puVar6 + sVar7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar6 + sVar7)" (( "(") (binary_expression "(int)puVar6 + sVar7" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (+ "+") (identifier "sVar7")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5 = (undefined4 *)param_4[6];" (assignment_expression "puVar5 = (undefined4 *)param_4[6]" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)param_4[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[6]" (identifier "param_4") ([ "[") (number_literal "6") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }" (else "else") (compound_statement "{\n          if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }\n          param_4[6] = puVar5;\n        }" ({ "{") (if_statement "if (puVar6 == puVar9 + 8) {\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }\n          else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }" (if "if") (parenthesized_expression "(puVar6 == puVar9 + 8)" (( "(") (binary_expression "puVar6 == puVar9 + 8" (identifier "puVar6") (== "==") (binary_expression "puVar9 + 8" (identifier "puVar9") (+ "+") (number_literal "8"))) () ")")) (compound_statement "{\n            puVar9[6] = puVar1;\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n          }" ({ "{") (expression_statement "puVar9[6] = puVar1;" (assignment_expression "puVar9[6] = puVar1" (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "puVar1")) (; ";")) (expression_statement "puVar9[7] = param_4[7];" (assignment_expression "puVar9[7] = param_4[7]" (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "param_4[7]" (identifier "param_4") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar9[8] = param_4[8];" (assignment_expression "puVar9[8] = param_4[8]" (subscript_expression "puVar9[8]" (identifier "puVar9") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "param_4[8]" (identifier "param_4") ([ "[") (number_literal "8") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }" (else "else") (compound_statement "{\n            puVar9[6] = puVar1;\n            uVar2 = puVar9[8];\n            puVar9[7] = param_4[7];\n            puVar9[8] = param_4[8];\n            if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }\n          }" ({ "{") (expression_statement "puVar9[6] = puVar1;" (assignment_expression "puVar9[6] = puVar1" (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "puVar1")) (; ";")) (expression_statement "uVar2 = puVar9[8];" (assignment_expression "uVar2 = puVar9[8]" (identifier "uVar2") (= "=") (subscript_expression "puVar9[8]" (identifier "puVar9") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "puVar9[7] = param_4[7];" (assignment_expression "puVar9[7] = param_4[7]" (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "param_4[7]" (identifier "param_4") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar9[8] = param_4[8];" (assignment_expression "puVar9[8] = param_4[8]" (subscript_expression "puVar9[8]" (identifier "puVar9") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "param_4[8]" (identifier "param_4") ([ "[") (number_literal "8") (] "]"))) (; ";")) (if_statement "if (puVar6 != (undefined4 *)0x0) {\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }" (if "if") (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar6 != (undefined4 *)0x0" (identifier "puVar6") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              param_4[6] = puVar6;\n              param_4[8] = uVar2;\n              puVar5 = puVar6;\n              goto LAB_00167706;\n            }" ({ "{") (expression_statement "param_4[6] = puVar6;" (assignment_expression "param_4[6] = puVar6" (subscript_expression "param_4[6]" (identifier "param_4") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "param_4[8] = uVar2;" (assignment_expression "param_4[8] = uVar2" (subscript_expression "param_4[8]" (identifier "param_4") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar5 = puVar6;" (assignment_expression "puVar5 = puVar6" (identifier "puVar5") (= "=") (identifier "puVar6")) (; ";")) (goto_statement "goto LAB_00167706;" (goto "goto") (statement_identifier "LAB_00167706") (; ";")) (} "}"))) (} "}")))) (expression_statement "param_4[6] = puVar5;" (assignment_expression "param_4[6] = puVar5" (subscript_expression "param_4[6]" (identifier "param_4") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "puVar5")) (; ";")) (} "}")))) (labeled_statement "LAB_00167706:\n        param_4[7] = 0;" (statement_identifier "LAB_00167706") (: ":") (expression_statement "param_4[7] = 0;" (assignment_expression "param_4[7] = 0" (subscript_expression "param_4[7]" (identifier "param_4") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "*(undefined1 *)puVar5 = 0;" (assignment_expression "*(undefined1 *)puVar5 = 0" (pointer_expression "*(undefined1 *)puVar5" (* "*") (cast_expression "(undefined1 *)puVar5" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = param_4[0xd];" (assignment_expression "uVar2 = param_4[0xd]" (identifier "uVar2") (= "=") (subscript_expression "param_4[0xd]" (identifier "param_4") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "puVar9[0xc] = param_4[0xc];" (assignment_expression "puVar9[0xc] = param_4[0xc]" (subscript_expression "puVar9[0xc]" (identifier "puVar9") ([ "[") (number_literal "0xc") (] "]")) (= "=") (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "puVar9[0xd] = uVar2;" (assignment_expression "puVar9[0xd] = uVar2" (subscript_expression "puVar9[0xd]" (identifier "puVar9") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = param_4[0xf];" (assignment_expression "uVar2 = param_4[0xf]" (identifier "uVar2") (= "=") (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "puVar9[0xe] = param_4[0xe];" (assignment_expression "puVar9[0xe] = param_4[0xe]" (subscript_expression "puVar9[0xe]" (identifier "puVar9") ([ "[") (number_literal "0xe") (] "]")) (= "=") (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "puVar9[0xf] = uVar2;" (assignment_expression "puVar9[0xf] = uVar2" (subscript_expression "puVar9[0xf]" (identifier "puVar9") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "param_4 = param_4 + 0x10;" (assignment_expression "param_4 = param_4 + 0x10" (identifier "param_4") (= "=") (binary_expression "param_4 + 0x10" (identifier "param_4") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")))) (expression_statement "param_6 = puVar9 + 0x10;" (assignment_expression "param_6 = puVar9 + 0x10" (identifier "param_6") (= "=") (binary_expression "puVar9 + 0x10" (identifier "puVar9") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)\n            )" (( "(") (binary_expression "(param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)" (parenthesized_expression "(param_2 != param_3)" (( "(") (binary_expression "param_2 != param_3" (identifier "param_2") (!= "!=") (identifier "param_3")) () ")")) (&& "&&") (parenthesized_expression "(param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)" (( "(") (comma_expression "param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5" (assignment_expression "param_6 = puVar9 + 0x10" (identifier "param_6") (= "=") (binary_expression "puVar9 + 0x10" (identifier "puVar9") (+ "+") (number_literal "0x10"))) (, ",") (comma_expression "puVar9 = param_6, param_4 != param_5" (assignment_expression "puVar9 = param_6" (identifier "puVar9") (= "=") (identifier "param_6")) (, ",") (binary_expression "param_4 != param_5" (identifier "param_4") (!= "!=") (identifier "param_5")))) () ")"))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar8 = (int)param_3 - (int)param_2 >> 6;" (assignment_expression "iVar8 = (int)param_3 - (int)param_2 >> 6" (identifier "iVar8") (= "=") (binary_expression "(int)param_3 - (int)param_2 >> 6" (binary_expression "(int)param_3 - (int)param_2" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) (>> ">>") (number_literal "6"))) (; ";")) (if_statement "if (0 < (int)param_3 - (int)param_2) {\n    puVar9 = param_2 + 8;\n    puVar5 = param_6;\n    do {\n      *puVar5 = puVar9[-8];\n      puVar5[1] = puVar9[-7];\n      puVar5[2] = puVar9[-6];\n      puVar5[3] = puVar9[-5];\n      puVar5[4] = puVar9[-4];\n      puVar5[5] = puVar9[-3];\n      puVar1 = (undefined4 *)puVar9[-2];\n      puVar6 = (undefined4 *)puVar5[6];\n      if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }\nLAB_00167833:\n      puVar9[-1] = 0;\n      param_6 = puVar5 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar9[5];\n      puVar5[0xc] = puVar9[4];\n      puVar5[0xd] = uVar2;\n      uVar2 = puVar9[7];\n      puVar5[0xe] = puVar9[6];\n      puVar5[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar9 + 0x10;\n      puVar5 = param_6;\n    } while (iVar8 != 0);\n  }" (if "if") (parenthesized_expression "(0 < (int)param_3 - (int)param_2)" (( "(") (binary_expression "0 < (int)param_3 - (int)param_2" (number_literal "0") (< "<") (binary_expression "(int)param_3 - (int)param_2" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")))) () ")")) (compound_statement "{\n    puVar9 = param_2 + 8;\n    puVar5 = param_6;\n    do {\n      *puVar5 = puVar9[-8];\n      puVar5[1] = puVar9[-7];\n      puVar5[2] = puVar9[-6];\n      puVar5[3] = puVar9[-5];\n      puVar5[4] = puVar9[-4];\n      puVar5[5] = puVar9[-3];\n      puVar1 = (undefined4 *)puVar9[-2];\n      puVar6 = (undefined4 *)puVar5[6];\n      if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }\nLAB_00167833:\n      puVar9[-1] = 0;\n      param_6 = puVar5 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar9[5];\n      puVar5[0xc] = puVar9[4];\n      puVar5[0xd] = uVar2;\n      uVar2 = puVar9[7];\n      puVar5[0xe] = puVar9[6];\n      puVar5[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar9 + 0x10;\n      puVar5 = param_6;\n    } while (iVar8 != 0);\n  }" ({ "{") (expression_statement "puVar9 = param_2 + 8;" (assignment_expression "puVar9 = param_2 + 8" (identifier "puVar9") (= "=") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar5 = param_6;" (assignment_expression "puVar5 = param_6" (identifier "puVar5") (= "=") (identifier "param_6")) (; ";")) (do_statement "do {\n      *puVar5 = puVar9[-8];\n      puVar5[1] = puVar9[-7];\n      puVar5[2] = puVar9[-6];\n      puVar5[3] = puVar9[-5];\n      puVar5[4] = puVar9[-4];\n      puVar5[5] = puVar9[-3];\n      puVar1 = (undefined4 *)puVar9[-2];\n      puVar6 = (undefined4 *)puVar5[6];\n      if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }\nLAB_00167833:\n      puVar9[-1] = 0;\n      param_6 = puVar5 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar9[5];\n      puVar5[0xc] = puVar9[4];\n      puVar5[0xd] = uVar2;\n      uVar2 = puVar9[7];\n      puVar5[0xe] = puVar9[6];\n      puVar5[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar9 + 0x10;\n      puVar5 = param_6;\n    } while (iVar8 != 0);" (do "do") (compound_statement "{\n      *puVar5 = puVar9[-8];\n      puVar5[1] = puVar9[-7];\n      puVar5[2] = puVar9[-6];\n      puVar5[3] = puVar9[-5];\n      puVar5[4] = puVar9[-4];\n      puVar5[5] = puVar9[-3];\n      puVar1 = (undefined4 *)puVar9[-2];\n      puVar6 = (undefined4 *)puVar5[6];\n      if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }\nLAB_00167833:\n      puVar9[-1] = 0;\n      param_6 = puVar5 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar9[5];\n      puVar5[0xc] = puVar9[4];\n      puVar5[0xd] = uVar2;\n      uVar2 = puVar9[7];\n      puVar5[0xe] = puVar9[6];\n      puVar5[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = puVar9 + 0x10;\n      puVar5 = param_6;\n    }" ({ "{") (expression_statement "*puVar5 = puVar9[-8];" (assignment_expression "*puVar5 = puVar9[-8]" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (subscript_expression "puVar9[-8]" (identifier "puVar9") ([ "[") (number_literal "-8") (] "]"))) (; ";")) (expression_statement "puVar5[1] = puVar9[-7];" (assignment_expression "puVar5[1] = puVar9[-7]" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar9[-7]" (identifier "puVar9") ([ "[") (number_literal "-7") (] "]"))) (; ";")) (expression_statement "puVar5[2] = puVar9[-6];" (assignment_expression "puVar5[2] = puVar9[-6]" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar9[-6]" (identifier "puVar9") ([ "[") (number_literal "-6") (] "]"))) (; ";")) (expression_statement "puVar5[3] = puVar9[-5];" (assignment_expression "puVar5[3] = puVar9[-5]" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "puVar9[-5]" (identifier "puVar9") ([ "[") (number_literal "-5") (] "]"))) (; ";")) (expression_statement "puVar5[4] = puVar9[-4];" (assignment_expression "puVar5[4] = puVar9[-4]" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "puVar9[-4]" (identifier "puVar9") ([ "[") (number_literal "-4") (] "]"))) (; ";")) (expression_statement "puVar5[5] = puVar9[-3];" (assignment_expression "puVar5[5] = puVar9[-3]" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "puVar9[-3]" (identifier "puVar9") ([ "[") (number_literal "-3") (] "]"))) (; ";")) (expression_statement "puVar1 = (undefined4 *)puVar9[-2];" (assignment_expression "puVar1 = (undefined4 *)puVar9[-2]" (identifier "puVar1") (= "=") (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 "puVar6 = (undefined4 *)puVar5[6];" (assignment_expression "puVar6 = (undefined4 *)puVar5[6]" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)puVar5[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")))) (; ";")) (if_statement "if (puVar9 == puVar1) {\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }\n      else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }" (if "if") (parenthesized_expression "(puVar9 == puVar1)" (( "(") (binary_expression "puVar9 == puVar1" (identifier "puVar9") (== "==") (identifier "puVar1")) () ")")) (compound_statement "{\n        sVar7 = puVar9[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }\n        puVar5[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar1[-2];\n      }" ({ "{") (expression_statement "sVar7 = puVar9[-1];" (assignment_expression "sVar7 = puVar9[-1]" (identifier "sVar7") (= "=") (subscript_expression "puVar9[-1]" (identifier "puVar9") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (if_statement "if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }" (if "if") (parenthesized_expression "(sVar7 != 0)" (( "(") (binary_expression "sVar7 != 0" (identifier "sVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }\n          memcpy(puVar6,puVar9,sVar7);\n          sVar7 = puVar9[-1];\n          puVar6 = (undefined4 *)puVar5[6];\n        }" ({ "{") (if_statement "if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }" (if "if") (parenthesized_expression "(sVar7 == 1)" (( "(") (binary_expression "sVar7 == 1" (identifier "sVar7") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;\n            iVar3 = puVar9[-1];\n            puVar5[7] = iVar3;\n            *(undefined1 *)(puVar5[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar1[-2];\n            goto LAB_00167833;\n          }" ({ "{") (expression_statement "*(undefined1 *)puVar6 = *(undefined1 *)puVar9;" (assignment_expression "*(undefined1 *)puVar6 = *(undefined1 *)puVar9" (pointer_expression "*(undefined1 *)puVar6" (* "*") (cast_expression "(undefined1 *)puVar6" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6"))) (= "=") (pointer_expression "*(undefined1 *)puVar9" (* "*") (cast_expression "(undefined1 *)puVar9" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9")))) (; ";")) (expression_statement "iVar3 = puVar9[-1];" (assignment_expression "iVar3 = puVar9[-1]" (identifier "iVar3") (= "=") (subscript_expression "puVar9[-1]" (identifier "puVar9") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar5[7] = iVar3;" (assignment_expression "puVar5[7] = iVar3" (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "*(undefined1 *)(puVar5[6] + iVar3) = 0;" (assignment_expression "*(undefined1 *)(puVar5[6] + iVar3) = 0" (pointer_expression "*(undefined1 *)(puVar5[6] + iVar3)" (* "*") (cast_expression "(undefined1 *)(puVar5[6] + iVar3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5[6] + iVar3)" (( "(") (binary_expression "puVar5[6] + iVar3" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (+ "+") (identifier "iVar3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6 = (undefined4 *)puVar1[-2];" (assignment_expression "puVar6 = (undefined4 *)puVar1[-2]" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)puVar1[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar1[-2]" (identifier "puVar1") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (goto_statement "goto LAB_00167833;" (goto "goto") (statement_identifier "LAB_00167833") (; ";")) (} "}"))) (expression_statement "memcpy(puVar6,puVar9,sVar7);" (call_expression "memcpy(puVar6,puVar9,sVar7)" (identifier "memcpy") (argument_list "(puVar6,puVar9,sVar7)" (( "(") (identifier "puVar6") (, ",") (identifier "puVar9") (, ",") (identifier "sVar7") () ")"))) (; ";")) (expression_statement "sVar7 = puVar9[-1];" (assignment_expression "sVar7 = puVar9[-1]" (identifier "sVar7") (= "=") (subscript_expression "puVar9[-1]" (identifier "puVar9") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar6 = (undefined4 *)puVar5[6];" (assignment_expression "puVar6 = (undefined4 *)puVar5[6]" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)puVar5[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")))) (; ";")) (} "}"))) (expression_statement "puVar5[7] = sVar7;" (assignment_expression "puVar5[7] = sVar7" (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "sVar7")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar6 + sVar7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar6 + sVar7) = 0" (pointer_expression "*(undefined1 *)((int)puVar6 + sVar7)" (* "*") (cast_expression "(undefined1 *)((int)puVar6 + sVar7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar6 + sVar7)" (( "(") (binary_expression "(int)puVar6 + sVar7" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (+ "+") (identifier "sVar7")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6 = (undefined4 *)puVar1[-2];" (assignment_expression "puVar6 = (undefined4 *)puVar1[-2]" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)puVar1[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar1[-2]" (identifier "puVar1") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }" (else "else") (compound_statement "{\n        if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }\n        puVar9[-2] = puVar9;\n        puVar6 = puVar9;\n      }" ({ "{") (if_statement "if (puVar6 == puVar5 + 8) {\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }\n        else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }" (if "if") (parenthesized_expression "(puVar6 == puVar5 + 8)" (( "(") (binary_expression "puVar6 == puVar5 + 8" (identifier "puVar6") (== "==") (binary_expression "puVar5 + 8" (identifier "puVar5") (+ "+") (number_literal "8"))) () ")")) (compound_statement "{\n          puVar5[6] = puVar1;\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n        }" ({ "{") (expression_statement "puVar5[6] = puVar1;" (assignment_expression "puVar5[6] = puVar1" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "puVar1")) (; ";")) (expression_statement "puVar5[7] = puVar9[-1];" (assignment_expression "puVar5[7] = puVar9[-1]" (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "puVar9[-1]" (identifier "puVar9") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar5[8] = *puVar9;" (assignment_expression "puVar5[8] = *puVar9" (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]")) (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (} "}")) (else_clause "else {\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }" (else "else") (compound_statement "{\n          puVar5[6] = puVar1;\n          uVar2 = puVar5[8];\n          puVar5[7] = puVar9[-1];\n          puVar5[8] = *puVar9;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }\n        }" ({ "{") (expression_statement "puVar5[6] = puVar1;" (assignment_expression "puVar5[6] = puVar1" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "puVar1")) (; ";")) (expression_statement "uVar2 = puVar5[8];" (assignment_expression "uVar2 = puVar5[8]" (identifier "uVar2") (= "=") (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "puVar5[7] = puVar9[-1];" (assignment_expression "puVar5[7] = puVar9[-1]" (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "puVar9[-1]" (identifier "puVar9") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar5[8] = *puVar9;" (assignment_expression "puVar5[8] = *puVar9" (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]")) (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (if_statement "if (puVar6 != (undefined4 *)0x0) {\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }" (if "if") (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar6 != (undefined4 *)0x0" (identifier "puVar6") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            puVar9[-2] = puVar6;\n            *puVar9 = uVar2;\n            goto LAB_00167833;\n          }" ({ "{") (expression_statement "puVar9[-2] = puVar6;" (assignment_expression "puVar9[-2] = puVar6" (subscript_expression "puVar9[-2]" (identifier "puVar9") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "*puVar9 = uVar2;" (assignment_expression "*puVar9 = uVar2" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (identifier "uVar2")) (; ";")) (goto_statement "goto LAB_00167833;" (goto "goto") (statement_identifier "LAB_00167833") (; ";")) (} "}"))) (} "}")))) (expression_statement "puVar9[-2] = puVar9;" (assignment_expression "puVar9[-2] = puVar9" (subscript_expression "puVar9[-2]" (identifier "puVar9") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "puVar6 = puVar9;" (assignment_expression "puVar6 = puVar9" (identifier "puVar6") (= "=") (identifier "puVar9")) (; ";")) (} "}")))) (labeled_statement "LAB_00167833:\n      puVar9[-1] = 0;" (statement_identifier "LAB_00167833") (: ":") (expression_statement "puVar9[-1] = 0;" (assignment_expression "puVar9[-1] = 0" (subscript_expression "puVar9[-1]" (identifier "puVar9") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "param_6 = puVar5 + 0x10;" (assignment_expression "param_6 = puVar5 + 0x10" (identifier "param_6") (= "=") (binary_expression "puVar5 + 0x10" (identifier "puVar5") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "*(undefined1 *)puVar6 = 0;" (assignment_expression "*(undefined1 *)puVar6 = 0" (pointer_expression "*(undefined1 *)puVar6" (* "*") (cast_expression "(undefined1 *)puVar6" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = puVar9[5];" (assignment_expression "uVar2 = puVar9[5]" (identifier "uVar2") (= "=") (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar5[0xc] = puVar9[4];" (assignment_expression "puVar5[0xc] = puVar9[4]" (subscript_expression "puVar5[0xc]" (identifier "puVar5") ([ "[") (number_literal "0xc") (] "]")) (= "=") (subscript_expression "puVar9[4]" (identifier "puVar9") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar5[0xd] = uVar2;" (assignment_expression "puVar5[0xd] = uVar2" (subscript_expression "puVar5[0xd]" (identifier "puVar5") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = puVar9[7];" (assignment_expression "uVar2 = puVar9[7]" (identifier "uVar2") (= "=") (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar5[0xe] = puVar9[6];" (assignment_expression "puVar5[0xe] = puVar9[6]" (subscript_expression "puVar5[0xe]" (identifier "puVar5") ([ "[") (number_literal "0xe") (] "]")) (= "=") (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "puVar5[0xf] = uVar2;" (assignment_expression "puVar5[0xf] = uVar2" (subscript_expression "puVar5[0xf]" (identifier "puVar5") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar9 = puVar9 + 0x10;" (assignment_expression "puVar9 = puVar9 + 0x10" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 0x10" (identifier "puVar9") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "puVar5 = param_6;" (assignment_expression "puVar5 = param_6" (identifier "puVar5") (= "=") (identifier "param_6")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar8 = (int)param_5 - (int)param_4 >> 6;" (assignment_expression "iVar8 = (int)param_5 - (int)param_4 >> 6" (identifier "iVar8") (= "=") (binary_expression "(int)param_5 - (int)param_4 >> 6" (binary_expression "(int)param_5 - (int)param_4" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (- "-") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))) (>> ">>") (number_literal "6"))) (; ";")) (if_statement "if (0 < (int)param_5 - (int)param_4) {\n    puVar9 = param_6;\n    puVar5 = param_4 + 8;\n    do {\n      *puVar9 = puVar5[-8];\n      puVar9[1] = puVar5[-7];\n      puVar9[2] = puVar5[-6];\n      puVar9[3] = puVar5[-5];\n      puVar9[4] = puVar5[-4];\n      puVar9[5] = puVar5[-3];\n      puVar1 = (undefined4 *)puVar5[-2];\n      puVar6 = (undefined4 *)puVar9[6];\n      if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }\nLAB_001679c9:\n      puVar5[-1] = 0;\n      param_6 = puVar9 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar5[5];\n      puVar9[0xc] = puVar5[4];\n      puVar9[0xd] = uVar2;\n      uVar2 = puVar5[7];\n      puVar9[0xe] = puVar5[6];\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = param_6;\n      puVar5 = puVar5 + 0x10;\n    } while (iVar8 != 0);\n  }" (if "if") (parenthesized_expression "(0 < (int)param_5 - (int)param_4)" (( "(") (binary_expression "0 < (int)param_5 - (int)param_4" (number_literal "0") (< "<") (binary_expression "(int)param_5 - (int)param_4" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (- "-") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")))) () ")")) (compound_statement "{\n    puVar9 = param_6;\n    puVar5 = param_4 + 8;\n    do {\n      *puVar9 = puVar5[-8];\n      puVar9[1] = puVar5[-7];\n      puVar9[2] = puVar5[-6];\n      puVar9[3] = puVar5[-5];\n      puVar9[4] = puVar5[-4];\n      puVar9[5] = puVar5[-3];\n      puVar1 = (undefined4 *)puVar5[-2];\n      puVar6 = (undefined4 *)puVar9[6];\n      if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }\nLAB_001679c9:\n      puVar5[-1] = 0;\n      param_6 = puVar9 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar5[5];\n      puVar9[0xc] = puVar5[4];\n      puVar9[0xd] = uVar2;\n      uVar2 = puVar5[7];\n      puVar9[0xe] = puVar5[6];\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = param_6;\n      puVar5 = puVar5 + 0x10;\n    } while (iVar8 != 0);\n  }" ({ "{") (expression_statement "puVar9 = param_6;" (assignment_expression "puVar9 = param_6" (identifier "puVar9") (= "=") (identifier "param_6")) (; ";")) (expression_statement "puVar5 = param_4 + 8;" (assignment_expression "puVar5 = param_4 + 8" (identifier "puVar5") (= "=") (binary_expression "param_4 + 8" (identifier "param_4") (+ "+") (number_literal "8"))) (; ";")) (do_statement "do {\n      *puVar9 = puVar5[-8];\n      puVar9[1] = puVar5[-7];\n      puVar9[2] = puVar5[-6];\n      puVar9[3] = puVar5[-5];\n      puVar9[4] = puVar5[-4];\n      puVar9[5] = puVar5[-3];\n      puVar1 = (undefined4 *)puVar5[-2];\n      puVar6 = (undefined4 *)puVar9[6];\n      if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }\nLAB_001679c9:\n      puVar5[-1] = 0;\n      param_6 = puVar9 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar5[5];\n      puVar9[0xc] = puVar5[4];\n      puVar9[0xd] = uVar2;\n      uVar2 = puVar5[7];\n      puVar9[0xe] = puVar5[6];\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = param_6;\n      puVar5 = puVar5 + 0x10;\n    } while (iVar8 != 0);" (do "do") (compound_statement "{\n      *puVar9 = puVar5[-8];\n      puVar9[1] = puVar5[-7];\n      puVar9[2] = puVar5[-6];\n      puVar9[3] = puVar5[-5];\n      puVar9[4] = puVar5[-4];\n      puVar9[5] = puVar5[-3];\n      puVar1 = (undefined4 *)puVar5[-2];\n      puVar6 = (undefined4 *)puVar9[6];\n      if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }\nLAB_001679c9:\n      puVar5[-1] = 0;\n      param_6 = puVar9 + 0x10;\n      *(undefined1 *)puVar6 = 0;\n      uVar2 = puVar5[5];\n      puVar9[0xc] = puVar5[4];\n      puVar9[0xd] = uVar2;\n      uVar2 = puVar5[7];\n      puVar9[0xe] = puVar5[6];\n      puVar9[0xf] = uVar2;\n      iVar8 = iVar8 + -1;\n      puVar9 = param_6;\n      puVar5 = puVar5 + 0x10;\n    }" ({ "{") (expression_statement "*puVar9 = puVar5[-8];" (assignment_expression "*puVar9 = puVar5[-8]" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (subscript_expression "puVar5[-8]" (identifier "puVar5") ([ "[") (number_literal "-8") (] "]"))) (; ";")) (expression_statement "puVar9[1] = puVar5[-7];" (assignment_expression "puVar9[1] = puVar5[-7]" (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar5[-7]" (identifier "puVar5") ([ "[") (number_literal "-7") (] "]"))) (; ";")) (expression_statement "puVar9[2] = puVar5[-6];" (assignment_expression "puVar9[2] = puVar5[-6]" (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar5[-6]" (identifier "puVar5") ([ "[") (number_literal "-6") (] "]"))) (; ";")) (expression_statement "puVar9[3] = puVar5[-5];" (assignment_expression "puVar9[3] = puVar5[-5]" (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "puVar5[-5]" (identifier "puVar5") ([ "[") (number_literal "-5") (] "]"))) (; ";")) (expression_statement "puVar9[4] = puVar5[-4];" (assignment_expression "puVar9[4] = puVar5[-4]" (subscript_expression "puVar9[4]" (identifier "puVar9") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "puVar5[-4]" (identifier "puVar5") ([ "[") (number_literal "-4") (] "]"))) (; ";")) (expression_statement "puVar9[5] = puVar5[-3];" (assignment_expression "puVar9[5] = puVar5[-3]" (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "puVar5[-3]" (identifier "puVar5") ([ "[") (number_literal "-3") (] "]"))) (; ";")) (expression_statement "puVar1 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar1 = (undefined4 *)puVar5[-2]" (identifier "puVar1") (= "=") (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 "puVar6 = (undefined4 *)puVar9[6];" (assignment_expression "puVar6 = (undefined4 *)puVar9[6]" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)puVar9[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")))) (; ";")) (if_statement "if (puVar1 == puVar5) {\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }\n      else {\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }" (if "if") (parenthesized_expression "(puVar1 == puVar5)" (( "(") (binary_expression "puVar1 == puVar5" (identifier "puVar1") (== "==") (identifier "puVar5")) () ")")) (compound_statement "{\n        sVar7 = puVar5[-1];\n        if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }\n        puVar9[7] = sVar7;\n        *(undefined1 *)((int)puVar6 + sVar7) = 0;\n        puVar6 = (undefined4 *)puVar5[-2];\n      }" ({ "{") (expression_statement "sVar7 = puVar5[-1];" (assignment_expression "sVar7 = puVar5[-1]" (identifier "sVar7") (= "=") (subscript_expression "puVar5[-1]" (identifier "puVar5") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (if_statement "if (sVar7 != 0) {\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }" (if "if") (parenthesized_expression "(sVar7 != 0)" (( "(") (binary_expression "sVar7 != 0" (identifier "sVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }\n          memcpy(puVar6,puVar5,sVar7);\n          sVar7 = puVar5[-1];\n          puVar6 = (undefined4 *)puVar9[6];\n        }" ({ "{") (if_statement "if (sVar7 == 1) {\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }" (if "if") (parenthesized_expression "(sVar7 == 1)" (( "(") (binary_expression "sVar7 == 1" (identifier "sVar7") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;\n            iVar3 = puVar5[-1];\n            puVar9[7] = iVar3;\n            *(undefined1 *)(puVar9[6] + iVar3) = 0;\n            puVar6 = (undefined4 *)puVar5[-2];\n            goto LAB_001679c9;\n          }" ({ "{") (expression_statement "*(undefined1 *)puVar6 = *(undefined1 *)puVar5;" (assignment_expression "*(undefined1 *)puVar6 = *(undefined1 *)puVar5" (pointer_expression "*(undefined1 *)puVar6" (* "*") (cast_expression "(undefined1 *)puVar6" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6"))) (= "=") (pointer_expression "*(undefined1 *)puVar5" (* "*") (cast_expression "(undefined1 *)puVar5" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5")))) (; ";")) (expression_statement "iVar3 = puVar5[-1];" (assignment_expression "iVar3 = puVar5[-1]" (identifier "iVar3") (= "=") (subscript_expression "puVar5[-1]" (identifier "puVar5") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar9[7] = iVar3;" (assignment_expression "puVar9[7] = iVar3" (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "*(undefined1 *)(puVar9[6] + iVar3) = 0;" (assignment_expression "*(undefined1 *)(puVar9[6] + iVar3) = 0" (pointer_expression "*(undefined1 *)(puVar9[6] + iVar3)" (* "*") (cast_expression "(undefined1 *)(puVar9[6] + iVar3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9[6] + iVar3)" (( "(") (binary_expression "puVar9[6] + iVar3" (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")) (+ "+") (identifier "iVar3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar6 = (undefined4 *)puVar5[-2]" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)puVar5[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[-2]" (identifier "puVar5") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (goto_statement "goto LAB_001679c9;" (goto "goto") (statement_identifier "LAB_001679c9") (; ";")) (} "}"))) (expression_statement "memcpy(puVar6,puVar5,sVar7);" (call_expression "memcpy(puVar6,puVar5,sVar7)" (identifier "memcpy") (argument_list "(puVar6,puVar5,sVar7)" (( "(") (identifier "puVar6") (, ",") (identifier "puVar5") (, ",") (identifier "sVar7") () ")"))) (; ";")) (expression_statement "sVar7 = puVar5[-1];" (assignment_expression "sVar7 = puVar5[-1]" (identifier "sVar7") (= "=") (subscript_expression "puVar5[-1]" (identifier "puVar5") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar6 = (undefined4 *)puVar9[6];" (assignment_expression "puVar6 = (undefined4 *)puVar9[6]" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)puVar9[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")))) (; ";")) (} "}"))) (expression_statement "puVar9[7] = sVar7;" (assignment_expression "puVar9[7] = sVar7" (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "sVar7")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar6 + sVar7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar6 + sVar7) = 0" (pointer_expression "*(undefined1 *)((int)puVar6 + sVar7)" (* "*") (cast_expression "(undefined1 *)((int)puVar6 + sVar7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar6 + sVar7)" (( "(") (binary_expression "(int)puVar6 + sVar7" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (+ "+") (identifier "sVar7")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6 = (undefined4 *)puVar5[-2];" (assignment_expression "puVar6 = (undefined4 *)puVar5[-2]" (identifier "puVar6") (= "=") (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        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }" (else "else") (compound_statement "{\n        if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }\n        puVar5[-2] = puVar5;\n        puVar6 = puVar5;\n      }" ({ "{") (if_statement "if (puVar6 == puVar9 + 8) {\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }\n        else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }" (if "if") (parenthesized_expression "(puVar6 == puVar9 + 8)" (( "(") (binary_expression "puVar6 == puVar9 + 8" (identifier "puVar6") (== "==") (binary_expression "puVar9 + 8" (identifier "puVar9") (+ "+") (number_literal "8"))) () ")")) (compound_statement "{\n          puVar9[6] = puVar1;\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n        }" ({ "{") (expression_statement "puVar9[6] = puVar1;" (assignment_expression "puVar9[6] = puVar1" (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "puVar1")) (; ";")) (expression_statement "puVar9[7] = puVar5[-1];" (assignment_expression "puVar9[7] = puVar5[-1]" (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "puVar5[-1]" (identifier "puVar5") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar9[8] = *puVar5;" (assignment_expression "puVar9[8] = *puVar5" (subscript_expression "puVar9[8]" (identifier "puVar9") ([ "[") (number_literal "8") (] "]")) (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (} "}")) (else_clause "else {\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }" (else "else") (compound_statement "{\n          puVar9[6] = puVar1;\n          uVar2 = puVar9[8];\n          puVar9[7] = puVar5[-1];\n          puVar9[8] = *puVar5;\n          if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }\n        }" ({ "{") (expression_statement "puVar9[6] = puVar1;" (assignment_expression "puVar9[6] = puVar1" (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "puVar1")) (; ";")) (expression_statement "uVar2 = puVar9[8];" (assignment_expression "uVar2 = puVar9[8]" (identifier "uVar2") (= "=") (subscript_expression "puVar9[8]" (identifier "puVar9") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "puVar9[7] = puVar5[-1];" (assignment_expression "puVar9[7] = puVar5[-1]" (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "puVar5[-1]" (identifier "puVar5") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar9[8] = *puVar5;" (assignment_expression "puVar9[8] = *puVar5" (subscript_expression "puVar9[8]" (identifier "puVar9") ([ "[") (number_literal "8") (] "]")) (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (if_statement "if (puVar6 != (undefined4 *)0x0) {\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }" (if "if") (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar6 != (undefined4 *)0x0" (identifier "puVar6") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            puVar5[-2] = puVar6;\n            *puVar5 = uVar2;\n            goto LAB_001679c9;\n          }" ({ "{") (expression_statement "puVar5[-2] = puVar6;" (assignment_expression "puVar5[-2] = puVar6" (subscript_expression "puVar5[-2]" (identifier "puVar5") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "*puVar5 = uVar2;" (assignment_expression "*puVar5 = uVar2" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "uVar2")) (; ";")) (goto_statement "goto LAB_001679c9;" (goto "goto") (statement_identifier "LAB_001679c9") (; ";")) (} "}"))) (} "}")))) (expression_statement "puVar5[-2] = puVar5;" (assignment_expression "puVar5[-2] = puVar5" (subscript_expression "puVar5[-2]" (identifier "puVar5") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar5")) (; ";")) (expression_statement "puVar6 = puVar5;" (assignment_expression "puVar6 = puVar5" (identifier "puVar6") (= "=") (identifier "puVar5")) (; ";")) (} "}")))) (labeled_statement "LAB_001679c9:\n      puVar5[-1] = 0;" (statement_identifier "LAB_001679c9") (: ":") (expression_statement "puVar5[-1] = 0;" (assignment_expression "puVar5[-1] = 0" (subscript_expression "puVar5[-1]" (identifier "puVar5") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "param_6 = puVar9 + 0x10;" (assignment_expression "param_6 = puVar9 + 0x10" (identifier "param_6") (= "=") (binary_expression "puVar9 + 0x10" (identifier "puVar9") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "*(undefined1 *)puVar6 = 0;" (assignment_expression "*(undefined1 *)puVar6 = 0" (pointer_expression "*(undefined1 *)puVar6" (* "*") (cast_expression "(undefined1 *)puVar6" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = puVar5[5];" (assignment_expression "uVar2 = puVar5[5]" (identifier "uVar2") (= "=") (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar9[0xc] = puVar5[4];" (assignment_expression "puVar9[0xc] = puVar5[4]" (subscript_expression "puVar9[0xc]" (identifier "puVar9") ([ "[") (number_literal "0xc") (] "]")) (= "=") (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar9[0xd] = uVar2;" (assignment_expression "puVar9[0xd] = uVar2" (subscript_expression "puVar9[0xd]" (identifier "puVar9") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = puVar5[7];" (assignment_expression "uVar2 = puVar5[7]" (identifier "uVar2") (= "=") (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar9[0xe] = puVar5[6];" (assignment_expression "puVar9[0xe] = puVar5[6]" (subscript_expression "puVar9[0xe]" (identifier "puVar9") ([ "[") (number_literal "0xe") (] "]")) (= "=") (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "puVar9[0xf] = uVar2;" (assignment_expression "puVar9[0xf] = uVar2" (subscript_expression "puVar9[0xf]" (identifier "puVar9") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar9 = param_6;" (assignment_expression "puVar9 = param_6" (identifier "puVar9") (= "=") (identifier "param_6")) (; ";")) (expression_statement "puVar5 = puVar5 + 0x10;" (assignment_expression "puVar5 = puVar5 + 0x10" (identifier "puVar5") (= "=") (binary_expression "puVar5 + 0x10" (identifier "puVar5") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "*param_1 = param_6;" (assignment_expression "*param_1 = param_6" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "param_6")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* DWARF original name: __move_merge<gold::Input_section_info*,
   __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::var_19*,_std::vector<gold::var_19,_std::var_1<gold::var_19>var_3>var_3>
 std::
 __move_merge<gold::var_19*,___gnu_cxx::__normal_iterator<gold::var_19*,_std::vector<gold::var_19>var_3>,___gnu_cxx::__ops::_Iter_comp_iter<gold::type_4>var_3>
           (var_19 *var_20,var_19 *var_7,var_19 *var_8,
           var_19 *var_9,
           __normal_iterator<gold::var_19*,_std::vector<gold::var_19,_std::var_1<gold::var_19>var_3>var_3>
           __result,_Iter_comp_iter<gold::type_4> __comp)

{
  type_1 var_12;
  type_2 var_14;
  type_3 var_16;
  bool bVar4;
  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;
  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;
  size_t var_13;
  int var_17;
  type_2 *var_11;
  type_2 *var_18;
  
  var_18 = (type_2 *)__comp._M_comp.filename_sort_;
  if ((var_7 != var_8) && (var_9 != __result._M_current)) {
    var_11 = (type_2 *)__comp._M_comp.filename_sort_;
    do {
      bVar4 = gold::Input_section_sorter::var_10()
                        ((type_4 *)&__comp._M_comp.section_sort_,var_9,var_7);
      if (bVar4) {
        var_5 = &(var_9->section_name_).field_2;
        *var_11 = (var_9->input_section_).shndx_;
        var_11[1] = (var_9->input_section_).p2align_;
        var_11[2] = *(type_2 *)&(var_9->input_section_).u1_;
        var_11[3] = *(type_2 *)((int)&(var_9->input_section_).u1_ + 4);
        *(type_5 *)(var_11 + 4) = (var_9->input_section_).u2_;
        var_11[5] = (var_9->input_section_).section_order_index_;
        var_12 = (var_9->section_name_)._M_dataplus._M_p;
        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_11[6];
        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_12 == var_5) {
          var_13 = (var_9->section_name_)._M_string_length;
          if (var_13 != 0) {
            if (var_13 == 1) {
              var_6->_M_local_buf[0] = (var_9->section_name_).field_2._M_local_buf[0];
              var_14 = (var_9->section_name_)._M_string_length;
              var_11[7] = var_14;
              *(type_6 *)(var_11[6] + var_14) = 0;
              var_5 = (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_9->section_name_)._M_dataplus._M_p;
              goto LAB_00167706;
            }
            var_15(var_6,var_12,var_13);
            var_13 = (var_9->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_11[6];
          }
          var_11[7] = var_13;
          var_6->_M_local_buf[var_13] = '\0';
          var_5 = (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_9->section_name_)._M_dataplus._M_p;
        }
        else {
          if (var_6 == (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                         *)(var_11 + 8)) {
            var_11[6] = (type_2)var_12;
            var_11[7] = (var_9->section_name_)._M_string_length;
            var_11[8] = (var_9->section_name_).field_2._M_allocated_capacity;
          }
          else {
            var_11[6] = (type_2)var_12;
            var_14 = var_11[8];
            var_11[7] = (var_9->section_name_)._M_string_length;
            var_11[8] = (var_9->section_name_).field_2._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) {
              (var_9->section_name_)._M_dataplus._M_p = (type_1)var_6;
              (var_9->section_name_).field_2._M_allocated_capacity = var_14;
              var_5 = var_6;
              goto LAB_00167706;
            }
          }
          (var_9->section_name_)._M_dataplus._M_p = (type_1)var_5;
        }
LAB_00167706:
        (var_9->section_name_)._M_string_length = 0;
        var_5->_M_local_buf[0] = '\0';
        var_14 = *(type_2 *)((int)&var_9->size_ + 4);
        var_11[0xc] = (type_2)var_9->size_;
        var_11[0xd] = var_14;
        var_14 = *(type_2 *)((int)&var_9->addralign_ + 4);
        var_11[0xe] = (type_2)var_9->addralign_;
        var_11[0xf] = var_14;
        var_9 = var_9 + 1;
      }
      else {
        var_5 = &(var_7->section_name_).field_2;
        *var_11 = (var_7->input_section_).shndx_;
        var_11[1] = (var_7->input_section_).p2align_;
        var_11[2] = *(type_2 *)&(var_7->input_section_).u1_;
        var_11[3] = *(type_2 *)((int)&(var_7->input_section_).u1_ + 4);
        *(type_5 *)(var_11 + 4) = (var_7->input_section_).u2_;
        var_11[5] = (var_7->input_section_).section_order_index_;
        var_12 = (var_7->section_name_)._M_dataplus._M_p;
        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_11[6];
        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_12 == var_5) {
          var_13 = (var_7->section_name_)._M_string_length;
          if (var_13 != 0) {
            if (var_13 == 1) {
              var_6->_M_local_buf[0] = (var_7->section_name_).field_2._M_local_buf[0];
              var_14 = (var_7->section_name_)._M_string_length;
              var_11[7] = var_14;
              *(type_6 *)(var_11[6] + var_14) = 0;
              var_5 = (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->section_name_)._M_dataplus._M_p;
              goto LAB_001677ba;
            }
            var_15(var_6,var_12,var_13);
            var_13 = (var_7->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_11[6];
          }
          var_11[7] = var_13;
          var_6->_M_local_buf[var_13] = '\0';
          var_5 = (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->section_name_)._M_dataplus._M_p;
        }
        else {
          if (var_6 == (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                         *)(var_11 + 8)) {
            var_11[6] = (type_2)var_12;
            var_11[7] = (var_7->section_name_)._M_string_length;
            var_11[8] = (var_7->section_name_).field_2._M_allocated_capacity;
          }
          else {
            var_11[6] = (type_2)var_12;
            var_14 = var_11[8];
            var_11[7] = (var_7->section_name_)._M_string_length;
            var_11[8] = (var_7->section_name_).field_2._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) {
              (var_7->section_name_)._M_dataplus._M_p = (type_1)var_6;
              (var_7->section_name_).field_2._M_allocated_capacity = var_14;
              var_5 = var_6;
              goto LAB_001677ba;
            }
          }
          (var_7->section_name_)._M_dataplus._M_p = (type_1)var_5;
        }
LAB_001677ba:
        (var_7->section_name_)._M_string_length = 0;
        var_5->_M_local_buf[0] = '\0';
        var_14 = *(type_2 *)((int)&var_7->size_ + 4);
        var_11[0xc] = (type_2)var_7->size_;
        var_11[0xd] = var_14;
        var_14 = *(type_2 *)((int)&var_7->addralign_ + 4);
        var_11[0xe] = (type_2)var_7->addralign_;
        var_11[0xf] = var_14;
        var_7 = var_7 + 1;
      }
      var_18 = var_11 + 0x10;
    } while ((var_7 != var_8) &&
            (var_18 = var_11 + 0x10, var_11 = var_18, var_9 != __result._M_current));
  }
  var_17 = (int)var_8 - (int)var_7 >> 6;
  if (0 < (int)var_8 - (int)var_7) {
    var_5 = &(var_7->section_name_).field_2;
    var_11 = var_18;
    do {
      *var_11 = var_5[-2]._M_allocated_capacity;
      var_11[1] = *(type_2 *)((int)var_5 + -0x1c);
      var_11[2] = *(type_2 *)((int)var_5 + -0x18);
      var_11[3] = *(type_2 *)((int)var_5 + -0x14);
      var_11[4] = var_5[-1]._M_allocated_capacity;
      var_11[5] = *(type_2 *)((int)var_5 + -0xc);
      var_12 = (((type_7 *)((int)var_5 + -8))->_M_dataplus)._M_p;
      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_11[6];
      if (var_5 == (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_12) {
        var_13 = *(type_3 *)((int)var_5 + -4);
        if (var_13 != 0) {
          if (var_13 == 1) {
            var_6->_M_local_buf[0] = var_5->_M_local_buf[0];
            var_16 = *(type_3 *)((int)var_5 + -4);
            var_11[7] = var_16;
            *(type_6 *)(var_11[6] + var_16) = 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_12 + -8);
            goto LAB_00167833;
          }
          var_15(var_6,var_5,var_13);
          var_13 = *(type_3 *)((int)var_5 + -4);
          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_11[6];
        }
        var_11[7] = var_13;
        var_6->_M_local_buf[var_13] = '\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_12 + -8);
      }
      else {
        if (var_6 == (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                       *)(var_11 + 8)) {
          var_11[6] = (type_2)var_12;
          var_11[7] = *(type_3 *)((int)var_5 + -4);
          var_11[8] = var_5->_M_allocated_capacity;
        }
        else {
          var_11[6] = (type_2)var_12;
          var_16 = var_11[8];
          var_11[7] = *(type_3 *)((int)var_5 + -4);
          var_11[8] = var_5->_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) {
            (((type_7 *)((int)var_5 + -8))->_M_dataplus)._M_p = (type_1)var_6;
            var_5->_M_allocated_capacity = var_16;
            goto LAB_00167833;
          }
        }
        (((type_7 *)((int)var_5 + -8))->_M_dataplus)._M_p = (type_1)var_5;
        var_6 = var_5;
      }
LAB_00167833:
      *(type_3 *)((int)var_5 + -4) = 0;
      var_18 = var_11 + 0x10;
      var_6->_M_local_buf[0] = '\0';
      var_14 = *(type_2 *)((int)var_5 + 0x14);
      var_11[0xc] = var_5[1]._M_allocated_capacity;
      var_11[0xd] = var_14;
      var_14 = *(type_2 *)((int)var_5 + 0x1c);
      var_11[0xe] = *(type_2 *)((int)var_5 + 0x18);
      var_11[0xf] = var_14;
      var_17 = var_17 + -1;
      var_5 = var_5 + 4;
      var_11 = var_18;
    } while (var_17 != 0);
  }
  var_17 = (int)__result._M_current - (int)var_9 >> 6;
  if (0 < (int)__result._M_current - (int)var_9) {
    var_11 = var_18;
    var_5 = &(var_9->section_name_).field_2;
    do {
      *var_11 = var_5[-2]._M_allocated_capacity;
      var_11[1] = *(type_2 *)((int)var_5 + -0x1c);
      var_11[2] = *(type_2 *)((int)var_5 + -0x18);
      var_11[3] = *(type_2 *)((int)var_5 + -0x14);
      var_11[4] = var_5[-1]._M_allocated_capacity;
      var_11[5] = *(type_2 *)((int)var_5 + -0xc);
      var_18 = (type_2 *)(((type_7 *)((int)var_5 + -8))->_M_dataplus)._M_p;
      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_11[6];
      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_18 == var_5) {
        var_13 = *(type_3 *)((int)var_5 + -4);
        if (var_13 != 0) {
          if (var_13 == 1) {
            var_6->_M_local_buf[0] = var_5->_M_local_buf[0];
            var_14 = *(type_3 *)((int)var_5 + -4);
            var_11[7] = var_14;
            *(type_6 *)(var_11[6] + var_14) = 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
                      *)(((type_7 *)((int)var_5 + -8))->_M_dataplus)._M_p;
            goto LAB_001679c9;
          }
          var_15(var_6,var_5,var_13);
          var_13 = *(type_3 *)((int)var_5 + -4);
          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_11[6];
        }
        var_11[7] = var_13;
        var_6->_M_local_buf[var_13] = '\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
                  *)(((type_7 *)((int)var_5 + -8))->_M_dataplus)._M_p;
      }
      else {
        if (var_6 == (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                       *)(var_11 + 8)) {
          var_11[6] = (type_2)var_18;
          var_11[7] = *(type_3 *)((int)var_5 + -4);
          var_11[8] = var_5->_M_allocated_capacity;
        }
        else {
          var_11[6] = (type_2)var_18;
          var_14 = var_11[8];
          var_11[7] = *(type_3 *)((int)var_5 + -4);
          var_11[8] = var_5->_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) {
            (((type_7 *)((int)var_5 + -8))->_M_dataplus)._M_p = (type_1)var_6;
            var_5->_M_allocated_capacity = var_14;
            goto LAB_001679c9;
          }
        }
        (((type_7 *)((int)var_5 + -8))->_M_dataplus)._M_p = (type_1)var_5;
        var_6 = var_5;
      }
LAB_001679c9:
      *(type_2 *)((int)var_5 + -4) = 0;
      var_18 = var_11 + 0x10;
      var_6->_M_local_buf[0] = '\0';
      var_14 = *(type_2 *)((int)var_5 + 0x14);
      var_11[0xc] = var_5[1]._M_allocated_capacity;
      var_11[0xd] = var_14;
      var_14 = *(type_2 *)((int)var_5 + 0x1c);
      var_11[0xe] = *(type_2 *)((int)var_5 + 0x18);
      var_11[0xf] = var_14;
      var_17 = var_17 + -1;
      var_11 = var_18;
      var_5 = var_5 + 4;
    } while (var_17 != 0);
  }
  (var_20->input_section_).shndx_ = (type_2)var_18;
  return (__normal_iterator<gold::var_19*,_std::vector<gold::var_19,_std::var_1<gold::var_19>var_3>var_3>
          )var_20;
}


(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: (pointer_declarator declarator: (identifier))) (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: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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))))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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))) (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))))) (goto_statement label: (statement_identifier)))) (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: (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: (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))))) 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: (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)))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (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: (identifier))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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))))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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))) (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))))) (goto_statement label: (statement_identifier)))) (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: (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: (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))))) 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: (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)))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (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: (identifier))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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))))) (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: (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))) (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))))) (goto_statement label: (statement_identifier)))) (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: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (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: (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: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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))))) (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: (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))) (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))))) (goto_statement label: (statement_identifier)))) (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: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (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: (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: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (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 *param_5,undefined4 *param_6)

{
  undefined4 *puVar1;
  undefined4 uVar2;
  int iVar3;
  char cVar4;
  undefined4 *puVar5;
  undefined4 *puVar6;
  size_t sVar7;
  int iVar8;
  undefined4 *puVar9;
  
  if ((param_2 != param_3) && (param_4 != param_5)) {
    puVar9 = param_6;
    do {
      cVar4 = FUN_0015b910(&stack0x0000001c,param_4,param_2);
      if (cVar4 == '\0') {
        puVar5 = param_2 + 8;
        *puVar9 = *param_2;
        puVar9[1] = param_2[1];
        puVar9[2] = param_2[2];
        puVar9[3] = param_2[3];
        puVar9[4] = param_2[4];
        puVar9[5] = param_2[5];
        puVar1 = (undefined4 *)param_2[6];
        puVar6 = (undefined4 *)puVar9[6];
        if (puVar1 == puVar5) {
          sVar7 = param_2[7];
          if (sVar7 != 0) {
            if (sVar7 == 1) {
              *(undefined1 *)puVar6 = *(undefined1 *)(param_2 + 8);
              iVar8 = param_2[7];
              puVar9[7] = iVar8;
              *(undefined1 *)(puVar9[6] + iVar8) = 0;
              puVar5 = (undefined4 *)param_2[6];
              goto LAB_001677ba;
            }
            memcpy(puVar6,puVar1,sVar7);
            sVar7 = param_2[7];
            puVar6 = (undefined4 *)puVar9[6];
          }
          puVar9[7] = sVar7;
          *(undefined1 *)((int)puVar6 + sVar7) = 0;
          puVar5 = (undefined4 *)param_2[6];
        }
        else {
          if (puVar6 == puVar9 + 8) {
            puVar9[6] = puVar1;
            puVar9[7] = param_2[7];
            puVar9[8] = param_2[8];
          }
          else {
            puVar9[6] = puVar1;
            uVar2 = puVar9[8];
            puVar9[7] = param_2[7];
            puVar9[8] = param_2[8];
            if (puVar6 != (undefined4 *)0x0) {
              param_2[6] = puVar6;
              param_2[8] = uVar2;
              puVar5 = puVar6;
              goto LAB_001677ba;
            }
          }
          param_2[6] = puVar5;
        }
LAB_001677ba:
        param_2[7] = 0;
        *(undefined1 *)puVar5 = 0;
        uVar2 = param_2[0xd];
        puVar9[0xc] = param_2[0xc];
        puVar9[0xd] = uVar2;
        uVar2 = param_2[0xf];
        puVar9[0xe] = param_2[0xe];
        puVar9[0xf] = uVar2;
        param_2 = param_2 + 0x10;
      }
      else {
        puVar5 = param_4 + 8;
        *puVar9 = *param_4;
        puVar9[1] = param_4[1];
        puVar9[2] = param_4[2];
        puVar9[3] = param_4[3];
        puVar9[4] = param_4[4];
        puVar9[5] = param_4[5];
        puVar1 = (undefined4 *)param_4[6];
        puVar6 = (undefined4 *)puVar9[6];
        if (puVar1 == puVar5) {
          sVar7 = param_4[7];
          if (sVar7 != 0) {
            if (sVar7 == 1) {
              *(undefined1 *)puVar6 = *(undefined1 *)(param_4 + 8);
              iVar8 = param_4[7];
              puVar9[7] = iVar8;
              *(undefined1 *)(puVar9[6] + iVar8) = 0;
              puVar5 = (undefined4 *)param_4[6];
              goto LAB_00167706;
            }
            memcpy(puVar6,puVar1,sVar7);
            sVar7 = param_4[7];
            puVar6 = (undefined4 *)puVar9[6];
          }
          puVar9[7] = sVar7;
          *(undefined1 *)((int)puVar6 + sVar7) = 0;
          puVar5 = (undefined4 *)param_4[6];
        }
        else {
          if (puVar6 == puVar9 + 8) {
            puVar9[6] = puVar1;
            puVar9[7] = param_4[7];
            puVar9[8] = param_4[8];
          }
          else {
            puVar9[6] = puVar1;
            uVar2 = puVar9[8];
            puVar9[7] = param_4[7];
            puVar9[8] = param_4[8];
            if (puVar6 != (undefined4 *)0x0) {
              param_4[6] = puVar6;
              param_4[8] = uVar2;
              puVar5 = puVar6;
              goto LAB_00167706;
            }
          }
          param_4[6] = puVar5;
        }
LAB_00167706:
        param_4[7] = 0;
        *(undefined1 *)puVar5 = 0;
        uVar2 = param_4[0xd];
        puVar9[0xc] = param_4[0xc];
        puVar9[0xd] = uVar2;
        uVar2 = param_4[0xf];
        puVar9[0xe] = param_4[0xe];
        puVar9[0xf] = uVar2;
        param_4 = param_4 + 0x10;
      }
      param_6 = puVar9 + 0x10;
    } while ((param_2 != param_3) && (param_6 = puVar9 + 0x10, puVar9 = param_6, param_4 != param_5)
            );
  }
  iVar8 = (int)param_3 - (int)param_2 >> 6;
  if (0 < (int)param_3 - (int)param_2) {
    puVar9 = param_2 + 8;
    puVar5 = param_6;
    do {
      *puVar5 = puVar9[-8];
      puVar5[1] = puVar9[-7];
      puVar5[2] = puVar9[-6];
      puVar5[3] = puVar9[-5];
      puVar5[4] = puVar9[-4];
      puVar5[5] = puVar9[-3];
      puVar1 = (undefined4 *)puVar9[-2];
      puVar6 = (undefined4 *)puVar5[6];
      if (puVar9 == puVar1) {
        sVar7 = puVar9[-1];
        if (sVar7 != 0) {
          if (sVar7 == 1) {
            *(undefined1 *)puVar6 = *(undefined1 *)puVar9;
            iVar3 = puVar9[-1];
            puVar5[7] = iVar3;
            *(undefined1 *)(puVar5[6] + iVar3) = 0;
            puVar6 = (undefined4 *)puVar1[-2];
            goto LAB_00167833;
          }
          memcpy(puVar6,puVar9,sVar7);
          sVar7 = puVar9[-1];
          puVar6 = (undefined4 *)puVar5[6];
        }
        puVar5[7] = sVar7;
        *(undefined1 *)((int)puVar6 + sVar7) = 0;
        puVar6 = (undefined4 *)puVar1[-2];
      }
      else {
        if (puVar6 == puVar5 + 8) {
          puVar5[6] = puVar1;
          puVar5[7] = puVar9[-1];
          puVar5[8] = *puVar9;
        }
        else {
          puVar5[6] = puVar1;
          uVar2 = puVar5[8];
          puVar5[7] = puVar9[-1];
          puVar5[8] = *puVar9;
          if (puVar6 != (undefined4 *)0x0) {
            puVar9[-2] = puVar6;
            *puVar9 = uVar2;
            goto LAB_00167833;
          }
        }
        puVar9[-2] = puVar9;
        puVar6 = puVar9;
      }
LAB_00167833:
      puVar9[-1] = 0;
      param_6 = puVar5 + 0x10;
      *(undefined1 *)puVar6 = 0;
      uVar2 = puVar9[5];
      puVar5[0xc] = puVar9[4];
      puVar5[0xd] = uVar2;
      uVar2 = puVar9[7];
      puVar5[0xe] = puVar9[6];
      puVar5[0xf] = uVar2;
      iVar8 = iVar8 + -1;
      puVar9 = puVar9 + 0x10;
      puVar5 = param_6;
    } while (iVar8 != 0);
  }
  iVar8 = (int)param_5 - (int)param_4 >> 6;
  if (0 < (int)param_5 - (int)param_4) {
    puVar9 = param_6;
    puVar5 = param_4 + 8;
    do {
      *puVar9 = puVar5[-8];
      puVar9[1] = puVar5[-7];
      puVar9[2] = puVar5[-6];
      puVar9[3] = puVar5[-5];
      puVar9[4] = puVar5[-4];
      puVar9[5] = puVar5[-3];
      puVar1 = (undefined4 *)puVar5[-2];
      puVar6 = (undefined4 *)puVar9[6];
      if (puVar1 == puVar5) {
        sVar7 = puVar5[-1];
        if (sVar7 != 0) {
          if (sVar7 == 1) {
            *(undefined1 *)puVar6 = *(undefined1 *)puVar5;
            iVar3 = puVar5[-1];
            puVar9[7] = iVar3;
            *(undefined1 *)(puVar9[6] + iVar3) = 0;
            puVar6 = (undefined4 *)puVar5[-2];
            goto LAB_001679c9;
          }
          memcpy(puVar6,puVar5,sVar7);
          sVar7 = puVar5[-1];
          puVar6 = (undefined4 *)puVar9[6];
        }
        puVar9[7] = sVar7;
        *(undefined1 *)((int)puVar6 + sVar7) = 0;
        puVar6 = (undefined4 *)puVar5[-2];
      }
      else {
        if (puVar6 == puVar9 + 8) {
          puVar9[6] = puVar1;
          puVar9[7] = puVar5[-1];
          puVar9[8] = *puVar5;
        }
        else {
          puVar9[6] = puVar1;
          uVar2 = puVar9[8];
          puVar9[7] = puVar5[-1];
          puVar9[8] = *puVar5;
          if (puVar6 != (undefined4 *)0x0) {
            puVar5[-2] = puVar6;
            *puVar5 = uVar2;
            goto LAB_001679c9;
          }
        }
        puVar5[-2] = puVar5;
        puVar6 = puVar5;
      }
LAB_001679c9:
      puVar5[-1] = 0;
      param_6 = puVar9 + 0x10;
      *(undefined1 *)puVar6 = 0;
      uVar2 = puVar5[5];
      puVar9[0xc] = puVar5[4];
      puVar9[0xd] = uVar2;
      uVar2 = puVar5[7];
      puVar9[0xe] = puVar5[6];
      puVar9[0xf] = uVar2;
      iVar8 = iVar8 + -1;
      puVar9 = param_6;
      puVar5 = puVar5 + 0x10;
    } while (iVar8 != 0);
  }
  *param_1 = param_6;
  return;
}

