
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* DWARF original name:
   __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,
   std::vector<gold::Input_section_info> >, int,
   __gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter> > */

void std::
     __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>
               (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>
                __first,__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>
                        __middle,
               __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>
               __last,int __len1,int __len2,_Iter_comp_iter<gold::Input_section_sorter> __comp)

{
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *__src;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *__src_00;
  undefined4 uVar1;
  size_type sVar2;
  _Iter_comp_iter<gold::Input_section_sorter> __comp_00;
  _Iter_comp_iter<gold::Input_section_sorter> __comp_01;
  uint64_t uVar3;
  bool bVar4;
  __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>
  __middle_00;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar5;
  pointer pcVar6;
  size_t __n;
  int iVar7;
  __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>
  __last_00;
  __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>
  __middle_01;
  int __len1_00;
  int local_6c;
  Input_section_info *local_60;
  Input_section_info __tmp;
  
  if ((__len1 != 0) && (__len2 != 0)) {
    if (__len2 + __len1 == 2) {
      bVar4 = gold::Input_section_sorter::operator()
                        (&__comp._M_comp,__middle._M_current,__first._M_current);
      if (bVar4) {
        __src_00 = &__tmp.section_name_.field_2;
        __tmp.input_section_.shndx_ = ((__first._M_current)->input_section_).shndx_;
        __tmp.input_section_.p2align_ = ((__first._M_current)->input_section_).p2align_;
        __tmp.input_section_.u1_.data_size._0_4_ =
             *(undefined4 *)&((__first._M_current)->input_section_).u1_;
        __tmp.input_section_.u1_.data_size._4_4_ =
             *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4);
        __tmp.input_section_.u2_ = ((__first._M_current)->input_section_).u2_;
        __tmp.input_section_.section_order_index_ =
             ((__first._M_current)->input_section_).section_order_index_;
        __tmp.section_name_._M_dataplus._M_p =
             ((__first._M_current)->section_name_)._M_dataplus._M_p;
        paVar5 = &((__first._M_current)->section_name_).field_2;
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)__tmp.section_name_._M_dataplus._M_p == paVar5) {
          __tmp.section_name_.field_2._M_allocated_capacity =
               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;
          __tmp.section_name_.field_2._4_4_ =
               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 4);
          __tmp.section_name_.field_2._8_4_ =
               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 8);
          __tmp.section_name_.field_2._12_4_ =
               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 0xc);
          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;
        }
        else {
          __tmp.section_name_.field_2._M_allocated_capacity =
               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;
        }
        __tmp.section_name_._M_string_length =
             ((__first._M_current)->section_name_)._M_string_length;
        __tmp.size_._0_4_ = (undefined4)(__first._M_current)->size_;
        __tmp.size_._4_4_ = *(undefined4 *)((int)&(__first._M_current)->size_ + 4);
        ((__first._M_current)->section_name_)._M_string_length = 0;
        ((__first._M_current)->section_name_).field_2._M_local_buf[0] = '\0';
        __tmp.addralign_._0_4_ = (undefined4)(__first._M_current)->addralign_;
        ((__first._M_current)->section_name_)._M_dataplus._M_p = (pointer)paVar5;
        __tmp.addralign_._4_4_ = *(undefined4 *)((int)&(__first._M_current)->addralign_ + 4);
        ((__first._M_current)->input_section_).shndx_ =
             ((__middle._M_current)->input_section_).shndx_;
        ((__first._M_current)->input_section_).p2align_ =
             ((__middle._M_current)->input_section_).p2align_;
        *(undefined4 *)&((__first._M_current)->input_section_).u1_ =
             *(undefined4 *)&((__middle._M_current)->input_section_).u1_;
        *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =
             *(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4);
        ((__first._M_current)->input_section_).u2_ = ((__middle._M_current)->input_section_).u2_;
        ((__first._M_current)->input_section_).section_order_index_ =
             ((__middle._M_current)->input_section_).section_order_index_;
        pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;
        __src = &((__middle._M_current)->section_name_).field_2;
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)pcVar6 == __src) {
          __n = ((__middle._M_current)->section_name_)._M_string_length;
          if (__n != 0) {
            if (__n == 1) {
              ((__first._M_current)->section_name_).field_2._M_local_buf[0] =
                   ((__middle._M_current)->section_name_).field_2._M_local_buf[0];
              __n = ((__middle._M_current)->section_name_)._M_string_length;
            }
            else {
              memcpy(paVar5,__src,__n);
              __n = ((__middle._M_current)->section_name_)._M_string_length;
            }
          }
          ((__first._M_current)->section_name_)._M_string_length = __n;
          ((__first._M_current)->section_name_).field_2._M_local_buf[__n] = '\0';
          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                    *)((__middle._M_current)->section_name_)._M_dataplus._M_p;
        }
        else {
          ((__first._M_current)->section_name_)._M_dataplus._M_p = pcVar6;
          ((__first._M_current)->section_name_)._M_string_length =
               ((__middle._M_current)->section_name_)._M_string_length;
          ((__first._M_current)->section_name_).field_2._M_allocated_capacity =
               ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;
          ((__middle._M_current)->section_name_)._M_dataplus._M_p = (pointer)__src;
          paVar5 = __src;
        }
        ((__middle._M_current)->section_name_)._M_string_length = 0;
        paVar5->_M_local_buf[0] = '\0';
        uVar3 = (__middle._M_current)->size_;
        *(undefined4 *)((int)&(__first._M_current)->size_ + 4) =
             *(undefined4 *)((int)&(__middle._M_current)->size_ + 4);
        uVar1 = *(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4);
        *(int *)&(__first._M_current)->size_ = (int)uVar3;
        uVar3 = (__middle._M_current)->addralign_;
        *(undefined4 *)((int)&(__first._M_current)->addralign_ + 4) = uVar1;
        *(int *)&(__first._M_current)->addralign_ = (int)uVar3;
        ((__middle._M_current)->input_section_).shndx_ = __tmp.input_section_.shndx_;
        ((__middle._M_current)->input_section_).p2align_ = __tmp.input_section_.p2align_;
        *(undefined4 *)&((__middle._M_current)->input_section_).u1_ =
             __tmp.input_section_.u1_.data_size._0_4_;
        *(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4) =
             __tmp.input_section_.u1_.data_size._4_4_;
        ((__middle._M_current)->input_section_).u2_ = __tmp.input_section_.u2_;
        ((__middle._M_current)->input_section_).section_order_index_ =
             __tmp.input_section_.section_order_index_;
        pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)__tmp.section_name_._M_dataplus._M_p == __src_00) {
          if (__tmp.section_name_._M_string_length != 0) {
            if (__tmp.section_name_._M_string_length == 1) {
              *pcVar6 = __tmp.section_name_.field_2._M_local_buf[0];
              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;
            }
            else {
              memcpy(pcVar6,__src_00,__tmp.section_name_._M_string_length);
              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;
            }
          }
          ((__middle._M_current)->section_name_)._M_string_length =
               __tmp.section_name_._M_string_length;
          pcVar6[__tmp.section_name_._M_string_length] = '\0';
        }
        else if (__src == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                           *)pcVar6) {
          ((__middle._M_current)->section_name_)._M_dataplus._M_p =
               __tmp.section_name_._M_dataplus._M_p;
          ((__middle._M_current)->section_name_)._M_string_length =
               __tmp.section_name_._M_string_length;
          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =
               __tmp.section_name_.field_2._M_allocated_capacity;
          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;
        }
        else {
          ((__middle._M_current)->section_name_)._M_dataplus._M_p =
               __tmp.section_name_._M_dataplus._M_p;
          sVar2 = ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;
          ((__middle._M_current)->section_name_)._M_string_length =
               __tmp.section_name_._M_string_length;
          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =
               __tmp.section_name_.field_2._M_allocated_capacity;
          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;
          if (pcVar6 != (pointer)0x0) {
            __tmp.section_name_._M_dataplus._M_p = pcVar6;
            __tmp.section_name_.field_2._M_allocated_capacity = sVar2;
          }
        }
        __tmp.section_name_._M_string_length = 0;
        *__tmp.section_name_._M_dataplus._M_p = '\0';
        *(undefined4 *)&(__middle._M_current)->size_ = (undefined4)__tmp.size_;
        *(undefined4 *)((int)&(__middle._M_current)->size_ + 4) = __tmp.size_._4_4_;
        *(undefined4 *)&(__middle._M_current)->addralign_ = (undefined4)__tmp.addralign_;
        *(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4) = __tmp.addralign_._4_4_;
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)__tmp.section_name_._M_dataplus._M_p != &__tmp.section_name_.field_2) {
          operator_delete(__tmp.section_name_._M_dataplus._M_p);
        }
      }
    }
    else {
      if (__len2 < __len1) {
        __len1_00 = __len1 / 2;
        __middle_01._M_current = __first._M_current + __len1_00;
        __lower_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Iter_comp_val<gold::Input_section_sorter>_>
                  (__middle,__last,__middle_01._M_current,
                   (_Iter_comp_val<gold::Input_section_sorter>)__comp._M_comp);
        iVar7 = (int)local_60 - (int)__middle._M_current;
        local_6c = iVar7 >> 6;
        __middle_00._M_current = local_60;
      }
      else {
        local_6c = __len2 / 2;
        iVar7 = local_6c * 0x40;
        __upper_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Val_comp_iter<gold::Input_section_sorter>_>
                  (__first,__middle,__middle._M_current + local_6c,
                   (_Val_comp_iter<gold::Input_section_sorter>)__comp._M_comp);
        __len1_00 = (int)local_60 - (int)__first._M_current >> 6;
        __middle_00._M_current = __middle._M_current + local_6c;
        __middle_01._M_current = local_60;
      }
      __last_00._M_current =
           (Input_section_info *)((int)&((__middle_01._M_current)->input_section_).shndx_ + iVar7);
      _V2::
      __rotate<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>_>
                (&local_60,__middle_01._M_current,__middle._M_current,__middle_00._M_current,0);
      __comp_00._M_comp.section_sort_ = __comp._M_comp.section_sort_;
      __comp_00._M_comp.filename_sort_ = __comp._M_comp.filename_sort_;
      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>
                (__first,__middle_01,__last_00,__len1_00,local_6c,__comp_00);
      __comp_01._M_comp.section_sort_ = __comp._M_comp.section_sort_;
      __comp_01._M_comp.filename_sort_ = __comp._M_comp.filename_sort_;
      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>
                (__last_00,__middle_00,__last,__len1 - __len1_00,__len2 - local_6c,__comp_01);
    }
  }
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_00110fc0(undefined4 *param_1,undefined4 *param_2,int param_3,int param_4,int param_5,
                 undefined4 param_6,undefined4 param_7)

{
  undefined4 *__src;
  undefined4 uVar1;
  undefined4 uVar2;
  char cVar3;
  undefined4 *puVar4;
  size_t __n;
  int iVar5;
  undefined4 unaff_EBP;
  int iVar6;
  int unaff_retaddr;
  int in_stack_ffffff8c;
  int local_70;
  int local_6c;
  undefined1 *local_64;
  undefined1 local_60 [4];
  undefined4 local_5c;
  undefined4 local_58;
  undefined4 local_54;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  undefined4 *local_44;
  size_t local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x110fc9;
  if ((param_4 != 0) && (param_5 != 0)) {
    if (param_5 + param_4 == 2) {
      cVar3 = FUN_001070c0(&param_6,param_2,param_1);
      if (cVar3 != '\0') {
        local_5c = *param_1;
        local_58 = param_1[1];
        local_54 = param_1[2];
        local_50 = param_1[3];
        local_4c = param_1[4];
        local_48 = param_1[5];
        puVar4 = param_1 + 8;
        if ((undefined4 *)param_1[6] == puVar4) {
          local_3c = param_1[8];
          local_38 = param_1[9];
          local_34 = param_1[10];
          local_30 = param_1[0xb];
          local_44 = &local_3c;
        }
        else {
          local_3c = param_1[8];
          local_44 = (undefined4 *)param_1[6];
        }
        local_40 = param_1[7];
        local_2c = param_1[0xc];
        local_28 = param_1[0xd];
        param_1[7] = 0;
        *(undefined1 *)(param_1 + 8) = 0;
        local_24 = param_1[0xe];
        param_1[6] = puVar4;
        local_20 = param_1[0xf];
        *param_1 = *param_2;
        param_1[1] = param_2[1];
        param_1[2] = param_2[2];
        param_1[3] = param_2[3];
        param_1[4] = param_2[4];
        param_1[5] = param_2[5];
        __src = param_2 + 8;
        if ((undefined4 *)param_2[6] == __src) {
          __n = param_2[7];
          if (__n != 0) {
            if (__n == 1) {
              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);
              __n = param_2[7];
            }
            else {
              memcpy(puVar4,__src,__n);
              __n = param_2[7];
            }
          }
          param_1[7] = __n;
          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;
          puVar4 = (undefined4 *)param_2[6];
        }
        else {
          param_1[6] = (undefined4 *)param_2[6];
          param_1[7] = param_2[7];
          param_1[8] = param_2[8];
          param_2[6] = __src;
          puVar4 = __src;
        }
        param_2[7] = 0;
        *(undefined1 *)puVar4 = 0;
        uVar1 = param_2[0xc];
        param_1[0xd] = param_2[0xd];
        uVar2 = param_2[0xf];
        param_1[0xc] = uVar1;
        uVar1 = param_2[0xe];
        param_1[0xf] = uVar2;
        param_1[0xe] = uVar1;
        *param_2 = local_5c;
        param_2[1] = local_58;
        param_2[2] = local_54;
        param_2[3] = local_50;
        param_2[4] = local_4c;
        param_2[5] = local_48;
        puVar4 = (undefined4 *)param_2[6];
        if (local_44 == &local_3c) {
          if (local_40 != 0) {
            if (local_40 == 1) {
              *(undefined1 *)puVar4 = (undefined1)local_3c;
              puVar4 = (undefined4 *)param_2[6];
            }
            else {
              memcpy(puVar4,&local_3c,local_40);
              puVar4 = (undefined4 *)param_2[6];
            }
          }
          param_2[7] = local_40;
          *(undefined1 *)((int)puVar4 + local_40) = 0;
        }
        else if (__src == puVar4) {
          param_2[6] = local_44;
          param_2[7] = local_40;
          param_2[8] = local_3c;
          local_44 = &local_3c;
        }
        else {
          param_2[6] = local_44;
          uVar1 = param_2[8];
          param_2[7] = local_40;
          param_2[8] = local_3c;
          local_44 = &local_3c;
          if (puVar4 != (undefined4 *)0x0) {
            local_44 = puVar4;
            local_3c = uVar1;
          }
        }
        local_40 = 0;
        *(undefined1 *)local_44 = 0;
        param_2[0xc] = local_2c;
        param_2[0xd] = local_28;
        param_2[0xe] = local_24;
        param_2[0xf] = local_20;
        if (local_44 != &local_3c) {
          FUN_001807a0(local_44);
        }
      }
    }
    else {
      if (param_5 < param_4) {
        iVar6 = param_4 / 2;
        puVar4 = param_1 + iVar6 * 0x10;
        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);
        iVar5 = (int)local_64 - (int)param_1;
        local_70 = iVar5 >> 6;
      }
      else {
        local_64 = local_60;
        local_6c = param_5 / 2;
        iVar5 = local_6c * 0x40;
        puVar4 = param_2 + local_6c * 0x10;
        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);
        iVar6 = (int)puVar4 - unaff_retaddr >> 6;
      }
      FUN_00110670(local_6c,puVar4,param_1,local_64,0);
      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);
      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,
                   param_4,param_5);
    }
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00032730
ADD EBX,0x1f1037
SUB ESP,0x5c
MOV ESI,dword ptr [ESP + 0x7c]
MOV EDX,dword ptr [ESP + 0x74]
TEST ESI,ESI
JZ 0x001110ee
MOV EAX,dword ptr [ESP + 0x80]
TEST EAX,EAX
JZ 0x001110ee
MOV EAX,dword ptr [ESP + 0x80]
ADD EAX,ESI
CMP EAX,0x2
JZ 0x00111168
CMP ESI,dword ptr [ESP + 0x80]
JG 0x00111100
MOV EAX,dword ptr [ESP + 0x80]
LEA ECX,[ESP + 0xc]
SUB ESP,0x8
SHR EAX,0x1f
ADD EAX,dword ptr [ESP + 0x88]
SAR EAX,0x1
MOV EBX,EAX
MOV dword ptr [ESP + 0x8],EAX
SHL EBX,0x6
PUSH dword ptr [ESP + 0x90]
LEA EAX,[EDX + EBX*0x1]
PUSH dword ptr [ESP + 0x90]
PUSH EAX
MOV dword ptr [ESP + 0x1c],EAX
PUSH EDX
MOV dword ptr [ESP + 0x8c],EDX
PUSH dword ptr [ESP + 0x88]
PUSH ECX
MOV dword ptr [ESP + 0x24],ECX
CALL 0x00110520
MOV EBP,dword ptr [ESP + 0x28]
MOV EDI,EBP
SUB EDI,dword ptr [ESP + 0x8c]
ADD ESP,0x1c
MOV EAX,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [ESP + 0x74]
MOV ECX,dword ptr [ESP + 0x4]
SAR EDI,0x6
SUB ESP,0xc
ADD EBX,EBP
SUB ESI,EDI
PUSH 0x0
PUSH EAX
MOV dword ptr [ESP + 0x18],EAX
PUSH EDX
PUSH EBP
PUSH ECX
CALL 0x00110670
ADD ESP,0x18
PUSH dword ptr [ESP + 0x8c]
PUSH dword ptr [ESP + 0x8c]
PUSH dword ptr [ESP + 0xc]
PUSH EDI
PUSH EBX
PUSH EBP
PUSH dword ptr [ESP + 0x8c]
CALL 0x00110fc0
ADD ESP,0x1c
PUSH dword ptr [ESP + 0x8c]
PUSH dword ptr [ESP + 0x8c]
MOV EDX,dword ptr [ESP + 0x8c]
SUB EDX,dword ptr [ESP + 0xc]
PUSH EDX
PUSH ESI
PUSH dword ptr [ESP + 0x8c]
MOV EAX,dword ptr [ESP + 0x1c]
PUSH EAX
PUSH EBX
CALL 0x00110fc0
ADD ESP,0x20
ADD ESP,0x5c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,ESI
LEA ECX,[ESP + 0xc]
SUB ESP,0x8
SHR EDI,0x1f
ADD EDI,ESI
SAR EDI,0x1
MOV EBP,EDI
SHL EBP,0x6
ADD EBP,dword ptr [ESP + 0x78]
PUSH dword ptr [ESP + 0x90]
PUSH dword ptr [ESP + 0x90]
PUSH EBP
PUSH dword ptr [ESP + 0x8c]
PUSH EDX
MOV dword ptr [ESP + 0x90],EDX
PUSH ECX
MOV dword ptr [ESP + 0x24],ECX
CALL 0x001104b0
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [ESP + 0x90]
MOV EBX,EAX
SUB EBX,EDX
MOV ECX,EBX
SAR ECX,0x6
MOV dword ptr [ESP + 0x1c],ECX
ADD ESP,0x1c
MOV ECX,dword ptr [ESP + 0x4]
JMP 0x00111081
SUB ESP,0x4
PUSH dword ptr [ESP + 0x74]
PUSH EDX
LEA EAX,[ESP + 0x90]
MOV dword ptr [ESP + 0x80],EDX
PUSH EAX
CALL 0x001070c0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x74]
TEST AL,AL
JZ 0x001110ee
MOV EAX,dword ptr [ESP + 0x70]
LEA ESI,[ESP + 0x30]
MOV dword ptr [ESP + 0x28],ESI
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x70]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x14],EAX
MOV EAX,dword ptr [ESP + 0x70]
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x70]
MOV EAX,dword ptr [EAX + 0xc]
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x70]
MOV EAX,dword ptr [EAX + 0x10]
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,dword ptr [ESP + 0x70]
MOV EAX,dword ptr [EAX + 0x14]
MOV dword ptr [ESP + 0x24],EAX
MOV EAX,dword ptr [ESP + 0x70]
MOV ECX,dword ptr [EAX + 0x18]
ADD EAX,0x20
CMP ECX,EAX
JZ 0x001113f9
MOV dword ptr [ESP + 0x28],ECX
MOV ECX,dword ptr [ESP + 0x70]
MOV ECX,dword ptr [ECX + 0x20]
MOV dword ptr [ESP + 0x30],ECX
MOV ECX,dword ptr [ESP + 0x70]
MOV ECX,dword ptr [ECX + 0x1c]
MOV dword ptr [ESP + 0x2c],ECX
MOV ECX,dword ptr [ESP + 0x70]
MOV EDI,dword ptr [ECX + 0x30]
MOV EBP,dword ptr [ECX + 0x34]
MOV dword ptr [ECX + 0x1c],0x0
MOV byte ptr [ECX + 0x20],0x0
MOV dword ptr [ESP + 0x40],EDI
MOV EDI,dword ptr [ECX + 0x38]
MOV dword ptr [ECX + 0x18],EAX
MOV dword ptr [ESP + 0x44],EBP
MOV EBP,dword ptr [ECX + 0x3c]
MOV dword ptr [ESP + 0x48],EDI
MOV ECX,dword ptr [EDX]
MOV EDI,dword ptr [ESP + 0x70]
MOV dword ptr [ESP + 0x4c],EBP
MOV dword ptr [EDI],ECX
MOV ECX,dword ptr [EDX + 0x4]
MOV dword ptr [EDI + 0x4],ECX
MOV ECX,dword ptr [EDX + 0x8]
MOV dword ptr [EDI + 0x8],ECX
MOV ECX,dword ptr [EDX + 0xc]
MOV dword ptr [EDI + 0xc],ECX
MOV ECX,dword ptr [EDX + 0x10]
MOV dword ptr [EDI + 0x10],ECX
MOV ECX,dword ptr [EDX + 0x14]
MOV dword ptr [EDI + 0x14],ECX
MOV ECX,dword ptr [EDX + 0x18]
LEA EDI,[EDX + 0x20]
MOV dword ptr [ESP],EDI
CMP ECX,EDI
JZ 0x00111361
MOV EAX,dword ptr [ESP + 0x70]
MOV dword ptr [EAX + 0x18],ECX
MOV ECX,dword ptr [ESP + 0x70]
MOV EAX,dword ptr [EDX + 0x1c]
MOV dword ptr [ECX + 0x1c],EAX
MOV EAX,dword ptr [EDX + 0x20]
MOV dword ptr [ECX + 0x20],EAX
MOV EAX,dword ptr [ESP]
MOV dword ptr [EDX + 0x18],EAX
MOV dword ptr [EDX + 0x1c],0x0
MOV byte ptr [EAX],0x0
MOV EAX,dword ptr [ESP + 0x70]
MOV EDI,dword ptr [EDX + 0x30]
MOV EBP,dword ptr [EDX + 0x34]
MOV ECX,dword ptr [ESP + 0x28]
MOV dword ptr [EAX + 0x34],EBP
MOV EBP,dword ptr [EDX + 0x3c]
MOV dword ptr [EAX + 0x30],EDI
MOV EDI,dword ptr [EDX + 0x38]
MOV dword ptr [EAX + 0x3c],EBP
MOV dword ptr [EAX + 0x38],EDI
MOV EAX,dword ptr [ESP + 0x10]
MOV dword ptr [EDX],EAX
MOV EAX,dword ptr [ESP + 0x14]
MOV dword ptr [EDX + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x18]
MOV dword ptr [EDX + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [EDX + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [EDX + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [EDX + 0x14],EAX
MOV EAX,dword ptr [EDX + 0x18]
CMP ECX,ESI
JZ 0x001113a4
MOV EDI,dword ptr [ESP + 0x30]
MOV EBP,dword ptr [ESP + 0x2c]
MOV dword ptr [ESP + 0x4],EDI
CMP dword ptr [ESP],EAX
JZ 0x001113e1
MOV dword ptr [EDX + 0x18],ECX
MOV ECX,dword ptr [ESP + 0x4]
MOV EDI,dword ptr [EDX + 0x20]
MOV dword ptr [EDX + 0x1c],EBP
MOV dword ptr [EDX + 0x20],ECX
TEST EAX,EAX
JZ 0x001113ea
MOV dword ptr [ESP + 0x28],EAX
MOV dword ptr [ESP + 0x30],EDI
MOV dword ptr [ESP + 0x2c],0x0
MOV byte ptr [EAX],0x0
MOV EDI,dword ptr [ESP + 0x40]
MOV EBP,dword ptr [ESP + 0x44]
MOV EAX,dword ptr [ESP + 0x28]
MOV dword ptr [EDX + 0x30],EDI
MOV EDI,dword ptr [ESP + 0x48]
MOV dword ptr [EDX + 0x34],EBP
MOV EBP,dword ptr [ESP + 0x4c]
MOV dword ptr [EDX + 0x38],EDI
MOV dword ptr [EDX + 0x3c],EBP
CMP EAX,ESI
JZ 0x001110ee
SUB ESP,0xc
PUSH EAX
CALL 0x001807a0
ADD ESP,0x10
JMP 0x001110ee
MOV ECX,dword ptr [EDX + 0x1c]
TEST ECX,ECX
JZ 0x00111390
CMP ECX,0x1
JZ 0x0011142e
MOV dword ptr [ESP + 0x74],EDX
SUB ESP,0x4
PUSH ECX
PUSH dword ptr [ESP + 0x8]
PUSH EAX
CALL 0x000265c0
MOV EDX,dword ptr [ESP + 0x84]
ADD ESP,0x10
MOV ECX,dword ptr [EDX + 0x1c]
MOV EAX,dword ptr [ESP + 0x70]
MOV dword ptr [EAX + 0x1c],ECX
MOV byte ptr [ECX + EAX*0x1 + 0x20],0x0
MOV EAX,dword ptr [EDX + 0x18]
JMP 0x0011128a
MOV ECX,dword ptr [ESP + 0x2c]
TEST ECX,ECX
JZ 0x001113d1
CMP ECX,0x1
JZ 0x0011141e
MOV dword ptr [ESP + 0x74],EDX
SUB ESP,0x4
PUSH ECX
PUSH ESI
PUSH EAX
CALL 0x000265c0
MOV EDX,dword ptr [ESP + 0x84]
MOV ECX,dword ptr [ESP + 0x3c]
ADD ESP,0x10
MOV EAX,dword ptr [EDX + 0x18]
MOV dword ptr [EDX + 0x1c],ECX
MOV byte ptr [EAX + ECX*0x1],0x0
MOV EAX,dword ptr [ESP + 0x28]
JMP 0x0011131d
MOV dword ptr [EDX + 0x18],ECX
MOV dword ptr [EDX + 0x1c],EBP
MOV dword ptr [EDX + 0x20],EDI
MOV dword ptr [ESP + 0x28],ESI
LEA ESI,[ESP + 0x30]
MOV EAX,ESI
JMP 0x0011131d
MOV ECX,dword ptr [ESP + 0x70]
MOV ECX,dword ptr [ECX + 0x20]
MOV dword ptr [ESP + 0x30],ECX
MOV ECX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x34],ECX
MOV ECX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0x38],ECX
MOV ECX,dword ptr [EAX + 0xc]
MOV dword ptr [ESP + 0x3c],ECX
JMP 0x001111fd
MOVZX ECX,byte ptr [ESP + 0x30]
MOV byte ptr [EAX],CL
MOV ECX,dword ptr [ESP + 0x2c]
MOV EAX,dword ptr [EDX + 0x18]
JMP 0x001113d1
MOV ECX,dword ptr [ESP + 0x70]
MOVZX EAX,byte ptr [EDX + 0x20]
MOV byte ptr [ECX + 0x20],AL
MOV ECX,dword ptr [EDX + 0x1c]
JMP 0x00111390
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00110fc0(undefined4 *param_1,undefined4 *param_2,int param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)\n\n{\n  undefined4 *__src;\n  undefined4 uVar1;\n  undefined4 uVar2;\n  char cVar3;\n  undefined4 *puVar4;\n  size_t __n;\n  int iVar5;\n  undefined4 unaff_EBP;\n  int iVar6;\n  int unaff_retaddr;\n  int in_stack_ffffff8c;\n  int local_70;\n  int local_6c;\n  undefined1 *local_64;\n  undefined1 local_60 [4];\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 *local_44;\n  size_t local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x110fc9;\n  if ((param_4 != 0) && (param_5 != 0)) {\n    if (param_5 + param_4 == 2) {\n      cVar3 = FUN_001070c0(&param_6,param_2,param_1);\n      if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_00110fc0(undefined4 *param_1,undefined4 *param_2,int param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)\n\n{\n  undefined4 *__src;\n  undefined4 uVar1;\n  undefined4 uVar2;\n  char cVar3;\n  undefined4 *puVar4;\n  size_t __n;\n  int iVar5;\n  undefined4 unaff_EBP;\n  int iVar6;\n  int unaff_retaddr;\n  int in_stack_ffffff8c;\n  int local_70;\n  int local_6c;\n  undefined1 *local_64;\n  undefined1 local_60 [4];\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 *local_44;\n  size_t local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x110fc9;\n  if ((param_4 != 0) && (param_5 != 0)) {\n    if (param_5 + param_4 == 2) {\n      cVar3 = FUN_001070c0(&param_6,param_2,param_1);\n      if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00110fc0(undefined4 *param_1,undefined4 *param_2,int param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)" identifier (parameter_list "(undefined4 *param_1,undefined4 *param_2,int param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) ))) (compound_statement "{\n  undefined4 *__src;\n  undefined4 uVar1;\n  undefined4 uVar2;\n  char cVar3;\n  undefined4 *puVar4;\n  size_t __n;\n  int iVar5;\n  undefined4 unaff_EBP;\n  int iVar6;\n  int unaff_retaddr;\n  int in_stack_ffffff8c;\n  int local_70;\n  int local_6c;\n  undefined1 *local_64;\n  undefined1 local_60 [4];\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 *local_44;\n  size_t local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x110fc9;\n  if ((param_4 != 0) && (param_5 != 0)) {\n    if (param_5 + param_4 == 2) {\n      cVar3 = FUN_001070c0(&param_6,param_2,param_1);\n      if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }\n  }\n  return;\n}" { (declaration "undefined4 *__src;" type_identifier (pointer_declarator "*__src" * identifier) ;) (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 unaff_EBP;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int unaff_retaddr;" primitive_type identifier ;) (declaration "int in_stack_ffffff8c;" primitive_type identifier ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "int local_6c;" primitive_type identifier ;) (declaration "undefined1 *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "undefined1 local_60 [4];" type_identifier (array_declarator "local_60 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "size_t local_40;" primitive_type identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x110fc9;" (assignment_expression "uStack_14 = 0x110fc9" identifier = number_literal) ;) (if_statement "if ((param_4 != 0) && (param_5 != 0)) {\n    if (param_5 + param_4 == 2) {\n      cVar3 = FUN_001070c0(&param_6,param_2,param_1);\n      if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }\n  }" if (parenthesized_expression "((param_4 != 0) && (param_5 != 0))" ( (binary_expression "(param_4 != 0) && (param_5 != 0)" (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) && (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    if (param_5 + param_4 == 2) {\n      cVar3 = FUN_001070c0(&param_6,param_2,param_1);\n      if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }\n  }" { (if_statement "if (param_5 + param_4 == 2) {\n      cVar3 = FUN_001070c0(&param_6,param_2,param_1);\n      if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }" if (parenthesized_expression "(param_5 + param_4 == 2)" ( (binary_expression "param_5 + param_4 == 2" (binary_expression "param_5 + param_4" identifier + identifier) == number_literal) )) (compound_statement "{\n      cVar3 = FUN_001070c0(&param_6,param_2,param_1);\n      if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }\n    }" { (expression_statement "cVar3 = FUN_001070c0(&param_6,param_2,param_1);" (assignment_expression "cVar3 = FUN_001070c0(&param_6,param_2,param_1)" identifier = (call_expression "FUN_001070c0(&param_6,param_2,param_1)" identifier (argument_list "(&param_6,param_2,param_1)" ( (pointer_expression "&param_6" & identifier) , identifier , identifier )))) ;) (if_statement "if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }" { (expression_statement "local_5c = *param_1;" (assignment_expression "local_5c = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "local_58 = param_1[1];" (assignment_expression "local_58 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "local_54 = param_1[2];" (assignment_expression "local_54 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "local_50 = param_1[3];" (assignment_expression "local_50 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "local_4c = param_1[4];" (assignment_expression "local_4c = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "local_48 = param_1[5];" (assignment_expression "local_48 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4 = param_1 + 8;" (assignment_expression "puVar4 = param_1 + 8" identifier = (binary_expression "param_1 + 8" identifier + number_literal)) ;) (if_statement "if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }" if (parenthesized_expression "((undefined4 *)param_1[6] == puVar4)" ( (binary_expression "(undefined4 *)param_1[6] == puVar4" (cast_expression "(undefined4 *)param_1[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }" { (expression_statement "local_3c = param_1[8];" (assignment_expression "local_3c = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "local_38 = param_1[9];" (assignment_expression "local_38 = param_1[9]" identifier = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (expression_statement "local_34 = param_1[10];" (assignment_expression "local_34 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "local_30 = param_1[0xb];" (assignment_expression "local_30 = param_1[0xb]" identifier = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) }) (else_clause "else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }" else (compound_statement "{\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }" { (expression_statement "local_3c = param_1[8];" (assignment_expression "local_3c = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "local_44 = (undefined4 *)param_1[6];" (assignment_expression "local_44 = (undefined4 *)param_1[6]" identifier = (cast_expression "(undefined4 *)param_1[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) }))) (expression_statement "local_40 = param_1[7];" (assignment_expression "local_40 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "local_2c = param_1[0xc];" (assignment_expression "local_2c = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "local_28 = param_1[0xd];" (assignment_expression "local_28 = param_1[0xd]" identifier = (subscript_expression "param_1[0xd]" identifier [ number_literal ])) ;) (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 8) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 8) = 0" (pointer_expression "*(undefined1 *)(param_1 + 8)" * (cast_expression "(undefined1 *)(param_1 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_24 = param_1[0xe];" (assignment_expression "local_24 = param_1[0xe]" identifier = (subscript_expression "param_1[0xe]" identifier [ number_literal ])) ;) (expression_statement "param_1[6] = puVar4;" (assignment_expression "param_1[6] = puVar4" (subscript_expression "param_1[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_20 = param_1[0xf];" (assignment_expression "local_20 = param_1[0xf]" identifier = (subscript_expression "param_1[0xf]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = *param_2;" (assignment_expression "*param_1 = *param_2" (pointer_expression "*param_1" * identifier) = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "param_1[1] = param_2[1];" (assignment_expression "param_1[1] = param_2[1]" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = param_2[2];" (assignment_expression "param_1[2] = param_2[2]" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[3] = param_2[3];" (assignment_expression "param_1[3] = param_2[3]" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "param_1[4] = param_2[4];" (assignment_expression "param_1[4] = param_2[4]" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (subscript_expression "param_2[4]" identifier [ number_literal ])) ;) (expression_statement "param_1[5] = param_2[5];" (assignment_expression "param_1[5] = param_2[5]" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (subscript_expression "param_2[5]" identifier [ number_literal ])) ;) (expression_statement "__src = param_2 + 8;" (assignment_expression "__src = param_2 + 8" identifier = (binary_expression "param_2 + 8" identifier + number_literal)) ;) (if_statement "if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }" if (parenthesized_expression "((undefined4 *)param_2[6] == __src)" ( (binary_expression "(undefined4 *)param_2[6] == __src" (cast_expression "(undefined4 *)param_2[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[6]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }" { (expression_statement "__n = param_2[7];" (assignment_expression "__n = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (if_statement "if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }" if (parenthesized_expression "(__n != 0)" ( (binary_expression "__n != 0" identifier != number_literal) )) (compound_statement "{\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }" { (if_statement "if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }" if (parenthesized_expression "(__n == 1)" ( (binary_expression "__n == 1" identifier == number_literal) )) (compound_statement "{\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }" { (expression_statement "*(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);" (assignment_expression "*(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8)" (pointer_expression "*(undefined1 *)(param_1 + 8)" * (cast_expression "(undefined1 *)(param_1 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = (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 "__n = param_2[7];" (assignment_expression "__n = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) }) (else_clause "else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }" else (compound_statement "{\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }" { (expression_statement "memcpy(puVar4,__src,__n);" (call_expression "memcpy(puVar4,__src,__n)" identifier (argument_list "(puVar4,__src,__n)" ( identifier , identifier , identifier ))) ;) (expression_statement "__n = param_2[7];" (assignment_expression "__n = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) }))) })) (expression_statement "param_1[7] = __n;" (assignment_expression "param_1[7] = __n" (subscript_expression "param_1[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(__n + 0x20 + (int)param_1) = 0;" (assignment_expression "*(undefined1 *)(__n + 0x20 + (int)param_1) = 0" (pointer_expression "*(undefined1 *)(__n + 0x20 + (int)param_1)" * (cast_expression "(undefined1 *)(__n + 0x20 + (int)param_1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__n + 0x20 + (int)param_1)" ( (binary_expression "__n + 0x20 + (int)param_1" (binary_expression "__n + 0x20" identifier + number_literal) + (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = number_literal) ;) (expression_statement "puVar4 = (undefined4 *)param_2[6];" (assignment_expression "puVar4 = (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          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }" else (compound_statement "{\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }" { (expression_statement "param_1[6] = (undefined4 *)param_2[6];" (assignment_expression "param_1[6] = (undefined4 *)param_2[6]" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (cast_expression "(undefined4 *)param_2[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) ;) (expression_statement "param_1[7] = param_2[7];" (assignment_expression "param_1[7] = param_2[7]" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (expression_statement "param_1[8] = param_2[8];" (assignment_expression "param_1[8] = param_2[8]" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (expression_statement "param_2[6] = __src;" (assignment_expression "param_2[6] = __src" (subscript_expression "param_2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = __src;" (assignment_expression "puVar4 = __src" identifier = 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 *)puVar4 = 0;" (assignment_expression "*(undefined1 *)puVar4 = 0" (pointer_expression "*(undefined1 *)puVar4" * (cast_expression "(undefined1 *)puVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar1 = param_2[0xc];" (assignment_expression "uVar1 = param_2[0xc]" identifier = (subscript_expression "param_2[0xc]" identifier [ number_literal ])) ;) (expression_statement "param_1[0xd] = param_2[0xd];" (assignment_expression "param_1[0xd] = param_2[0xd]" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = (subscript_expression "param_2[0xd]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = param_2[0xf];" (assignment_expression "uVar2 = param_2[0xf]" identifier = (subscript_expression "param_2[0xf]" identifier [ number_literal ])) ;) (expression_statement "param_1[0xc] = uVar1;" (assignment_expression "param_1[0xc] = uVar1" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = param_2[0xe];" (assignment_expression "uVar1 = param_2[0xe]" identifier = (subscript_expression "param_2[0xe]" identifier [ number_literal ])) ;) (expression_statement "param_1[0xf] = uVar2;" (assignment_expression "param_1[0xf] = uVar2" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xe] = uVar1;" (assignment_expression "param_1[0xe] = uVar1" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_2 = local_5c;" (assignment_expression "*param_2 = local_5c" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "param_2[1] = local_58;" (assignment_expression "param_2[1] = local_58" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[2] = local_54;" (assignment_expression "param_2[2] = local_54" (subscript_expression "param_2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[3] = local_50;" (assignment_expression "param_2[3] = local_50" (subscript_expression "param_2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[4] = local_4c;" (assignment_expression "param_2[4] = local_4c" (subscript_expression "param_2[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[5] = local_48;" (assignment_expression "param_2[5] = local_48" (subscript_expression "param_2[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = (undefined4 *)param_2[6];" (assignment_expression "puVar4 = (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 ]))) ;) (if_statement "if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }" if (parenthesized_expression "(local_44 == &local_3c)" ( (binary_expression "local_44 == &local_3c" identifier == (pointer_expression "&local_3c" & identifier)) )) (compound_statement "{\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }" { (if_statement "if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }" if (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) (compound_statement "{\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }" { (if_statement "if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }" if (parenthesized_expression "(local_40 == 1)" ( (binary_expression "local_40 == 1" identifier == number_literal) )) (compound_statement "{\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }" { (expression_statement "*(undefined1 *)puVar4 = (undefined1)local_3c;" (assignment_expression "*(undefined1 *)puVar4 = (undefined1)local_3c" (pointer_expression "*(undefined1 *)puVar4" * (cast_expression "(undefined1 *)puVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined1)local_3c" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puVar4 = (undefined4 *)param_2[6];" (assignment_expression "puVar4 = (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              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }" else (compound_statement "{\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }" { (expression_statement "memcpy(puVar4,&local_3c,local_40);" (call_expression "memcpy(puVar4,&local_3c,local_40)" identifier (argument_list "(puVar4,&local_3c,local_40)" ( identifier , (pointer_expression "&local_3c" & identifier) , identifier ))) ;) (expression_statement "puVar4 = (undefined4 *)param_2[6];" (assignment_expression "puVar4 = (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 "param_2[7] = local_40;" (assignment_expression "param_2[7] = local_40" (subscript_expression "param_2[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar4 + local_40) = 0;" (assignment_expression "*(undefined1 *)((int)puVar4 + local_40) = 0" (pointer_expression "*(undefined1 *)((int)puVar4 + local_40)" * (cast_expression "(undefined1 *)((int)puVar4 + local_40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + local_40)" ( (binary_expression "(int)puVar4 + local_40" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) }) (else_clause "else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }" else (if_statement "if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }" if (parenthesized_expression "(__src == puVar4)" ( (binary_expression "__src == puVar4" identifier == identifier) )) (compound_statement "{\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }" { (expression_statement "param_2[6] = local_44;" (assignment_expression "param_2[6] = local_44" (subscript_expression "param_2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[7] = local_40;" (assignment_expression "param_2[7] = local_40" (subscript_expression "param_2[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[8] = local_3c;" (assignment_expression "param_2[8] = local_3c" (subscript_expression "param_2[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) }) (else_clause "else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }" else (compound_statement "{\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }" { (expression_statement "param_2[6] = local_44;" (assignment_expression "param_2[6] = local_44" (subscript_expression "param_2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = param_2[8];" (assignment_expression "uVar1 = param_2[8]" identifier = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (expression_statement "param_2[7] = local_40;" (assignment_expression "param_2[7] = local_40" (subscript_expression "param_2[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[8] = local_3c;" (assignment_expression "param_2[8] = local_3c" (subscript_expression "param_2[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }" if (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }" { (expression_statement "local_44 = puVar4;" (assignment_expression "local_44 = puVar4" identifier = identifier) ;) (expression_statement "local_3c = uVar1;" (assignment_expression "local_3c = uVar1" identifier = identifier) ;) })) }))))) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)local_44 = 0;" (assignment_expression "*(undefined1 *)local_44 = 0" (pointer_expression "*(undefined1 *)local_44" * (cast_expression "(undefined1 *)local_44" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "param_2[0xc] = local_2c;" (assignment_expression "param_2[0xc] = local_2c" (subscript_expression "param_2[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[0xd] = local_28;" (assignment_expression "param_2[0xd] = local_28" (subscript_expression "param_2[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[0xe] = local_24;" (assignment_expression "param_2[0xe] = local_24" (subscript_expression "param_2[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[0xf] = local_20;" (assignment_expression "param_2[0xf] = local_20" (subscript_expression "param_2[0xf]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }" if (parenthesized_expression "(local_44 != &local_3c)" ( (binary_expression "local_44 != &local_3c" identifier != (pointer_expression "&local_3c" & identifier)) )) (compound_statement "{\n          FUN_001807a0(local_44);\n        }" { (expression_statement "FUN_001807a0(local_44);" (call_expression "FUN_001807a0(local_44)" identifier (argument_list "(local_44)" ( identifier ))) ;) })) })) }) (else_clause "else {\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }" else (compound_statement "{\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }" { (if_statement "if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }" if (parenthesized_expression "(param_5 < param_4)" ( (binary_expression "param_5 < param_4" identifier < identifier) )) (compound_statement "{\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }" { (expression_statement "iVar6 = param_4 / 2;" (assignment_expression "iVar6 = param_4 / 2" identifier = (binary_expression "param_4 / 2" identifier / number_literal)) ;) (expression_statement "puVar4 = param_1 + iVar6 * 0x10;" (assignment_expression "puVar4 = param_1 + iVar6 * 0x10" identifier = (binary_expression "param_1 + iVar6 * 0x10" identifier + (binary_expression "iVar6 * 0x10" identifier * number_literal))) ;) (expression_statement "FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);" (call_expression "FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7)" identifier (argument_list "(local_60,param_2,param_3,puVar4,param_6,param_7)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar5 = (int)local_64 - (int)param_1;" (assignment_expression "iVar5 = (int)local_64 - (int)param_1" identifier = (binary_expression "(int)local_64 - (int)param_1" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_70 = iVar5 >> 6;" (assignment_expression "local_70 = iVar5 >> 6" identifier = (binary_expression "iVar5 >> 6" identifier >> number_literal)) ;) }) (else_clause "else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }" else (compound_statement "{\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }" { (expression_statement "local_64 = local_60;" (assignment_expression "local_64 = local_60" identifier = identifier) ;) (expression_statement "local_6c = param_5 / 2;" (assignment_expression "local_6c = param_5 / 2" identifier = (binary_expression "param_5 / 2" identifier / number_literal)) ;) (expression_statement "iVar5 = local_6c * 0x40;" (assignment_expression "iVar5 = local_6c * 0x40" identifier = (binary_expression "local_6c * 0x40" identifier * number_literal)) ;) (expression_statement "puVar4 = param_2 + local_6c * 0x10;" (assignment_expression "puVar4 = param_2 + local_6c * 0x10" identifier = (binary_expression "param_2 + local_6c * 0x10" identifier + (binary_expression "local_6c * 0x10" identifier * number_literal))) ;) (expression_statement "FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);" (call_expression "FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7)" identifier (argument_list "(local_64,param_1,param_2,puVar4,param_6,param_7)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar6 = (int)puVar4 - unaff_retaddr >> 6;" (assignment_expression "iVar6 = (int)puVar4 - unaff_retaddr >> 6" identifier = (binary_expression "(int)puVar4 - unaff_retaddr >> 6" (binary_expression "(int)puVar4 - unaff_retaddr" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) >> number_literal)) ;) }))) (expression_statement "FUN_00110670(local_6c,puVar4,param_1,local_64,0);" (call_expression "FUN_00110670(local_6c,puVar4,param_1,local_64,0)" identifier (argument_list "(local_6c,puVar4,param_1,local_64,0)" ( identifier , identifier , identifier , identifier , number_literal ))) ;) (expression_statement "FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);" (call_expression "FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5)" identifier (argument_list "(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5)" ( identifier , identifier , (binary_expression "iVar5 + (int)puVar4" identifier + (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);" (call_expression "FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5)" identifier (argument_list "(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5)" ( (binary_expression "iVar5 + (int)puVar4" identifier + (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , identifier , (binary_expression "param_4 - iVar6" identifier - identifier) , (binary_expression "param_3 - in_stack_ffffff8c" identifier - identifier) , identifier , identifier ))) ;) }))) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* DWARF original name:\n   __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,\n   std::vector<gold::Input_section_info> >, int,\n   __gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter> > */\n\nvoid std::\n     __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n               (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                __first,__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                        __middle,\n               __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n               __last,int __len1,int __len2,_Iter_comp_iter<gold::Input_section_sorter> __comp)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *__src;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *__src_00;\n  undefined4 uVar1;\n  size_type sVar2;\n  _Iter_comp_iter<gold::Input_section_sorter> __comp_00;\n  _Iter_comp_iter<gold::Input_section_sorter> __comp_01;\n  uint64_t uVar3;\n  bool bVar4;\n  __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n  __middle_00;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar5;\n  pointer pcVar6;\n  size_t __n;\n  int iVar7;\n  __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n  __last_00;\n  __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n  __middle_01;\n  int __len1_00;\n  int local_6c;\n  Input_section_info *local_60;\n  Input_section_info __tmp;\n  \n  if ((__len1 != 0) && (__len2 != 0)) {\n    if (__len2 + __len1 == 2) {\n      bVar4 = gold::Input_section_sorter::operator()\n                        (&__comp._M_comp,__middle._M_current,__first._M_current);\n      if (bVar4) {\n        __src_00 = &__tmp.section_name_.field_2;\n        __tmp.input_section_.shndx_ = ((__first._M_current)->input_section_).shndx_;\n        __tmp.input_section_.p2align_ = ((__first._M_current)->input_section_).p2align_;\n        __tmp.input_section_.u1_.data_size._0_4_ =\n             *(undefined4 *)&((__first._M_current)->input_section_).u1_;\n        __tmp.input_section_.u1_.data_size._4_4_ =\n             *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4);\n        __tmp.input_section_.u2_ = ((__first._M_current)->input_section_).u2_;\n        __tmp.input_section_.section_order_index_ =\n             ((__first._M_current)->input_section_).section_order_index_;\n        __tmp.section_name_._M_dataplus._M_p =\n             ((__first._M_current)->section_name_)._M_dataplus._M_p;\n        paVar5 = &((__first._M_current)->section_name_).field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar5) {\n          __tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n          __tmp.section_name_.field_2._4_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 4);\n          __tmp.section_name_.field_2._8_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 8);\n          __tmp.section_name_.field_2._12_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 0xc);\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n        }\n        else {\n          __tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n        }\n        __tmp.section_name_._M_string_length =\n             ((__first._M_current)->section_name_)._M_string_length;\n        __tmp.size_._0_4_ = (undefined4)(__first._M_current)->size_;\n        __tmp.size_._4_4_ = *(undefined4 *)((int)&(__first._M_current)->size_ + 4);\n        ((__first._M_current)->section_name_)._M_string_length = 0;\n        ((__first._M_current)->section_name_).field_2._M_local_buf[0] = '\0';\n        __tmp.addralign_._0_4_ = (undefined4)(__first._M_current)->addralign_;\n        ((__first._M_current)->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        __tmp.addralign_._4_4_ = *(undefined4 *)((int)&(__first._M_current)->addralign_ + 4);\n        ((__first._M_current)->input_section_).shndx_ =\n             ((__middle._M_current)->input_section_).shndx_;\n        ((__first._M_current)->input_section_).p2align_ =\n             ((__middle._M_current)->input_section_).p2align_;\n        *(undefined4 *)&((__first._M_current)->input_section_).u1_ =\n             *(undefined4 *)&((__middle._M_current)->input_section_).u1_;\n        *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =\n             *(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4);\n        ((__first._M_current)->input_section_).u2_ = ((__middle._M_current)->input_section_).u2_;\n        ((__first._M_current)->input_section_).section_order_index_ =\n             ((__middle._M_current)->input_section_).section_order_index_;\n        pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        __src = &((__middle._M_current)->section_name_).field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar6 == __src) {\n          __n = ((__middle._M_current)->section_name_)._M_string_length;\n          if (__n != 0) {\n            if (__n == 1) {\n              ((__first._M_current)->section_name_).field_2._M_local_buf[0] =\n                   ((__middle._M_current)->section_name_).field_2._M_local_buf[0];\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n            else {\n              memcpy(paVar5,__src,__n);\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n          }\n          ((__first._M_current)->section_name_)._M_string_length = __n;\n          ((__first._M_current)->section_name_).field_2._M_local_buf[__n] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          ((__first._M_current)->section_name_)._M_dataplus._M_p = pcVar6;\n          ((__first._M_current)->section_name_)._M_string_length =\n               ((__middle._M_current)->section_name_)._M_string_length;\n          ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n               ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p = (pointer)__src;\n          paVar5 = __src;\n        }\n        ((__middle._M_current)->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar3 = (__middle._M_current)->size_;\n        *(undefined4 *)((int)&(__first._M_current)->size_ + 4) =\n             *(undefined4 *)((int)&(__middle._M_current)->size_ + 4);\n        uVar1 = *(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4);\n        *(int *)&(__first._M_current)->size_ = (int)uVar3;\n        uVar3 = (__middle._M_current)->addralign_;\n        *(undefined4 *)((int)&(__first._M_current)->addralign_ + 4) = uVar1;\n        *(int *)&(__first._M_current)->addralign_ = (int)uVar3;\n        ((__middle._M_current)->input_section_).shndx_ = __tmp.input_section_.shndx_;\n        ((__middle._M_current)->input_section_).p2align_ = __tmp.input_section_.p2align_;\n        *(undefined4 *)&((__middle._M_current)->input_section_).u1_ =\n             __tmp.input_section_.u1_.data_size._0_4_;\n        *(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4) =\n             __tmp.input_section_.u1_.data_size._4_4_;\n        ((__middle._M_current)->input_section_).u2_ = __tmp.input_section_.u2_;\n        ((__middle._M_current)->input_section_).section_order_index_ =\n             __tmp.input_section_.section_order_index_;\n        pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == __src_00) {\n          if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar6 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar6,__src_00,__tmp.section_name_._M_string_length);\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          pcVar6[__tmp.section_name_._M_string_length] = '\0';\n        }\n        else if (__src == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar6) {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n        }\n        else {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          sVar2 = ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n          if (pcVar6 != (pointer)0x0) {\n            __tmp.section_name_._M_dataplus._M_p = pcVar6;\n            __tmp.section_name_.field_2._M_allocated_capacity = sVar2;\n          }\n        }\n        __tmp.section_name_._M_string_length = 0;\n        *__tmp.section_name_._M_dataplus._M_p = '\0';\n        *(undefined4 *)&(__middle._M_current)->size_ = (undefined4)__tmp.size_;\n        *(undefined4 *)((int)&(__middle._M_current)->size_ + 4) = __tmp.size_._4_4_;\n        *(undefined4 *)&(__middle._M_current)->addralign_ = (undefined4)__tmp.addralign_;\n        *(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4) = __tmp.addralign_._4_4_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != &__tmp.section_name_.field_2) {\n          operator_delete(__tmp.section_name_._M_dataplus._M_p);\n        }\n      }\n    }\n    else {\n      if (__len2 < __len1) {\n        __len1_00 = __len1 / 2;\n        __middle_01._M_current = __first._M_current + __len1_00;\n        __lower_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Iter_comp_val<gold::Input_section_sorter>_>\n                  (__middle,__last,__middle_01._M_current,\n                   (_Iter_comp_val<gold::Input_section_sorter>)__comp._M_comp);\n        iVar7 = (int)local_60 - (int)__middle._M_current;\n        local_6c = iVar7 >> 6;\n        __middle_00._M_current = local_60;\n      }\n      else {\n        local_6c = __len2 / 2;\n        iVar7 = local_6c * 0x40;\n        __upper_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Val_comp_iter<gold::Input_section_sorter>_>\n                  (__first,__middle,__middle._M_current + local_6c,\n                   (_Val_comp_iter<gold::Input_section_sorter>)__comp._M_comp);\n        __len1_00 = (int)local_60 - (int)__first._M_current >> 6;\n        __middle_00._M_current = __middle._M_current + local_6c;\n        __middle_01._M_current = local_60;\n      }\n      __last_00._M_current =\n           (Input_section_info *)((int)&((__middle_01._M_current)->input_section_).shndx_ + iVar7);\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>_>\n                (&local_60,__middle_01._M_current,__middle._M_current,__middle_00._M_current,0);\n      __comp_00._M_comp.section_sort_ = __comp._M_comp.section_sort_;\n      __comp_00._M_comp.filename_sort_ = __comp._M_comp.filename_sort_;\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (__first,__middle_01,__last_00,__len1_00,local_6c,__comp_00);\n      __comp_01._M_comp.section_sort_ = __comp._M_comp.section_sort_;\n      __comp_01._M_comp.filename_sort_ = __comp._M_comp.filename_sort_;\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (__last_00,__middle_00,__last,__len1 - __len1_00,__len2 - local_6c,__comp_01);\n    }\n  }\n  return;\n}\n\n" comment comment comment (declaration "void std::\n     __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n               (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                __first,__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                        __middle,\n               __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n               __last,int __len1,int __len2,_Iter_comp_iter<gold::Input_section_sorter> __comp)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *__src;" primitive_type (ERROR "std::\n     __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::" identifier : : identifier < identifier : : identifier < identifier : :) identifier (ERROR "*" *) , (ERROR "_std::vector<gold::Input_section_info>" identifier : : identifier < identifier : : identifier >) identifier (ERROR ">" >) , identifier , (ERROR "___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n               (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                __first,__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                        __middle,\n               __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n               __last,int __len1,int __len2,_Iter_comp_iter<gold::Input_section_sorter> __comp)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9" identifier : : identifier : : identifier < identifier : : identifier > (function_declarator "_>\n               (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                __first,__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                        __middle,\n               __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n               __last,int __len1,int __len2,_Iter_comp_iter<gold::Input_section_sorter> __comp)" identifier (ERROR ">" >) (parameter_list "(__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                __first,__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                        __middle,\n               __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n               __last,int __len1,int __len2,_Iter_comp_iter<gold::Input_section_sorter> __comp)" ( (parameter_declaration "__normal_iterator<gold::Input_section_info*" type_identifier (ERROR "<gold::Input_section_info" < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::vector<gold::Input_section_info" type_identifier (ERROR "::vector<gold::" : : identifier < identifier : :) identifier) , (parameter_declaration "_std::allocator<gold::Input_section_info>_>_>\n                __first" type_identifier (ERROR "::allocator<gold::Input_section_info>_>_>" : : identifier < identifier : : identifier > identifier > identifier >) identifier) , (parameter_declaration "__normal_iterator<gold::Input_section_info*" type_identifier (ERROR "<gold::Input_section_info" < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::vector<gold::Input_section_info" type_identifier (ERROR "::vector<gold::" : : identifier < identifier : :) identifier) , (parameter_declaration "_std::allocator<gold::Input_section_info>_>_>\n                        __middle" type_identifier (ERROR "::allocator<gold::Input_section_info>_>_>" : : identifier < identifier : : identifier > identifier > identifier >) identifier) , (parameter_declaration "__normal_iterator<gold::Input_section_info*" type_identifier (ERROR "<gold::Input_section_info" < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::vector<gold::Input_section_info" type_identifier (ERROR "::vector<gold::" : : identifier < identifier : :) identifier) , (parameter_declaration "_std::allocator<gold::Input_section_info>_>_>\n               __last" type_identifier (ERROR "::allocator<gold::Input_section_info>_>_>" : : identifier < identifier : : identifier > identifier > identifier >) identifier) , (parameter_declaration "int __len1" primitive_type identifier) , (parameter_declaration "int __len2" primitive_type identifier) , (parameter_declaration "_Iter_comp_iter<gold::Input_section_sorter> __comp" type_identifier (ERROR "<gold::Input_section_sorter>" < identifier : : identifier >) identifier) ))) { identifier < primitive_type , identifier : : identifier < primitive_type > , identifier : : identifier < primitive_type > identifier > identifier) (pointer_declarator "*__src" * identifier) ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char," (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) ,) (labeled_statement "_std::char_traits<char>,_std::allocator<char>_>_9\n  *__src_00;" statement_identifier (ERROR "::char_traits<char>,_std:" : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) :) : (expression_statement "allocator<char>_>_9\n  *__src_00;" (binary_expression "allocator<char>_>_9\n  *__src_00" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *__src_00" identifier * identifier)) ;)) (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "size_type sVar2;" type_identifier identifier ;) (ERROR "_Iter_comp_iter<gold::Input_section_sorter> __comp_00" (binary_expression "_Iter_comp_iter<gold" identifier < identifier) : : (binary_expression "Input_section_sorter> __comp_00" identifier > identifier)) (expression_statement ";" ;) (ERROR "_Iter_comp_iter<gold::Input_section_sorter> __comp_01" (binary_expression "_Iter_comp_iter<gold" identifier < identifier) : : (binary_expression "Input_section_sorter> __comp_01" identifier > identifier)) (expression_statement ";" ;) (declaration "uint64_t uVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (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  __middle_00;" statement_identifier (ERROR "::allocator<gold:" : : (binary_expression "allocator<gold" identifier < identifier) :) : (expression_statement "Input_section_info>_>_>\n  __middle_00;" (binary_expression "Input_section_info>_>_>\n  __middle_00" (binary_expression "Input_section_info>_>_" (binary_expression "Input_section_info>_" identifier > identifier) > identifier) > identifier) ;)) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char," (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) ,) (labeled_statement "_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar5;" statement_identifier (ERROR "::char_traits<char>,_std:" : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) :) : (expression_statement "allocator<char>_>_9\n  *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)) ;)) (declaration "pointer pcVar6;" type_identifier identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (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  __last_00;" statement_identifier (ERROR "::allocator<gold:" : : (binary_expression "allocator<gold" identifier < identifier) :) : (expression_statement "Input_section_info>_>_>\n  __last_00;" (binary_expression "Input_section_info>_>_>\n  __last_00" (binary_expression "Input_section_info>_>_" (binary_expression "Input_section_info>_" identifier > identifier) > identifier) > identifier) ;)) (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  __middle_01;" statement_identifier (ERROR "::allocator<gold:" : : (binary_expression "allocator<gold" identifier < identifier) :) : (expression_statement "Input_section_info>_>_>\n  __middle_01;" (binary_expression "Input_section_info>_>_>\n  __middle_01" (binary_expression "Input_section_info>_>_" (binary_expression "Input_section_info>_" identifier > identifier) > identifier) > identifier) ;)) (declaration "int __len1_00;" primitive_type identifier ;) (declaration "int local_6c;" primitive_type identifier ;) (declaration "Input_section_info *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "Input_section_info __tmp;" type_identifier identifier ;) (if_statement "if ((__len1 != 0) && (__len2 != 0)) {\n    if (__len2 + __len1 == 2) {\n      bVar4 = gold::Input_section_sorter::operator()\n                        (&__comp._M_comp,__middle._M_current,__first._M_current);\n      if (bVar4) {\n        __src_00 = &__tmp.section_name_.field_2;\n        __tmp.input_section_.shndx_ = ((__first._M_current)->input_section_).shndx_;\n        __tmp.input_section_.p2align_ = ((__first._M_current)->input_section_).p2align_;\n        __tmp.input_section_.u1_.data_size._0_4_ =\n             *(undefined4 *)&((__first._M_current)->input_section_).u1_;\n        __tmp.input_section_.u1_.data_size._4_4_ =\n             *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4);\n        __tmp.input_section_.u2_ = ((__first._M_current)->input_section_).u2_;\n        __tmp.input_section_.section_order_index_ =\n             ((__first._M_current)->input_section_).section_order_index_;\n        __tmp.section_name_._M_dataplus._M_p =\n             ((__first._M_current)->section_name_)._M_dataplus._M_p;\n        paVar5 = &((__first._M_current)->section_name_).field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar5) {\n          __tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n          __tmp.section_name_.field_2._4_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 4);\n          __tmp.section_name_.field_2._8_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 8);\n          __tmp.section_name_.field_2._12_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 0xc);\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n        }\n        else {\n          __tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n        }\n        __tmp.section_name_._M_string_length =\n             ((__first._M_current)->section_name_)._M_string_length;\n        __tmp.size_._0_4_ = (undefined4)(__first._M_current)->size_;\n        __tmp.size_._4_4_ = *(undefined4 *)((int)&(__first._M_current)->size_ + 4);\n        ((__first._M_current)->section_name_)._M_string_length = 0;\n        ((__first._M_current)->section_name_).field_2._M_local_buf[0] = '\0';\n        __tmp.addralign_._0_4_ = (undefined4)(__first._M_current)->addralign_;\n        ((__first._M_current)->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        __tmp.addralign_._4_4_ = *(undefined4 *)((int)&(__first._M_current)->addralign_ + 4);\n        ((__first._M_current)->input_section_).shndx_ =\n             ((__middle._M_current)->input_section_).shndx_;\n        ((__first._M_current)->input_section_).p2align_ =\n             ((__middle._M_current)->input_section_).p2align_;\n        *(undefined4 *)&((__first._M_current)->input_section_).u1_ =\n             *(undefined4 *)&((__middle._M_current)->input_section_).u1_;\n        *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =\n             *(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4);\n        ((__first._M_current)->input_section_).u2_ = ((__middle._M_current)->input_section_).u2_;\n        ((__first._M_current)->input_section_).section_order_index_ =\n             ((__middle._M_current)->input_section_).section_order_index_;\n        pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        __src = &((__middle._M_current)->section_name_).field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar6 == __src) {\n          __n = ((__middle._M_current)->section_name_)._M_string_length;\n          if (__n != 0) {\n            if (__n == 1) {\n              ((__first._M_current)->section_name_).field_2._M_local_buf[0] =\n                   ((__middle._M_current)->section_name_).field_2._M_local_buf[0];\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n            else {\n              memcpy(paVar5,__src,__n);\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n          }\n          ((__first._M_current)->section_name_)._M_string_length = __n;\n          ((__first._M_current)->section_name_).field_2._M_local_buf[__n] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          ((__first._M_current)->section_name_)._M_dataplus._M_p = pcVar6;\n          ((__first._M_current)->section_name_)._M_string_length =\n               ((__middle._M_current)->section_name_)._M_string_length;\n          ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n               ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p = (pointer)__src;\n          paVar5 = __src;\n        }\n        ((__middle._M_current)->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar3 = (__middle._M_current)->size_;\n        *(undefined4 *)((int)&(__first._M_current)->size_ + 4) =\n             *(undefined4 *)((int)&(__middle._M_current)->size_ + 4);\n        uVar1 = *(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4);\n        *(int *)&(__first._M_current)->size_ = (int)uVar3;\n        uVar3 = (__middle._M_current)->addralign_;\n        *(undefined4 *)((int)&(__first._M_current)->addralign_ + 4) = uVar1;\n        *(int *)&(__first._M_current)->addralign_ = (int)uVar3;\n        ((__middle._M_current)->input_section_).shndx_ = __tmp.input_section_.shndx_;\n        ((__middle._M_current)->input_section_).p2align_ = __tmp.input_section_.p2align_;\n        *(undefined4 *)&((__middle._M_current)->input_section_).u1_ =\n             __tmp.input_section_.u1_.data_size._0_4_;\n        *(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4) =\n             __tmp.input_section_.u1_.data_size._4_4_;\n        ((__middle._M_current)->input_section_).u2_ = __tmp.input_section_.u2_;\n        ((__middle._M_current)->input_section_).section_order_index_ =\n             __tmp.input_section_.section_order_index_;\n        pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == __src_00) {\n          if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar6 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar6,__src_00,__tmp.section_name_._M_string_length);\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          pcVar6[__tmp.section_name_._M_string_length] = '\0';\n        }\n        else if (__src == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar6) {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n        }\n        else {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          sVar2 = ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n          if (pcVar6 != (pointer)0x0) {\n            __tmp.section_name_._M_dataplus._M_p = pcVar6;\n            __tmp.section_name_.field_2._M_allocated_capacity = sVar2;\n          }\n        }\n        __tmp.section_name_._M_string_length = 0;\n        *__tmp.section_name_._M_dataplus._M_p = '\0';\n        *(undefined4 *)&(__middle._M_current)->size_ = (undefined4)__tmp.size_;\n        *(undefined4 *)((int)&(__middle._M_current)->size_ + 4) = __tmp.size_._4_4_;\n        *(undefined4 *)&(__middle._M_current)->addralign_ = (undefined4)__tmp.addralign_;\n        *(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4) = __tmp.addralign_._4_4_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != &__tmp.section_name_.field_2) {\n          operator_delete(__tmp.section_name_._M_dataplus._M_p);\n        }\n      }\n    }\n    else {\n      if (__len2 < __len1) {\n        __len1_00 = __len1 / 2;\n        __middle_01._M_current = __first._M_current + __len1_00;\n        __lower_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Iter_comp_val<gold::Input_section_sorter>_>\n                  (__middle,__last,__middle_01._M_current,\n                   (_Iter_comp_val<gold::Input_section_sorter>)__comp._M_comp);\n        iVar7 = (int)local_60 - (int)__middle._M_current;\n        local_6c = iVar7 >> 6;\n        __middle_00._M_current = local_60;\n      }\n      else {\n        local_6c = __len2 / 2;\n        iVar7 = local_6c * 0x40;\n        __upper_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Val_comp_iter<gold::Input_section_sorter>_>\n                  (__first,__middle,__middle._M_current + local_6c,\n                   (_Val_comp_iter<gold::Input_section_sorter>)__comp._M_comp);\n        __len1_00 = (int)local_60 - (int)__first._M_current >> 6;\n        __middle_00._M_current = __middle._M_current + local_6c;\n        __middle_01._M_current = local_60;\n      }\n      __last_00._M_current =\n           (Input_section_info *)((int)&((__middle_01._M_current)->input_section_).shndx_ + iVar7);\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>_>\n                (&local_60,__middle_01._M_current,__middle._M_current,__middle_00._M_current,0);\n      __comp_00._M_comp.section_sort_ = __comp._M_comp.section_sort_;\n      __comp_00._M_comp.filename_sort_ = __comp._M_comp.filename_sort_;\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (__first,__middle_01,__last_00,__len1_00,local_6c,__comp_00);\n      __comp_01._M_comp.section_sort_ = __comp._M_comp.section_sort_;\n      __comp_01._M_comp.filename_sort_ = __comp._M_comp.filename_sort_;\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (__last_00,__middle_00,__last,__len1 - __len1_00,__len2 - local_6c,__comp_01);\n    }\n  }" if (parenthesized_expression "((__len1 != 0) && (__len2 != 0))" ( (binary_expression "(__len1 != 0) && (__len2 != 0)" (parenthesized_expression "(__len1 != 0)" ( (binary_expression "__len1 != 0" identifier != number_literal) )) && (parenthesized_expression "(__len2 != 0)" ( (binary_expression "__len2 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    if (__len2 + __len1 == 2) {\n      bVar4 = gold::Input_section_sorter::operator()\n                        (&__comp._M_comp,__middle._M_current,__first._M_current);\n      if (bVar4) {\n        __src_00 = &__tmp.section_name_.field_2;\n        __tmp.input_section_.shndx_ = ((__first._M_current)->input_section_).shndx_;\n        __tmp.input_section_.p2align_ = ((__first._M_current)->input_section_).p2align_;\n        __tmp.input_section_.u1_.data_size._0_4_ =\n             *(undefined4 *)&((__first._M_current)->input_section_).u1_;\n        __tmp.input_section_.u1_.data_size._4_4_ =\n             *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4);\n        __tmp.input_section_.u2_ = ((__first._M_current)->input_section_).u2_;\n        __tmp.input_section_.section_order_index_ =\n             ((__first._M_current)->input_section_).section_order_index_;\n        __tmp.section_name_._M_dataplus._M_p =\n             ((__first._M_current)->section_name_)._M_dataplus._M_p;\n        paVar5 = &((__first._M_current)->section_name_).field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar5) {\n          __tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n          __tmp.section_name_.field_2._4_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 4);\n          __tmp.section_name_.field_2._8_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 8);\n          __tmp.section_name_.field_2._12_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 0xc);\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n        }\n        else {\n          __tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n        }\n        __tmp.section_name_._M_string_length =\n             ((__first._M_current)->section_name_)._M_string_length;\n        __tmp.size_._0_4_ = (undefined4)(__first._M_current)->size_;\n        __tmp.size_._4_4_ = *(undefined4 *)((int)&(__first._M_current)->size_ + 4);\n        ((__first._M_current)->section_name_)._M_string_length = 0;\n        ((__first._M_current)->section_name_).field_2._M_local_buf[0] = '\0';\n        __tmp.addralign_._0_4_ = (undefined4)(__first._M_current)->addralign_;\n        ((__first._M_current)->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        __tmp.addralign_._4_4_ = *(undefined4 *)((int)&(__first._M_current)->addralign_ + 4);\n        ((__first._M_current)->input_section_).shndx_ =\n             ((__middle._M_current)->input_section_).shndx_;\n        ((__first._M_current)->input_section_).p2align_ =\n             ((__middle._M_current)->input_section_).p2align_;\n        *(undefined4 *)&((__first._M_current)->input_section_).u1_ =\n             *(undefined4 *)&((__middle._M_current)->input_section_).u1_;\n        *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =\n             *(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4);\n        ((__first._M_current)->input_section_).u2_ = ((__middle._M_current)->input_section_).u2_;\n        ((__first._M_current)->input_section_).section_order_index_ =\n             ((__middle._M_current)->input_section_).section_order_index_;\n        pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        __src = &((__middle._M_current)->section_name_).field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar6 == __src) {\n          __n = ((__middle._M_current)->section_name_)._M_string_length;\n          if (__n != 0) {\n            if (__n == 1) {\n              ((__first._M_current)->section_name_).field_2._M_local_buf[0] =\n                   ((__middle._M_current)->section_name_).field_2._M_local_buf[0];\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n            else {\n              memcpy(paVar5,__src,__n);\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n          }\n          ((__first._M_current)->section_name_)._M_string_length = __n;\n          ((__first._M_current)->section_name_).field_2._M_local_buf[__n] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          ((__first._M_current)->section_name_)._M_dataplus._M_p = pcVar6;\n          ((__first._M_current)->section_name_)._M_string_length =\n               ((__middle._M_current)->section_name_)._M_string_length;\n          ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n               ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p = (pointer)__src;\n          paVar5 = __src;\n        }\n        ((__middle._M_current)->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar3 = (__middle._M_current)->size_;\n        *(undefined4 *)((int)&(__first._M_current)->size_ + 4) =\n             *(undefined4 *)((int)&(__middle._M_current)->size_ + 4);\n        uVar1 = *(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4);\n        *(int *)&(__first._M_current)->size_ = (int)uVar3;\n        uVar3 = (__middle._M_current)->addralign_;\n        *(undefined4 *)((int)&(__first._M_current)->addralign_ + 4) = uVar1;\n        *(int *)&(__first._M_current)->addralign_ = (int)uVar3;\n        ((__middle._M_current)->input_section_).shndx_ = __tmp.input_section_.shndx_;\n        ((__middle._M_current)->input_section_).p2align_ = __tmp.input_section_.p2align_;\n        *(undefined4 *)&((__middle._M_current)->input_section_).u1_ =\n             __tmp.input_section_.u1_.data_size._0_4_;\n        *(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4) =\n             __tmp.input_section_.u1_.data_size._4_4_;\n        ((__middle._M_current)->input_section_).u2_ = __tmp.input_section_.u2_;\n        ((__middle._M_current)->input_section_).section_order_index_ =\n             __tmp.input_section_.section_order_index_;\n        pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == __src_00) {\n          if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar6 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar6,__src_00,__tmp.section_name_._M_string_length);\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          pcVar6[__tmp.section_name_._M_string_length] = '\0';\n        }\n        else if (__src == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar6) {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n        }\n        else {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          sVar2 = ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n          if (pcVar6 != (pointer)0x0) {\n            __tmp.section_name_._M_dataplus._M_p = pcVar6;\n            __tmp.section_name_.field_2._M_allocated_capacity = sVar2;\n          }\n        }\n        __tmp.section_name_._M_string_length = 0;\n        *__tmp.section_name_._M_dataplus._M_p = '\0';\n        *(undefined4 *)&(__middle._M_current)->size_ = (undefined4)__tmp.size_;\n        *(undefined4 *)((int)&(__middle._M_current)->size_ + 4) = __tmp.size_._4_4_;\n        *(undefined4 *)&(__middle._M_current)->addralign_ = (undefined4)__tmp.addralign_;\n        *(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4) = __tmp.addralign_._4_4_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != &__tmp.section_name_.field_2) {\n          operator_delete(__tmp.section_name_._M_dataplus._M_p);\n        }\n      }\n    }\n    else {\n      if (__len2 < __len1) {\n        __len1_00 = __len1 / 2;\n        __middle_01._M_current = __first._M_current + __len1_00;\n        __lower_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Iter_comp_val<gold::Input_section_sorter>_>\n                  (__middle,__last,__middle_01._M_current,\n                   (_Iter_comp_val<gold::Input_section_sorter>)__comp._M_comp);\n        iVar7 = (int)local_60 - (int)__middle._M_current;\n        local_6c = iVar7 >> 6;\n        __middle_00._M_current = local_60;\n      }\n      else {\n        local_6c = __len2 / 2;\n        iVar7 = local_6c * 0x40;\n        __upper_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Val_comp_iter<gold::Input_section_sorter>_>\n                  (__first,__middle,__middle._M_current + local_6c,\n                   (_Val_comp_iter<gold::Input_section_sorter>)__comp._M_comp);\n        __len1_00 = (int)local_60 - (int)__first._M_current >> 6;\n        __middle_00._M_current = __middle._M_current + local_6c;\n        __middle_01._M_current = local_60;\n      }\n      __last_00._M_current =\n           (Input_section_info *)((int)&((__middle_01._M_current)->input_section_).shndx_ + iVar7);\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>_>\n                (&local_60,__middle_01._M_current,__middle._M_current,__middle_00._M_current,0);\n      __comp_00._M_comp.section_sort_ = __comp._M_comp.section_sort_;\n      __comp_00._M_comp.filename_sort_ = __comp._M_comp.filename_sort_;\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (__first,__middle_01,__last_00,__len1_00,local_6c,__comp_00);\n      __comp_01._M_comp.section_sort_ = __comp._M_comp.section_sort_;\n      __comp_01._M_comp.filename_sort_ = __comp._M_comp.filename_sort_;\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (__last_00,__middle_00,__last,__len1 - __len1_00,__len2 - local_6c,__comp_01);\n    }\n  }" { (if_statement "if (__len2 + __len1 == 2) {\n      bVar4 = gold::Input_section_sorter::operator()\n                        (&__comp._M_comp,__middle._M_current,__first._M_current);\n      if (bVar4) {\n        __src_00 = &__tmp.section_name_.field_2;\n        __tmp.input_section_.shndx_ = ((__first._M_current)->input_section_).shndx_;\n        __tmp.input_section_.p2align_ = ((__first._M_current)->input_section_).p2align_;\n        __tmp.input_section_.u1_.data_size._0_4_ =\n             *(undefined4 *)&((__first._M_current)->input_section_).u1_;\n        __tmp.input_section_.u1_.data_size._4_4_ =\n             *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4);\n        __tmp.input_section_.u2_ = ((__first._M_current)->input_section_).u2_;\n        __tmp.input_section_.section_order_index_ =\n             ((__first._M_current)->input_section_).section_order_index_;\n        __tmp.section_name_._M_dataplus._M_p =\n             ((__first._M_current)->section_name_)._M_dataplus._M_p;\n        paVar5 = &((__first._M_current)->section_name_).field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar5) {\n          __tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n          __tmp.section_name_.field_2._4_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 4);\n          __tmp.section_name_.field_2._8_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 8);\n          __tmp.section_name_.field_2._12_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 0xc);\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n        }\n        else {\n          __tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n        }\n        __tmp.section_name_._M_string_length =\n             ((__first._M_current)->section_name_)._M_string_length;\n        __tmp.size_._0_4_ = (undefined4)(__first._M_current)->size_;\n        __tmp.size_._4_4_ = *(undefined4 *)((int)&(__first._M_current)->size_ + 4);\n        ((__first._M_current)->section_name_)._M_string_length = 0;\n        ((__first._M_current)->section_name_).field_2._M_local_buf[0] = '\0';\n        __tmp.addralign_._0_4_ = (undefined4)(__first._M_current)->addralign_;\n        ((__first._M_current)->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        __tmp.addralign_._4_4_ = *(undefined4 *)((int)&(__first._M_current)->addralign_ + 4);\n        ((__first._M_current)->input_section_).shndx_ =\n             ((__middle._M_current)->input_section_).shndx_;\n        ((__first._M_current)->input_section_).p2align_ =\n             ((__middle._M_current)->input_section_).p2align_;\n        *(undefined4 *)&((__first._M_current)->input_section_).u1_ =\n             *(undefined4 *)&((__middle._M_current)->input_section_).u1_;\n        *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =\n             *(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4);\n        ((__first._M_current)->input_section_).u2_ = ((__middle._M_current)->input_section_).u2_;\n        ((__first._M_current)->input_section_).section_order_index_ =\n             ((__middle._M_current)->input_section_).section_order_index_;\n        pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        __src = &((__middle._M_current)->section_name_).field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar6 == __src) {\n          __n = ((__middle._M_current)->section_name_)._M_string_length;\n          if (__n != 0) {\n            if (__n == 1) {\n              ((__first._M_current)->section_name_).field_2._M_local_buf[0] =\n                   ((__middle._M_current)->section_name_).field_2._M_local_buf[0];\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n            else {\n              memcpy(paVar5,__src,__n);\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n          }\n          ((__first._M_current)->section_name_)._M_string_length = __n;\n          ((__first._M_current)->section_name_).field_2._M_local_buf[__n] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          ((__first._M_current)->section_name_)._M_dataplus._M_p = pcVar6;\n          ((__first._M_current)->section_name_)._M_string_length =\n               ((__middle._M_current)->section_name_)._M_string_length;\n          ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n               ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p = (pointer)__src;\n          paVar5 = __src;\n        }\n        ((__middle._M_current)->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar3 = (__middle._M_current)->size_;\n        *(undefined4 *)((int)&(__first._M_current)->size_ + 4) =\n             *(undefined4 *)((int)&(__middle._M_current)->size_ + 4);\n        uVar1 = *(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4);\n        *(int *)&(__first._M_current)->size_ = (int)uVar3;\n        uVar3 = (__middle._M_current)->addralign_;\n        *(undefined4 *)((int)&(__first._M_current)->addralign_ + 4) = uVar1;\n        *(int *)&(__first._M_current)->addralign_ = (int)uVar3;\n        ((__middle._M_current)->input_section_).shndx_ = __tmp.input_section_.shndx_;\n        ((__middle._M_current)->input_section_).p2align_ = __tmp.input_section_.p2align_;\n        *(undefined4 *)&((__middle._M_current)->input_section_).u1_ =\n             __tmp.input_section_.u1_.data_size._0_4_;\n        *(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4) =\n             __tmp.input_section_.u1_.data_size._4_4_;\n        ((__middle._M_current)->input_section_).u2_ = __tmp.input_section_.u2_;\n        ((__middle._M_current)->input_section_).section_order_index_ =\n             __tmp.input_section_.section_order_index_;\n        pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == __src_00) {\n          if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar6 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar6,__src_00,__tmp.section_name_._M_string_length);\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          pcVar6[__tmp.section_name_._M_string_length] = '\0';\n        }\n        else if (__src == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar6) {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n        }\n        else {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          sVar2 = ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n          if (pcVar6 != (pointer)0x0) {\n            __tmp.section_name_._M_dataplus._M_p = pcVar6;\n            __tmp.section_name_.field_2._M_allocated_capacity = sVar2;\n          }\n        }\n        __tmp.section_name_._M_string_length = 0;\n        *__tmp.section_name_._M_dataplus._M_p = '\0';\n        *(undefined4 *)&(__middle._M_current)->size_ = (undefined4)__tmp.size_;\n        *(undefined4 *)((int)&(__middle._M_current)->size_ + 4) = __tmp.size_._4_4_;\n        *(undefined4 *)&(__middle._M_current)->addralign_ = (undefined4)__tmp.addralign_;\n        *(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4) = __tmp.addralign_._4_4_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != &__tmp.section_name_.field_2) {\n          operator_delete(__tmp.section_name_._M_dataplus._M_p);\n        }\n      }\n    }\n    else {\n      if (__len2 < __len1) {\n        __len1_00 = __len1 / 2;\n        __middle_01._M_current = __first._M_current + __len1_00;\n        __lower_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Iter_comp_val<gold::Input_section_sorter>_>\n                  (__middle,__last,__middle_01._M_current,\n                   (_Iter_comp_val<gold::Input_section_sorter>)__comp._M_comp);\n        iVar7 = (int)local_60 - (int)__middle._M_current;\n        local_6c = iVar7 >> 6;\n        __middle_00._M_current = local_60;\n      }\n      else {\n        local_6c = __len2 / 2;\n        iVar7 = local_6c * 0x40;\n        __upper_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Val_comp_iter<gold::Input_section_sorter>_>\n                  (__first,__middle,__middle._M_current + local_6c,\n                   (_Val_comp_iter<gold::Input_section_sorter>)__comp._M_comp);\n        __len1_00 = (int)local_60 - (int)__first._M_current >> 6;\n        __middle_00._M_current = __middle._M_current + local_6c;\n        __middle_01._M_current = local_60;\n      }\n      __last_00._M_current =\n           (Input_section_info *)((int)&((__middle_01._M_current)->input_section_).shndx_ + iVar7);\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>_>\n                (&local_60,__middle_01._M_current,__middle._M_current,__middle_00._M_current,0);\n      __comp_00._M_comp.section_sort_ = __comp._M_comp.section_sort_;\n      __comp_00._M_comp.filename_sort_ = __comp._M_comp.filename_sort_;\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (__first,__middle_01,__last_00,__len1_00,local_6c,__comp_00);\n      __comp_01._M_comp.section_sort_ = __comp._M_comp.section_sort_;\n      __comp_01._M_comp.filename_sort_ = __comp._M_comp.filename_sort_;\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (__last_00,__middle_00,__last,__len1 - __len1_00,__len2 - local_6c,__comp_01);\n    }" if (parenthesized_expression "(__len2 + __len1 == 2)" ( (binary_expression "__len2 + __len1 == 2" (binary_expression "__len2 + __len1" identifier + identifier) == number_literal) )) (compound_statement "{\n      bVar4 = gold::Input_section_sorter::operator()\n                        (&__comp._M_comp,__middle._M_current,__first._M_current);\n      if (bVar4) {\n        __src_00 = &__tmp.section_name_.field_2;\n        __tmp.input_section_.shndx_ = ((__first._M_current)->input_section_).shndx_;\n        __tmp.input_section_.p2align_ = ((__first._M_current)->input_section_).p2align_;\n        __tmp.input_section_.u1_.data_size._0_4_ =\n             *(undefined4 *)&((__first._M_current)->input_section_).u1_;\n        __tmp.input_section_.u1_.data_size._4_4_ =\n             *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4);\n        __tmp.input_section_.u2_ = ((__first._M_current)->input_section_).u2_;\n        __tmp.input_section_.section_order_index_ =\n             ((__first._M_current)->input_section_).section_order_index_;\n        __tmp.section_name_._M_dataplus._M_p =\n             ((__first._M_current)->section_name_)._M_dataplus._M_p;\n        paVar5 = &((__first._M_current)->section_name_).field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar5) {\n          __tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n          __tmp.section_name_.field_2._4_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 4);\n          __tmp.section_name_.field_2._8_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 8);\n          __tmp.section_name_.field_2._12_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 0xc);\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n        }\n        else {\n          __tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n        }\n        __tmp.section_name_._M_string_length =\n             ((__first._M_current)->section_name_)._M_string_length;\n        __tmp.size_._0_4_ = (undefined4)(__first._M_current)->size_;\n        __tmp.size_._4_4_ = *(undefined4 *)((int)&(__first._M_current)->size_ + 4);\n        ((__first._M_current)->section_name_)._M_string_length = 0;\n        ((__first._M_current)->section_name_).field_2._M_local_buf[0] = '\0';\n        __tmp.addralign_._0_4_ = (undefined4)(__first._M_current)->addralign_;\n        ((__first._M_current)->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        __tmp.addralign_._4_4_ = *(undefined4 *)((int)&(__first._M_current)->addralign_ + 4);\n        ((__first._M_current)->input_section_).shndx_ =\n             ((__middle._M_current)->input_section_).shndx_;\n        ((__first._M_current)->input_section_).p2align_ =\n             ((__middle._M_current)->input_section_).p2align_;\n        *(undefined4 *)&((__first._M_current)->input_section_).u1_ =\n             *(undefined4 *)&((__middle._M_current)->input_section_).u1_;\n        *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =\n             *(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4);\n        ((__first._M_current)->input_section_).u2_ = ((__middle._M_current)->input_section_).u2_;\n        ((__first._M_current)->input_section_).section_order_index_ =\n             ((__middle._M_current)->input_section_).section_order_index_;\n        pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        __src = &((__middle._M_current)->section_name_).field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar6 == __src) {\n          __n = ((__middle._M_current)->section_name_)._M_string_length;\n          if (__n != 0) {\n            if (__n == 1) {\n              ((__first._M_current)->section_name_).field_2._M_local_buf[0] =\n                   ((__middle._M_current)->section_name_).field_2._M_local_buf[0];\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n            else {\n              memcpy(paVar5,__src,__n);\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n          }\n          ((__first._M_current)->section_name_)._M_string_length = __n;\n          ((__first._M_current)->section_name_).field_2._M_local_buf[__n] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          ((__first._M_current)->section_name_)._M_dataplus._M_p = pcVar6;\n          ((__first._M_current)->section_name_)._M_string_length =\n               ((__middle._M_current)->section_name_)._M_string_length;\n          ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n               ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p = (pointer)__src;\n          paVar5 = __src;\n        }\n        ((__middle._M_current)->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar3 = (__middle._M_current)->size_;\n        *(undefined4 *)((int)&(__first._M_current)->size_ + 4) =\n             *(undefined4 *)((int)&(__middle._M_current)->size_ + 4);\n        uVar1 = *(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4);\n        *(int *)&(__first._M_current)->size_ = (int)uVar3;\n        uVar3 = (__middle._M_current)->addralign_;\n        *(undefined4 *)((int)&(__first._M_current)->addralign_ + 4) = uVar1;\n        *(int *)&(__first._M_current)->addralign_ = (int)uVar3;\n        ((__middle._M_current)->input_section_).shndx_ = __tmp.input_section_.shndx_;\n        ((__middle._M_current)->input_section_).p2align_ = __tmp.input_section_.p2align_;\n        *(undefined4 *)&((__middle._M_current)->input_section_).u1_ =\n             __tmp.input_section_.u1_.data_size._0_4_;\n        *(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4) =\n             __tmp.input_section_.u1_.data_size._4_4_;\n        ((__middle._M_current)->input_section_).u2_ = __tmp.input_section_.u2_;\n        ((__middle._M_current)->input_section_).section_order_index_ =\n             __tmp.input_section_.section_order_index_;\n        pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == __src_00) {\n          if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar6 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar6,__src_00,__tmp.section_name_._M_string_length);\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          pcVar6[__tmp.section_name_._M_string_length] = '\0';\n        }\n        else if (__src == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar6) {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n        }\n        else {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          sVar2 = ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n          if (pcVar6 != (pointer)0x0) {\n            __tmp.section_name_._M_dataplus._M_p = pcVar6;\n            __tmp.section_name_.field_2._M_allocated_capacity = sVar2;\n          }\n        }\n        __tmp.section_name_._M_string_length = 0;\n        *__tmp.section_name_._M_dataplus._M_p = '\0';\n        *(undefined4 *)&(__middle._M_current)->size_ = (undefined4)__tmp.size_;\n        *(undefined4 *)((int)&(__middle._M_current)->size_ + 4) = __tmp.size_._4_4_;\n        *(undefined4 *)&(__middle._M_current)->addralign_ = (undefined4)__tmp.addralign_;\n        *(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4) = __tmp.addralign_._4_4_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != &__tmp.section_name_.field_2) {\n          operator_delete(__tmp.section_name_._M_dataplus._M_p);\n        }\n      }\n    }" { (ERROR "bVar4 = gold::" (assignment_expression "bVar4 = gold" identifier = identifier) : :) (labeled_statement "Input_section_sorter::operator()\n                        (&__comp._M_comp,__middle._M_current,__first._M_current);" statement_identifier : (ERROR ":" :) (expression_statement "operator()\n                        (&__comp._M_comp,__middle._M_current,__first._M_current);" (call_expression "operator()\n                        (&__comp._M_comp,__middle._M_current,__first._M_current)" (call_expression "operator()" identifier (argument_list "()" ( ))) (argument_list "(&__comp._M_comp,__middle._M_current,__first._M_current)" ( (pointer_expression "&__comp._M_comp" & (field_expression "__comp._M_comp" identifier . field_identifier)) , (field_expression "__middle._M_current" identifier . field_identifier) , (field_expression "__first._M_current" identifier . field_identifier) ))) ;)) (if_statement "if (bVar4) {\n        __src_00 = &__tmp.section_name_.field_2;\n        __tmp.input_section_.shndx_ = ((__first._M_current)->input_section_).shndx_;\n        __tmp.input_section_.p2align_ = ((__first._M_current)->input_section_).p2align_;\n        __tmp.input_section_.u1_.data_size._0_4_ =\n             *(undefined4 *)&((__first._M_current)->input_section_).u1_;\n        __tmp.input_section_.u1_.data_size._4_4_ =\n             *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4);\n        __tmp.input_section_.u2_ = ((__first._M_current)->input_section_).u2_;\n        __tmp.input_section_.section_order_index_ =\n             ((__first._M_current)->input_section_).section_order_index_;\n        __tmp.section_name_._M_dataplus._M_p =\n             ((__first._M_current)->section_name_)._M_dataplus._M_p;\n        paVar5 = &((__first._M_current)->section_name_).field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar5) {\n          __tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n          __tmp.section_name_.field_2._4_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 4);\n          __tmp.section_name_.field_2._8_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 8);\n          __tmp.section_name_.field_2._12_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 0xc);\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n        }\n        else {\n          __tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n        }\n        __tmp.section_name_._M_string_length =\n             ((__first._M_current)->section_name_)._M_string_length;\n        __tmp.size_._0_4_ = (undefined4)(__first._M_current)->size_;\n        __tmp.size_._4_4_ = *(undefined4 *)((int)&(__first._M_current)->size_ + 4);\n        ((__first._M_current)->section_name_)._M_string_length = 0;\n        ((__first._M_current)->section_name_).field_2._M_local_buf[0] = '\0';\n        __tmp.addralign_._0_4_ = (undefined4)(__first._M_current)->addralign_;\n        ((__first._M_current)->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        __tmp.addralign_._4_4_ = *(undefined4 *)((int)&(__first._M_current)->addralign_ + 4);\n        ((__first._M_current)->input_section_).shndx_ =\n             ((__middle._M_current)->input_section_).shndx_;\n        ((__first._M_current)->input_section_).p2align_ =\n             ((__middle._M_current)->input_section_).p2align_;\n        *(undefined4 *)&((__first._M_current)->input_section_).u1_ =\n             *(undefined4 *)&((__middle._M_current)->input_section_).u1_;\n        *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =\n             *(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4);\n        ((__first._M_current)->input_section_).u2_ = ((__middle._M_current)->input_section_).u2_;\n        ((__first._M_current)->input_section_).section_order_index_ =\n             ((__middle._M_current)->input_section_).section_order_index_;\n        pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        __src = &((__middle._M_current)->section_name_).field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar6 == __src) {\n          __n = ((__middle._M_current)->section_name_)._M_string_length;\n          if (__n != 0) {\n            if (__n == 1) {\n              ((__first._M_current)->section_name_).field_2._M_local_buf[0] =\n                   ((__middle._M_current)->section_name_).field_2._M_local_buf[0];\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n            else {\n              memcpy(paVar5,__src,__n);\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n          }\n          ((__first._M_current)->section_name_)._M_string_length = __n;\n          ((__first._M_current)->section_name_).field_2._M_local_buf[__n] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          ((__first._M_current)->section_name_)._M_dataplus._M_p = pcVar6;\n          ((__first._M_current)->section_name_)._M_string_length =\n               ((__middle._M_current)->section_name_)._M_string_length;\n          ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n               ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p = (pointer)__src;\n          paVar5 = __src;\n        }\n        ((__middle._M_current)->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar3 = (__middle._M_current)->size_;\n        *(undefined4 *)((int)&(__first._M_current)->size_ + 4) =\n             *(undefined4 *)((int)&(__middle._M_current)->size_ + 4);\n        uVar1 = *(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4);\n        *(int *)&(__first._M_current)->size_ = (int)uVar3;\n        uVar3 = (__middle._M_current)->addralign_;\n        *(undefined4 *)((int)&(__first._M_current)->addralign_ + 4) = uVar1;\n        *(int *)&(__first._M_current)->addralign_ = (int)uVar3;\n        ((__middle._M_current)->input_section_).shndx_ = __tmp.input_section_.shndx_;\n        ((__middle._M_current)->input_section_).p2align_ = __tmp.input_section_.p2align_;\n        *(undefined4 *)&((__middle._M_current)->input_section_).u1_ =\n             __tmp.input_section_.u1_.data_size._0_4_;\n        *(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4) =\n             __tmp.input_section_.u1_.data_size._4_4_;\n        ((__middle._M_current)->input_section_).u2_ = __tmp.input_section_.u2_;\n        ((__middle._M_current)->input_section_).section_order_index_ =\n             __tmp.input_section_.section_order_index_;\n        pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == __src_00) {\n          if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar6 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar6,__src_00,__tmp.section_name_._M_string_length);\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          pcVar6[__tmp.section_name_._M_string_length] = '\0';\n        }\n        else if (__src == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar6) {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n        }\n        else {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          sVar2 = ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n          if (pcVar6 != (pointer)0x0) {\n            __tmp.section_name_._M_dataplus._M_p = pcVar6;\n            __tmp.section_name_.field_2._M_allocated_capacity = sVar2;\n          }\n        }\n        __tmp.section_name_._M_string_length = 0;\n        *__tmp.section_name_._M_dataplus._M_p = '\0';\n        *(undefined4 *)&(__middle._M_current)->size_ = (undefined4)__tmp.size_;\n        *(undefined4 *)((int)&(__middle._M_current)->size_ + 4) = __tmp.size_._4_4_;\n        *(undefined4 *)&(__middle._M_current)->addralign_ = (undefined4)__tmp.addralign_;\n        *(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4) = __tmp.addralign_._4_4_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != &__tmp.section_name_.field_2) {\n          operator_delete(__tmp.section_name_._M_dataplus._M_p);\n        }\n      }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n        __src_00 = &__tmp.section_name_.field_2;\n        __tmp.input_section_.shndx_ = ((__first._M_current)->input_section_).shndx_;\n        __tmp.input_section_.p2align_ = ((__first._M_current)->input_section_).p2align_;\n        __tmp.input_section_.u1_.data_size._0_4_ =\n             *(undefined4 *)&((__first._M_current)->input_section_).u1_;\n        __tmp.input_section_.u1_.data_size._4_4_ =\n             *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4);\n        __tmp.input_section_.u2_ = ((__first._M_current)->input_section_).u2_;\n        __tmp.input_section_.section_order_index_ =\n             ((__first._M_current)->input_section_).section_order_index_;\n        __tmp.section_name_._M_dataplus._M_p =\n             ((__first._M_current)->section_name_)._M_dataplus._M_p;\n        paVar5 = &((__first._M_current)->section_name_).field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar5) {\n          __tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n          __tmp.section_name_.field_2._4_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 4);\n          __tmp.section_name_.field_2._8_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 8);\n          __tmp.section_name_.field_2._12_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 0xc);\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n        }\n        else {\n          __tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n        }\n        __tmp.section_name_._M_string_length =\n             ((__first._M_current)->section_name_)._M_string_length;\n        __tmp.size_._0_4_ = (undefined4)(__first._M_current)->size_;\n        __tmp.size_._4_4_ = *(undefined4 *)((int)&(__first._M_current)->size_ + 4);\n        ((__first._M_current)->section_name_)._M_string_length = 0;\n        ((__first._M_current)->section_name_).field_2._M_local_buf[0] = '\0';\n        __tmp.addralign_._0_4_ = (undefined4)(__first._M_current)->addralign_;\n        ((__first._M_current)->section_name_)._M_dataplus._M_p = (pointer)paVar5;\n        __tmp.addralign_._4_4_ = *(undefined4 *)((int)&(__first._M_current)->addralign_ + 4);\n        ((__first._M_current)->input_section_).shndx_ =\n             ((__middle._M_current)->input_section_).shndx_;\n        ((__first._M_current)->input_section_).p2align_ =\n             ((__middle._M_current)->input_section_).p2align_;\n        *(undefined4 *)&((__first._M_current)->input_section_).u1_ =\n             *(undefined4 *)&((__middle._M_current)->input_section_).u1_;\n        *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =\n             *(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4);\n        ((__first._M_current)->input_section_).u2_ = ((__middle._M_current)->input_section_).u2_;\n        ((__first._M_current)->input_section_).section_order_index_ =\n             ((__middle._M_current)->input_section_).section_order_index_;\n        pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        __src = &((__middle._M_current)->section_name_).field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar6 == __src) {\n          __n = ((__middle._M_current)->section_name_)._M_string_length;\n          if (__n != 0) {\n            if (__n == 1) {\n              ((__first._M_current)->section_name_).field_2._M_local_buf[0] =\n                   ((__middle._M_current)->section_name_).field_2._M_local_buf[0];\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n            else {\n              memcpy(paVar5,__src,__n);\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n          }\n          ((__first._M_current)->section_name_)._M_string_length = __n;\n          ((__first._M_current)->section_name_).field_2._M_local_buf[__n] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          ((__first._M_current)->section_name_)._M_dataplus._M_p = pcVar6;\n          ((__first._M_current)->section_name_)._M_string_length =\n               ((__middle._M_current)->section_name_)._M_string_length;\n          ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n               ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p = (pointer)__src;\n          paVar5 = __src;\n        }\n        ((__middle._M_current)->section_name_)._M_string_length = 0;\n        paVar5->_M_local_buf[0] = '\0';\n        uVar3 = (__middle._M_current)->size_;\n        *(undefined4 *)((int)&(__first._M_current)->size_ + 4) =\n             *(undefined4 *)((int)&(__middle._M_current)->size_ + 4);\n        uVar1 = *(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4);\n        *(int *)&(__first._M_current)->size_ = (int)uVar3;\n        uVar3 = (__middle._M_current)->addralign_;\n        *(undefined4 *)((int)&(__first._M_current)->addralign_ + 4) = uVar1;\n        *(int *)&(__first._M_current)->addralign_ = (int)uVar3;\n        ((__middle._M_current)->input_section_).shndx_ = __tmp.input_section_.shndx_;\n        ((__middle._M_current)->input_section_).p2align_ = __tmp.input_section_.p2align_;\n        *(undefined4 *)&((__middle._M_current)->input_section_).u1_ =\n             __tmp.input_section_.u1_.data_size._0_4_;\n        *(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4) =\n             __tmp.input_section_.u1_.data_size._4_4_;\n        ((__middle._M_current)->input_section_).u2_ = __tmp.input_section_.u2_;\n        ((__middle._M_current)->input_section_).section_order_index_ =\n             __tmp.input_section_.section_order_index_;\n        pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == __src_00) {\n          if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar6 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar6,__src_00,__tmp.section_name_._M_string_length);\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          pcVar6[__tmp.section_name_._M_string_length] = '\0';\n        }\n        else if (__src == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar6) {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n        }\n        else {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          sVar2 = ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n          if (pcVar6 != (pointer)0x0) {\n            __tmp.section_name_._M_dataplus._M_p = pcVar6;\n            __tmp.section_name_.field_2._M_allocated_capacity = sVar2;\n          }\n        }\n        __tmp.section_name_._M_string_length = 0;\n        *__tmp.section_name_._M_dataplus._M_p = '\0';\n        *(undefined4 *)&(__middle._M_current)->size_ = (undefined4)__tmp.size_;\n        *(undefined4 *)((int)&(__middle._M_current)->size_ + 4) = __tmp.size_._4_4_;\n        *(undefined4 *)&(__middle._M_current)->addralign_ = (undefined4)__tmp.addralign_;\n        *(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4) = __tmp.addralign_._4_4_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != &__tmp.section_name_.field_2) {\n          operator_delete(__tmp.section_name_._M_dataplus._M_p);\n        }\n      }" { (expression_statement "__src_00 = &__tmp.section_name_.field_2;" (assignment_expression "__src_00 = &__tmp.section_name_.field_2" identifier = (pointer_expression "&__tmp.section_name_.field_2" & (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier))) ;) (expression_statement "__tmp.input_section_.shndx_ = ((__first._M_current)->input_section_).shndx_;" (assignment_expression "__tmp.input_section_.shndx_ = ((__first._M_current)->input_section_).shndx_" (field_expression "__tmp.input_section_.shndx_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier) = (field_expression "((__first._M_current)->input_section_).shndx_" (parenthesized_expression "((__first._M_current)->input_section_)" ( (field_expression "(__first._M_current)->input_section_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "__tmp.input_section_.p2align_ = ((__first._M_current)->input_section_).p2align_;" (assignment_expression "__tmp.input_section_.p2align_ = ((__first._M_current)->input_section_).p2align_" (field_expression "__tmp.input_section_.p2align_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier) = (field_expression "((__first._M_current)->input_section_).p2align_" (parenthesized_expression "((__first._M_current)->input_section_)" ( (field_expression "(__first._M_current)->input_section_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "__tmp.input_section_.u1_.data_size._0_4_ =\n             *(undefined4 *)&((__first._M_current)->input_section_).u1_;" (assignment_expression "__tmp.input_section_.u1_.data_size._0_4_ =\n             *(undefined4 *)&((__first._M_current)->input_section_).u1_" (field_expression "__tmp.input_section_.u1_.data_size._0_4_" (field_expression "__tmp.input_section_.u1_.data_size" (field_expression "__tmp.input_section_.u1_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)&((__first._M_current)->input_section_).u1_" * (cast_expression "(undefined4 *)&((__first._M_current)->input_section_).u1_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((__first._M_current)->input_section_).u1_" & (field_expression "((__first._M_current)->input_section_).u1_" (parenthesized_expression "((__first._M_current)->input_section_)" ( (field_expression "(__first._M_current)->input_section_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))))) ;) (expression_statement "__tmp.input_section_.u1_.data_size._4_4_ =\n             *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4);" (assignment_expression "__tmp.input_section_.u1_.data_size._4_4_ =\n             *(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4)" (field_expression "__tmp.input_section_.u1_.data_size._4_4_" (field_expression "__tmp.input_section_.u1_.data_size" (field_expression "__tmp.input_section_.u1_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4)" * (cast_expression "(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((__first._M_current)->input_section_).u1_ + 4)" ( (binary_expression "(int)&((__first._M_current)->input_section_).u1_ + 4" (cast_expression "(int)&((__first._M_current)->input_section_).u1_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((__first._M_current)->input_section_).u1_" & (field_expression "((__first._M_current)->input_section_).u1_" (parenthesized_expression "((__first._M_current)->input_section_)" ( (field_expression "(__first._M_current)->input_section_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "__tmp.input_section_.u2_ = ((__first._M_current)->input_section_).u2_;" (assignment_expression "__tmp.input_section_.u2_ = ((__first._M_current)->input_section_).u2_" (field_expression "__tmp.input_section_.u2_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier) = (field_expression "((__first._M_current)->input_section_).u2_" (parenthesized_expression "((__first._M_current)->input_section_)" ( (field_expression "(__first._M_current)->input_section_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "__tmp.input_section_.section_order_index_ =\n             ((__first._M_current)->input_section_).section_order_index_;" (assignment_expression "__tmp.input_section_.section_order_index_ =\n             ((__first._M_current)->input_section_).section_order_index_" (field_expression "__tmp.input_section_.section_order_index_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier) = (field_expression "((__first._M_current)->input_section_).section_order_index_" (parenthesized_expression "((__first._M_current)->input_section_)" ( (field_expression "(__first._M_current)->input_section_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "__tmp.section_name_._M_dataplus._M_p =\n             ((__first._M_current)->section_name_)._M_dataplus._M_p;" (assignment_expression "__tmp.section_name_._M_dataplus._M_p =\n             ((__first._M_current)->section_name_)._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "((__first._M_current)->section_name_)._M_dataplus._M_p" (field_expression "((__first._M_current)->section_name_)._M_dataplus" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "paVar5 = &((__first._M_current)->section_name_).field_2;" (assignment_expression "paVar5 = &((__first._M_current)->section_name_).field_2" identifier = (pointer_expression "&((__first._M_current)->section_name_).field_2" & (field_expression "((__first._M_current)->section_name_).field_2" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar5) {\n          __tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n          __tmp.section_name_.field_2._4_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 4);\n          __tmp.section_name_.field_2._8_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 8);\n          __tmp.section_name_.field_2._12_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 0xc);\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n        }\n        else {\n          __tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar5)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == 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             *)__tmp.section_name_._M_dataplus._M_p == paVar5" (binary_expression "allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)__tmp.section_name_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier))) == identifier) )) )) (compound_statement "{\n          __tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n          __tmp.section_name_.field_2._4_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 4);\n          __tmp.section_name_.field_2._8_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 8);\n          __tmp.section_name_.field_2._12_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 0xc);\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n        }" { (expression_statement "__tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;" (assignment_expression "__tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "((__first._M_current)->section_name_).field_2._M_allocated_capacity" (field_expression "((__first._M_current)->section_name_).field_2" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "__tmp.section_name_.field_2._4_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 4);" (assignment_expression "__tmp.section_name_.field_2._4_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 4)" (field_expression "__tmp.section_name_.field_2._4_4_" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 4)" * (cast_expression "(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((__first._M_current)->section_name_).field_2 + 4)" ( (binary_expression "(int)&((__first._M_current)->section_name_).field_2 + 4" (cast_expression "(int)&((__first._M_current)->section_name_).field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((__first._M_current)->section_name_).field_2" & (field_expression "((__first._M_current)->section_name_).field_2" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "__tmp.section_name_.field_2._8_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 8);" (assignment_expression "__tmp.section_name_.field_2._8_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 8)" (field_expression "__tmp.section_name_.field_2._8_4_" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 8)" * (cast_expression "(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((__first._M_current)->section_name_).field_2 + 8)" ( (binary_expression "(int)&((__first._M_current)->section_name_).field_2 + 8" (cast_expression "(int)&((__first._M_current)->section_name_).field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((__first._M_current)->section_name_).field_2" & (field_expression "((__first._M_current)->section_name_).field_2" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "__tmp.section_name_.field_2._12_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 0xc);" (assignment_expression "__tmp.section_name_.field_2._12_4_ =\n               *(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 0xc)" (field_expression "__tmp.section_name_.field_2._12_4_" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 0xc)" * (cast_expression "(undefined4 *)((int)&((__first._M_current)->section_name_).field_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((__first._M_current)->section_name_).field_2 + 0xc)" ( (binary_expression "(int)&((__first._M_current)->section_name_).field_2 + 0xc" (cast_expression "(int)&((__first._M_current)->section_name_).field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((__first._M_current)->section_name_).field_2" & (field_expression "((__first._M_current)->section_name_).field_2" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "__tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;" (assignment_expression "__tmp.section_name_._M_dataplus._M_p = (pointer)__src_00" (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)__src_00" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) }) (else_clause "else {\n          __tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n        }" else (compound_statement "{\n          __tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;\n        }" { (expression_statement "__tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;" (assignment_expression "__tmp.section_name_.field_2._M_allocated_capacity =\n               ((__first._M_current)->section_name_).field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "((__first._M_current)->section_name_).field_2._M_allocated_capacity" (field_expression "((__first._M_current)->section_name_).field_2" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier)) ;) }))) (expression_statement "__tmp.section_name_._M_string_length =\n             ((__first._M_current)->section_name_)._M_string_length;" (assignment_expression "__tmp.section_name_._M_string_length =\n             ((__first._M_current)->section_name_)._M_string_length" (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) = (field_expression "((__first._M_current)->section_name_)._M_string_length" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "__tmp.size_._0_4_ = (undefined4)(__first._M_current)->size_;" (assignment_expression "__tmp.size_._0_4_ = (undefined4)(__first._M_current)->size_" (field_expression "__tmp.size_._0_4_" (field_expression "__tmp.size_" identifier . field_identifier) . field_identifier) = (field_expression "(undefined4)(__first._M_current)->size_" (call_expression "(undefined4)(__first._M_current)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) ))) -> field_identifier)) ;) (expression_statement "__tmp.size_._4_4_ = *(undefined4 *)((int)&(__first._M_current)->size_ + 4);" (assignment_expression "__tmp.size_._4_4_ = *(undefined4 *)((int)&(__first._M_current)->size_ + 4)" (field_expression "__tmp.size_._4_4_" (field_expression "__tmp.size_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)&(__first._M_current)->size_ + 4)" * (cast_expression "(undefined4 *)((int)&(__first._M_current)->size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__first._M_current)->size_ + 4)" ( (binary_expression "(int)&(__first._M_current)->size_ + 4" (cast_expression "(int)&(__first._M_current)->size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__first._M_current)->size_" & (field_expression "(__first._M_current)->size_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier))) + number_literal) ))))) ;) (expression_statement "((__first._M_current)->section_name_)._M_string_length = 0;" (assignment_expression "((__first._M_current)->section_name_)._M_string_length = 0" (field_expression "((__first._M_current)->section_name_)._M_string_length" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "((__first._M_current)->section_name_).field_2._M_local_buf[0] = '\0';" (assignment_expression "((__first._M_current)->section_name_).field_2._M_local_buf[0] = '\0'" (subscript_expression "((__first._M_current)->section_name_).field_2._M_local_buf[0]" (field_expression "((__first._M_current)->section_name_).field_2._M_local_buf" (field_expression "((__first._M_current)->section_name_).field_2" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "__tmp.addralign_._0_4_ = (undefined4)(__first._M_current)->addralign_;" (assignment_expression "__tmp.addralign_._0_4_ = (undefined4)(__first._M_current)->addralign_" (field_expression "__tmp.addralign_._0_4_" (field_expression "__tmp.addralign_" identifier . field_identifier) . field_identifier) = (field_expression "(undefined4)(__first._M_current)->addralign_" (call_expression "(undefined4)(__first._M_current)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) ))) -> field_identifier)) ;) (expression_statement "((__first._M_current)->section_name_)._M_dataplus._M_p = (pointer)paVar5;" (assignment_expression "((__first._M_current)->section_name_)._M_dataplus._M_p = (pointer)paVar5" (field_expression "((__first._M_current)->section_name_)._M_dataplus._M_p" (field_expression "((__first._M_current)->section_name_)._M_dataplus" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar5" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "__tmp.addralign_._4_4_ = *(undefined4 *)((int)&(__first._M_current)->addralign_ + 4);" (assignment_expression "__tmp.addralign_._4_4_ = *(undefined4 *)((int)&(__first._M_current)->addralign_ + 4)" (field_expression "__tmp.addralign_._4_4_" (field_expression "__tmp.addralign_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)&(__first._M_current)->addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&(__first._M_current)->addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__first._M_current)->addralign_ + 4)" ( (binary_expression "(int)&(__first._M_current)->addralign_ + 4" (cast_expression "(int)&(__first._M_current)->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__first._M_current)->addralign_" & (field_expression "(__first._M_current)->addralign_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier))) + number_literal) ))))) ;) (expression_statement "((__first._M_current)->input_section_).shndx_ =\n             ((__middle._M_current)->input_section_).shndx_;" (assignment_expression "((__first._M_current)->input_section_).shndx_ =\n             ((__middle._M_current)->input_section_).shndx_" (field_expression "((__first._M_current)->input_section_).shndx_" (parenthesized_expression "((__first._M_current)->input_section_)" ( (field_expression "(__first._M_current)->input_section_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "((__middle._M_current)->input_section_).shndx_" (parenthesized_expression "((__middle._M_current)->input_section_)" ( (field_expression "(__middle._M_current)->input_section_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "((__first._M_current)->input_section_).p2align_ =\n             ((__middle._M_current)->input_section_).p2align_;" (assignment_expression "((__first._M_current)->input_section_).p2align_ =\n             ((__middle._M_current)->input_section_).p2align_" (field_expression "((__first._M_current)->input_section_).p2align_" (parenthesized_expression "((__first._M_current)->input_section_)" ( (field_expression "(__first._M_current)->input_section_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "((__middle._M_current)->input_section_).p2align_" (parenthesized_expression "((__middle._M_current)->input_section_)" ( (field_expression "(__middle._M_current)->input_section_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(undefined4 *)&((__first._M_current)->input_section_).u1_ =\n             *(undefined4 *)&((__middle._M_current)->input_section_).u1_;" (assignment_expression "*(undefined4 *)&((__first._M_current)->input_section_).u1_ =\n             *(undefined4 *)&((__middle._M_current)->input_section_).u1_" (pointer_expression "*(undefined4 *)&((__first._M_current)->input_section_).u1_" * (cast_expression "(undefined4 *)&((__first._M_current)->input_section_).u1_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((__first._M_current)->input_section_).u1_" & (field_expression "((__first._M_current)->input_section_).u1_" (parenthesized_expression "((__first._M_current)->input_section_)" ( (field_expression "(__first._M_current)->input_section_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)))) = (pointer_expression "*(undefined4 *)&((__middle._M_current)->input_section_).u1_" * (cast_expression "(undefined4 *)&((__middle._M_current)->input_section_).u1_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((__middle._M_current)->input_section_).u1_" & (field_expression "((__middle._M_current)->input_section_).u1_" (parenthesized_expression "((__middle._M_current)->input_section_)" ( (field_expression "(__middle._M_current)->input_section_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))))) ;) (expression_statement "*(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =\n             *(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4);" (assignment_expression "*(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =\n             *(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4)" (pointer_expression "*(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4)" * (cast_expression "(undefined4 *)((int)&((__first._M_current)->input_section_).u1_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((__first._M_current)->input_section_).u1_ + 4)" ( (binary_expression "(int)&((__first._M_current)->input_section_).u1_ + 4" (cast_expression "(int)&((__first._M_current)->input_section_).u1_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((__first._M_current)->input_section_).u1_" & (field_expression "((__first._M_current)->input_section_).u1_" (parenthesized_expression "((__first._M_current)->input_section_)" ( (field_expression "(__first._M_current)->input_section_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4)" * (cast_expression "(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((__middle._M_current)->input_section_).u1_ + 4)" ( (binary_expression "(int)&((__middle._M_current)->input_section_).u1_ + 4" (cast_expression "(int)&((__middle._M_current)->input_section_).u1_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((__middle._M_current)->input_section_).u1_" & (field_expression "((__middle._M_current)->input_section_).u1_" (parenthesized_expression "((__middle._M_current)->input_section_)" ( (field_expression "(__middle._M_current)->input_section_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "((__first._M_current)->input_section_).u2_ = ((__middle._M_current)->input_section_).u2_;" (assignment_expression "((__first._M_current)->input_section_).u2_ = ((__middle._M_current)->input_section_).u2_" (field_expression "((__first._M_current)->input_section_).u2_" (parenthesized_expression "((__first._M_current)->input_section_)" ( (field_expression "(__first._M_current)->input_section_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "((__middle._M_current)->input_section_).u2_" (parenthesized_expression "((__middle._M_current)->input_section_)" ( (field_expression "(__middle._M_current)->input_section_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "((__first._M_current)->input_section_).section_order_index_ =\n             ((__middle._M_current)->input_section_).section_order_index_;" (assignment_expression "((__first._M_current)->input_section_).section_order_index_ =\n             ((__middle._M_current)->input_section_).section_order_index_" (field_expression "((__first._M_current)->input_section_).section_order_index_" (parenthesized_expression "((__first._M_current)->input_section_)" ( (field_expression "(__first._M_current)->input_section_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "((__middle._M_current)->input_section_).section_order_index_" (parenthesized_expression "((__middle._M_current)->input_section_)" ( (field_expression "(__middle._M_current)->input_section_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;" (assignment_expression "pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p" identifier = (field_expression "((__middle._M_current)->section_name_)._M_dataplus._M_p" (field_expression "((__middle._M_current)->section_name_)._M_dataplus" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "__src = &((__middle._M_current)->section_name_).field_2;" (assignment_expression "__src = &((__middle._M_current)->section_name_).field_2" identifier = (pointer_expression "&((__middle._M_current)->section_name_).field_2" & (field_expression "((__middle._M_current)->section_name_).field_2" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar6 == __src) {\n          __n = ((__middle._M_current)->section_name_)._M_string_length;\n          if (__n != 0) {\n            if (__n == 1) {\n              ((__first._M_current)->section_name_).field_2._M_local_buf[0] =\n                   ((__middle._M_current)->section_name_).field_2._M_local_buf[0];\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n            else {\n              memcpy(paVar5,__src,__n);\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n          }\n          ((__first._M_current)->section_name_)._M_string_length = __n;\n          ((__first._M_current)->section_name_).field_2._M_local_buf[__n] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        }\n        else {\n          ((__first._M_current)->section_name_)._M_dataplus._M_p = pcVar6;\n          ((__first._M_current)->section_name_)._M_string_length =\n               ((__middle._M_current)->section_name_)._M_string_length;\n          ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n               ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p = (pointer)__src;\n          paVar5 = __src;\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar6 == __src)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar6 == __src)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n             *)pcVar6 == __src" (binary_expression "allocator<char>_>_9\n             *)pcVar6" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)pcVar6" identifier * (ERROR ")" )) identifier)) == identifier) )) )) (compound_statement "{\n          __n = ((__middle._M_current)->section_name_)._M_string_length;\n          if (__n != 0) {\n            if (__n == 1) {\n              ((__first._M_current)->section_name_).field_2._M_local_buf[0] =\n                   ((__middle._M_current)->section_name_).field_2._M_local_buf[0];\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n            else {\n              memcpy(paVar5,__src,__n);\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n          }\n          ((__first._M_current)->section_name_)._M_string_length = __n;\n          ((__first._M_current)->section_name_).field_2._M_local_buf[__n] = '\0';\n          paVar5 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)((__middle._M_current)->section_name_)._M_dataplus._M_p;\n        }" { (expression_statement "__n = ((__middle._M_current)->section_name_)._M_string_length;" (assignment_expression "__n = ((__middle._M_current)->section_name_)._M_string_length" identifier = (field_expression "((__middle._M_current)->section_name_)._M_string_length" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (if_statement "if (__n != 0) {\n            if (__n == 1) {\n              ((__first._M_current)->section_name_).field_2._M_local_buf[0] =\n                   ((__middle._M_current)->section_name_).field_2._M_local_buf[0];\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n            else {\n              memcpy(paVar5,__src,__n);\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n          }" if (parenthesized_expression "(__n != 0)" ( (binary_expression "__n != 0" identifier != number_literal) )) (compound_statement "{\n            if (__n == 1) {\n              ((__first._M_current)->section_name_).field_2._M_local_buf[0] =\n                   ((__middle._M_current)->section_name_).field_2._M_local_buf[0];\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n            else {\n              memcpy(paVar5,__src,__n);\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n          }" { (if_statement "if (__n == 1) {\n              ((__first._M_current)->section_name_).field_2._M_local_buf[0] =\n                   ((__middle._M_current)->section_name_).field_2._M_local_buf[0];\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }\n            else {\n              memcpy(paVar5,__src,__n);\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }" if (parenthesized_expression "(__n == 1)" ( (binary_expression "__n == 1" identifier == number_literal) )) (compound_statement "{\n              ((__first._M_current)->section_name_).field_2._M_local_buf[0] =\n                   ((__middle._M_current)->section_name_).field_2._M_local_buf[0];\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }" { (expression_statement "((__first._M_current)->section_name_).field_2._M_local_buf[0] =\n                   ((__middle._M_current)->section_name_).field_2._M_local_buf[0];" (assignment_expression "((__first._M_current)->section_name_).field_2._M_local_buf[0] =\n                   ((__middle._M_current)->section_name_).field_2._M_local_buf[0]" (subscript_expression "((__first._M_current)->section_name_).field_2._M_local_buf[0]" (field_expression "((__first._M_current)->section_name_).field_2._M_local_buf" (field_expression "((__first._M_current)->section_name_).field_2" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ]) = (subscript_expression "((__middle._M_current)->section_name_).field_2._M_local_buf[0]" (field_expression "((__middle._M_current)->section_name_).field_2._M_local_buf" (field_expression "((__middle._M_current)->section_name_).field_2" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ])) ;) (expression_statement "__n = ((__middle._M_current)->section_name_)._M_string_length;" (assignment_expression "__n = ((__middle._M_current)->section_name_)._M_string_length" identifier = (field_expression "((__middle._M_current)->section_name_)._M_string_length" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) }) (else_clause "else {\n              memcpy(paVar5,__src,__n);\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }" else (compound_statement "{\n              memcpy(paVar5,__src,__n);\n              __n = ((__middle._M_current)->section_name_)._M_string_length;\n            }" { (expression_statement "memcpy(paVar5,__src,__n);" (call_expression "memcpy(paVar5,__src,__n)" identifier (argument_list "(paVar5,__src,__n)" ( identifier , identifier , identifier ))) ;) (expression_statement "__n = ((__middle._M_current)->section_name_)._M_string_length;" (assignment_expression "__n = ((__middle._M_current)->section_name_)._M_string_length" identifier = (field_expression "((__middle._M_current)->section_name_)._M_string_length" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) }))) })) (expression_statement "((__first._M_current)->section_name_)._M_string_length = __n;" (assignment_expression "((__first._M_current)->section_name_)._M_string_length = __n" (field_expression "((__first._M_current)->section_name_)._M_string_length" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "((__first._M_current)->section_name_).field_2._M_local_buf[__n] = '\0';" (assignment_expression "((__first._M_current)->section_name_).field_2._M_local_buf[__n] = '\0'" (subscript_expression "((__first._M_current)->section_name_).field_2._M_local_buf[__n]" (field_expression "((__first._M_current)->section_name_).field_2._M_local_buf" (field_expression "((__first._M_current)->section_name_).field_2" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) [ 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                    *)((__middle._M_current)->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                    *)((__middle._M_current)->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                    *)((__middle._M_current)->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                    *)((__middle._M_current)->section_name_)._M_dataplus" (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)((__middle._M_current)->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 "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) ))) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n          ((__first._M_current)->section_name_)._M_dataplus._M_p = pcVar6;\n          ((__first._M_current)->section_name_)._M_string_length =\n               ((__middle._M_current)->section_name_)._M_string_length;\n          ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n               ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p = (pointer)__src;\n          paVar5 = __src;\n        }" else (compound_statement "{\n          ((__first._M_current)->section_name_)._M_dataplus._M_p = pcVar6;\n          ((__first._M_current)->section_name_)._M_string_length =\n               ((__middle._M_current)->section_name_)._M_string_length;\n          ((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n               ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p = (pointer)__src;\n          paVar5 = __src;\n        }" { (expression_statement "((__first._M_current)->section_name_)._M_dataplus._M_p = pcVar6;" (assignment_expression "((__first._M_current)->section_name_)._M_dataplus._M_p = pcVar6" (field_expression "((__first._M_current)->section_name_)._M_dataplus._M_p" (field_expression "((__first._M_current)->section_name_)._M_dataplus" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "((__first._M_current)->section_name_)._M_string_length =\n               ((__middle._M_current)->section_name_)._M_string_length;" (assignment_expression "((__first._M_current)->section_name_)._M_string_length =\n               ((__middle._M_current)->section_name_)._M_string_length" (field_expression "((__first._M_current)->section_name_)._M_string_length" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "((__middle._M_current)->section_name_)._M_string_length" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n               ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;" (assignment_expression "((__first._M_current)->section_name_).field_2._M_allocated_capacity =\n               ((__middle._M_current)->section_name_).field_2._M_allocated_capacity" (field_expression "((__first._M_current)->section_name_).field_2._M_allocated_capacity" (field_expression "((__first._M_current)->section_name_).field_2" (parenthesized_expression "((__first._M_current)->section_name_)" ( (field_expression "(__first._M_current)->section_name_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "((__middle._M_current)->section_name_).field_2._M_allocated_capacity" (field_expression "((__middle._M_current)->section_name_).field_2" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "((__middle._M_current)->section_name_)._M_dataplus._M_p = (pointer)__src;" (assignment_expression "((__middle._M_current)->section_name_)._M_dataplus._M_p = (pointer)__src" (field_expression "((__middle._M_current)->section_name_)._M_dataplus._M_p" (field_expression "((__middle._M_current)->section_name_)._M_dataplus" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)__src" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "paVar5 = __src;" (assignment_expression "paVar5 = __src" identifier = identifier) ;) }))) (expression_statement "((__middle._M_current)->section_name_)._M_string_length = 0;" (assignment_expression "((__middle._M_current)->section_name_)._M_string_length = 0" (field_expression "((__middle._M_current)->section_name_)._M_string_length" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_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 "uVar3 = (__middle._M_current)->size_;" (assignment_expression "uVar3 = (__middle._M_current)->size_" identifier = (field_expression "(__middle._M_current)->size_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "*(undefined4 *)((int)&(__first._M_current)->size_ + 4) =\n             *(undefined4 *)((int)&(__middle._M_current)->size_ + 4);" (assignment_expression "*(undefined4 *)((int)&(__first._M_current)->size_ + 4) =\n             *(undefined4 *)((int)&(__middle._M_current)->size_ + 4)" (pointer_expression "*(undefined4 *)((int)&(__first._M_current)->size_ + 4)" * (cast_expression "(undefined4 *)((int)&(__first._M_current)->size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__first._M_current)->size_ + 4)" ( (binary_expression "(int)&(__first._M_current)->size_ + 4" (cast_expression "(int)&(__first._M_current)->size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__first._M_current)->size_" & (field_expression "(__first._M_current)->size_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&(__middle._M_current)->size_ + 4)" * (cast_expression "(undefined4 *)((int)&(__middle._M_current)->size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__middle._M_current)->size_ + 4)" ( (binary_expression "(int)&(__middle._M_current)->size_ + 4" (cast_expression "(int)&(__middle._M_current)->size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__middle._M_current)->size_" & (field_expression "(__middle._M_current)->size_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar1 = *(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4);" (assignment_expression "uVar1 = *(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__middle._M_current)->addralign_ + 4)" ( (binary_expression "(int)&(__middle._M_current)->addralign_ + 4" (cast_expression "(int)&(__middle._M_current)->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__middle._M_current)->addralign_" & (field_expression "(__middle._M_current)->addralign_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier))) + number_literal) ))))) ;) (expression_statement "*(int *)&(__first._M_current)->size_ = (int)uVar3;" (assignment_expression "*(int *)&(__first._M_current)->size_ = (int)uVar3" (pointer_expression "*(int *)&(__first._M_current)->size_" * (cast_expression "(int *)&(__first._M_current)->size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(__first._M_current)->size_" & (field_expression "(__first._M_current)->size_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier)))) = (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar3 = (__middle._M_current)->addralign_;" (assignment_expression "uVar3 = (__middle._M_current)->addralign_" identifier = (field_expression "(__middle._M_current)->addralign_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "*(undefined4 *)((int)&(__first._M_current)->addralign_ + 4) = uVar1;" (assignment_expression "*(undefined4 *)((int)&(__first._M_current)->addralign_ + 4) = uVar1" (pointer_expression "*(undefined4 *)((int)&(__first._M_current)->addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&(__first._M_current)->addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__first._M_current)->addralign_ + 4)" ( (binary_expression "(int)&(__first._M_current)->addralign_ + 4" (cast_expression "(int)&(__first._M_current)->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__first._M_current)->addralign_" & (field_expression "(__first._M_current)->addralign_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)&(__first._M_current)->addralign_ = (int)uVar3;" (assignment_expression "*(int *)&(__first._M_current)->addralign_ = (int)uVar3" (pointer_expression "*(int *)&(__first._M_current)->addralign_" * (cast_expression "(int *)&(__first._M_current)->addralign_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(__first._M_current)->addralign_" & (field_expression "(__first._M_current)->addralign_" (parenthesized_expression "(__first._M_current)" ( (field_expression "__first._M_current" identifier . field_identifier) )) -> field_identifier)))) = (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "((__middle._M_current)->input_section_).shndx_ = __tmp.input_section_.shndx_;" (assignment_expression "((__middle._M_current)->input_section_).shndx_ = __tmp.input_section_.shndx_" (field_expression "((__middle._M_current)->input_section_).shndx_" (parenthesized_expression "((__middle._M_current)->input_section_)" ( (field_expression "(__middle._M_current)->input_section_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "__tmp.input_section_.shndx_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "((__middle._M_current)->input_section_).p2align_ = __tmp.input_section_.p2align_;" (assignment_expression "((__middle._M_current)->input_section_).p2align_ = __tmp.input_section_.p2align_" (field_expression "((__middle._M_current)->input_section_).p2align_" (parenthesized_expression "((__middle._M_current)->input_section_)" ( (field_expression "(__middle._M_current)->input_section_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "__tmp.input_section_.p2align_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)&((__middle._M_current)->input_section_).u1_ =\n             __tmp.input_section_.u1_.data_size._0_4_;" (assignment_expression "*(undefined4 *)&((__middle._M_current)->input_section_).u1_ =\n             __tmp.input_section_.u1_.data_size._0_4_" (pointer_expression "*(undefined4 *)&((__middle._M_current)->input_section_).u1_" * (cast_expression "(undefined4 *)&((__middle._M_current)->input_section_).u1_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((__middle._M_current)->input_section_).u1_" & (field_expression "((__middle._M_current)->input_section_).u1_" (parenthesized_expression "((__middle._M_current)->input_section_)" ( (field_expression "(__middle._M_current)->input_section_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)))) = (field_expression "__tmp.input_section_.u1_.data_size._0_4_" (field_expression "__tmp.input_section_.u1_.data_size" (field_expression "__tmp.input_section_.u1_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4) =\n             __tmp.input_section_.u1_.data_size._4_4_;" (assignment_expression "*(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4) =\n             __tmp.input_section_.u1_.data_size._4_4_" (pointer_expression "*(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4)" * (cast_expression "(undefined4 *)((int)&((__middle._M_current)->input_section_).u1_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((__middle._M_current)->input_section_).u1_ + 4)" ( (binary_expression "(int)&((__middle._M_current)->input_section_).u1_ + 4" (cast_expression "(int)&((__middle._M_current)->input_section_).u1_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((__middle._M_current)->input_section_).u1_" & (field_expression "((__middle._M_current)->input_section_).u1_" (parenthesized_expression "((__middle._M_current)->input_section_)" ( (field_expression "(__middle._M_current)->input_section_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) + number_literal) )))) = (field_expression "__tmp.input_section_.u1_.data_size._4_4_" (field_expression "__tmp.input_section_.u1_.data_size" (field_expression "__tmp.input_section_.u1_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "((__middle._M_current)->input_section_).u2_ = __tmp.input_section_.u2_;" (assignment_expression "((__middle._M_current)->input_section_).u2_ = __tmp.input_section_.u2_" (field_expression "((__middle._M_current)->input_section_).u2_" (parenthesized_expression "((__middle._M_current)->input_section_)" ( (field_expression "(__middle._M_current)->input_section_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "__tmp.input_section_.u2_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "((__middle._M_current)->input_section_).section_order_index_ =\n             __tmp.input_section_.section_order_index_;" (assignment_expression "((__middle._M_current)->input_section_).section_order_index_ =\n             __tmp.input_section_.section_order_index_" (field_expression "((__middle._M_current)->input_section_).section_order_index_" (parenthesized_expression "((__middle._M_current)->input_section_)" ( (field_expression "(__middle._M_current)->input_section_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "__tmp.input_section_.section_order_index_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;" (assignment_expression "pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p" identifier = (field_expression "((__middle._M_current)->section_name_)._M_dataplus._M_p" (field_expression "((__middle._M_current)->section_name_)._M_dataplus" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == __src_00) {\n          if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar6 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar6,__src_00,__tmp.section_name_._M_string_length);\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          pcVar6[__tmp.section_name_._M_string_length] = '\0';\n        }\n        else if (__src == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar6) {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n        }\n        else {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          sVar2 = ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n          if (pcVar6 != (pointer)0x0) {\n            __tmp.section_name_._M_dataplus._M_p = pcVar6;\n            __tmp.section_name_.field_2._M_allocated_capacity = sVar2;\n          }\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == __src_00)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == __src_00)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == __src_00" (binary_expression "allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)__tmp.section_name_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier))) == identifier) )) )) (compound_statement "{\n          if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar6 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar6,__src_00,__tmp.section_name_._M_string_length);\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          pcVar6[__tmp.section_name_._M_string_length] = '\0';\n        }" { (if_statement "if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar6 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar6,__src_00,__tmp.section_name_._M_string_length);\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }" if (parenthesized_expression "(__tmp.section_name_._M_string_length != 0)" ( (binary_expression "__tmp.section_name_._M_string_length != 0" (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) != number_literal) )) (compound_statement "{\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar6 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar6,__src_00,__tmp.section_name_._M_string_length);\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n          }" { (if_statement "if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar6 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(pcVar6,__src_00,__tmp.section_name_._M_string_length);\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }" if (parenthesized_expression "(__tmp.section_name_._M_string_length == 1)" ( (binary_expression "__tmp.section_name_._M_string_length == 1" (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) == number_literal) )) (compound_statement "{\n              *pcVar6 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }" { (expression_statement "*pcVar6 = __tmp.section_name_.field_2._M_local_buf[0];" (assignment_expression "*pcVar6 = __tmp.section_name_.field_2._M_local_buf[0]" (pointer_expression "*pcVar6" * identifier) = (subscript_expression "__tmp.section_name_.field_2._M_local_buf[0]" (field_expression "__tmp.section_name_.field_2._M_local_buf" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) ;) (expression_statement "pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;" (assignment_expression "pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p" identifier = (field_expression "((__middle._M_current)->section_name_)._M_dataplus._M_p" (field_expression "((__middle._M_current)->section_name_)._M_dataplus" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n              memcpy(pcVar6,__src_00,__tmp.section_name_._M_string_length);\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }" else (compound_statement "{\n              memcpy(pcVar6,__src_00,__tmp.section_name_._M_string_length);\n              pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;\n            }" { (expression_statement "memcpy(pcVar6,__src_00,__tmp.section_name_._M_string_length);" (call_expression "memcpy(pcVar6,__src_00,__tmp.section_name_._M_string_length)" identifier (argument_list "(pcVar6,__src_00,__tmp.section_name_._M_string_length)" ( identifier , identifier , (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) ))) ;) (expression_statement "pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;" (assignment_expression "pcVar6 = ((__middle._M_current)->section_name_)._M_dataplus._M_p" identifier = (field_expression "((__middle._M_current)->section_name_)._M_dataplus._M_p" (field_expression "((__middle._M_current)->section_name_)._M_dataplus" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier)) ;) }))) })) (expression_statement "((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;" (assignment_expression "((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length" (field_expression "((__middle._M_current)->section_name_)._M_string_length" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "pcVar6[__tmp.section_name_._M_string_length] = '\0';" (assignment_expression "pcVar6[__tmp.section_name_._M_string_length] = '\0'" (subscript_expression "pcVar6[__tmp.section_name_._M_string_length]" identifier [ (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else if (__src == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar6) {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n        }\n        else {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          sVar2 = ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n          if (pcVar6 != (pointer)0x0) {\n            __tmp.section_name_._M_dataplus._M_p = pcVar6;\n            __tmp.section_name_.field_2._M_allocated_capacity = sVar2;\n          }\n        }" else (if_statement "if (__src == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar6) {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n        }\n        else {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          sVar2 = ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n          if (pcVar6 != (pointer)0x0) {\n            __tmp.section_name_._M_dataplus._M_p = pcVar6;\n            __tmp.section_name_.field_2._M_allocated_capacity = sVar2;\n          }\n        }" if (parenthesized_expression "(__src == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar6)" ( (binary_expression "__src == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar6)" identifier == (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar6)" ( (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                           *)pcVar6" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                           *)pcVar6" identifier * (ERROR ")" )) identifier)) ))) )) (compound_statement "{\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n        }" { (expression_statement "((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;" (assignment_expression "((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p" (field_expression "((__middle._M_current)->section_name_)._M_dataplus._M_p" (field_expression "((__middle._M_current)->section_name_)._M_dataplus" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;" (assignment_expression "((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length" (field_expression "((__middle._M_current)->section_name_)._M_string_length" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;" (assignment_expression "((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity" (field_expression "((__middle._M_current)->section_name_).field_2._M_allocated_capacity" (field_expression "((__middle._M_current)->section_name_).field_2" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "__tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;" (assignment_expression "__tmp.section_name_._M_dataplus._M_p = (pointer)__src_00" (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)__src_00" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) }) (else_clause "else {\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          sVar2 = ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n          if (pcVar6 != (pointer)0x0) {\n            __tmp.section_name_._M_dataplus._M_p = pcVar6;\n            __tmp.section_name_.field_2._M_allocated_capacity = sVar2;\n          }\n        }" else (compound_statement "{\n          ((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;\n          sVar2 = ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;\n          ((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;\n          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;\n          __tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;\n          if (pcVar6 != (pointer)0x0) {\n            __tmp.section_name_._M_dataplus._M_p = pcVar6;\n            __tmp.section_name_.field_2._M_allocated_capacity = sVar2;\n          }\n        }" { (expression_statement "((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p;" (assignment_expression "((__middle._M_current)->section_name_)._M_dataplus._M_p =\n               __tmp.section_name_._M_dataplus._M_p" (field_expression "((__middle._M_current)->section_name_)._M_dataplus._M_p" (field_expression "((__middle._M_current)->section_name_)._M_dataplus" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "sVar2 = ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;" (assignment_expression "sVar2 = ((__middle._M_current)->section_name_).field_2._M_allocated_capacity" identifier = (field_expression "((__middle._M_current)->section_name_).field_2._M_allocated_capacity" (field_expression "((__middle._M_current)->section_name_).field_2" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length;" (assignment_expression "((__middle._M_current)->section_name_)._M_string_length =\n               __tmp.section_name_._M_string_length" (field_expression "((__middle._M_current)->section_name_)._M_string_length" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity;" (assignment_expression "((__middle._M_current)->section_name_).field_2._M_allocated_capacity =\n               __tmp.section_name_.field_2._M_allocated_capacity" (field_expression "((__middle._M_current)->section_name_).field_2._M_allocated_capacity" (field_expression "((__middle._M_current)->section_name_).field_2" (parenthesized_expression "((__middle._M_current)->section_name_)" ( (field_expression "(__middle._M_current)->section_name_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "__tmp.section_name_._M_dataplus._M_p = (pointer)__src_00;" (assignment_expression "__tmp.section_name_._M_dataplus._M_p = (pointer)__src_00" (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)__src_00" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if (pcVar6 != (pointer)0x0) {\n            __tmp.section_name_._M_dataplus._M_p = pcVar6;\n            __tmp.section_name_.field_2._M_allocated_capacity = sVar2;\n          }" if (parenthesized_expression "(pcVar6 != (pointer)0x0)" ( (binary_expression "pcVar6 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n            __tmp.section_name_._M_dataplus._M_p = pcVar6;\n            __tmp.section_name_.field_2._M_allocated_capacity = sVar2;\n          }" { (expression_statement "__tmp.section_name_._M_dataplus._M_p = pcVar6;" (assignment_expression "__tmp.section_name_._M_dataplus._M_p = pcVar6" (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "__tmp.section_name_.field_2._M_allocated_capacity = sVar2;" (assignment_expression "__tmp.section_name_.field_2._M_allocated_capacity = sVar2" (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) })) }))))) (expression_statement "__tmp.section_name_._M_string_length = 0;" (assignment_expression "__tmp.section_name_._M_string_length = 0" (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "*__tmp.section_name_._M_dataplus._M_p = '\0';" (assignment_expression "*__tmp.section_name_._M_dataplus._M_p = '\0'" (pointer_expression "*__tmp.section_name_._M_dataplus._M_p" * (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(undefined4 *)&(__middle._M_current)->size_ = (undefined4)__tmp.size_;" (assignment_expression "*(undefined4 *)&(__middle._M_current)->size_ = (undefined4)__tmp.size_" (pointer_expression "*(undefined4 *)&(__middle._M_current)->size_" * (cast_expression "(undefined4 *)&(__middle._M_current)->size_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(__middle._M_current)->size_" & (field_expression "(__middle._M_current)->size_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier)))) = (cast_expression "(undefined4)__tmp.size_" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "__tmp.size_" identifier . field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&(__middle._M_current)->size_ + 4) = __tmp.size_._4_4_;" (assignment_expression "*(undefined4 *)((int)&(__middle._M_current)->size_ + 4) = __tmp.size_._4_4_" (pointer_expression "*(undefined4 *)((int)&(__middle._M_current)->size_ + 4)" * (cast_expression "(undefined4 *)((int)&(__middle._M_current)->size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__middle._M_current)->size_ + 4)" ( (binary_expression "(int)&(__middle._M_current)->size_ + 4" (cast_expression "(int)&(__middle._M_current)->size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__middle._M_current)->size_" & (field_expression "(__middle._M_current)->size_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier))) + number_literal) )))) = (field_expression "__tmp.size_._4_4_" (field_expression "__tmp.size_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)&(__middle._M_current)->addralign_ = (undefined4)__tmp.addralign_;" (assignment_expression "*(undefined4 *)&(__middle._M_current)->addralign_ = (undefined4)__tmp.addralign_" (pointer_expression "*(undefined4 *)&(__middle._M_current)->addralign_" * (cast_expression "(undefined4 *)&(__middle._M_current)->addralign_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(__middle._M_current)->addralign_" & (field_expression "(__middle._M_current)->addralign_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier)))) = (cast_expression "(undefined4)__tmp.addralign_" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "__tmp.addralign_" identifier . field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4) = __tmp.addralign_._4_4_;" (assignment_expression "*(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4) = __tmp.addralign_._4_4_" (pointer_expression "*(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&(__middle._M_current)->addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__middle._M_current)->addralign_ + 4)" ( (binary_expression "(int)&(__middle._M_current)->addralign_ + 4" (cast_expression "(int)&(__middle._M_current)->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__middle._M_current)->addralign_" & (field_expression "(__middle._M_current)->addralign_" (parenthesized_expression "(__middle._M_current)" ( (field_expression "__middle._M_current" identifier . field_identifier) )) -> field_identifier))) + number_literal) )))) = (field_expression "__tmp.addralign_._4_4_" (field_expression "__tmp.addralign_" identifier . field_identifier) . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != &__tmp.section_name_.field_2) {\n          operator_delete(__tmp.section_name_._M_dataplus._M_p);\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != &__tmp.section_name_.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != &__tmp.section_name_.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != &__tmp.section_name_.field_2" (binary_expression "allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)__tmp.section_name_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier))) != (pointer_expression "&__tmp.section_name_.field_2" & (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier))) )) )) (compound_statement "{\n          operator_delete(__tmp.section_name_._M_dataplus._M_p);\n        }" { (expression_statement "operator_delete(__tmp.section_name_._M_dataplus._M_p);" (call_expression "operator_delete(__tmp.section_name_._M_dataplus._M_p)" identifier (argument_list "(__tmp.section_name_._M_dataplus._M_p)" ( (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) ))) ;) })) })) }) (else_clause "else {\n      if (__len2 < __len1) {\n        __len1_00 = __len1 / 2;\n        __middle_01._M_current = __first._M_current + __len1_00;\n        __lower_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Iter_comp_val<gold::Input_section_sorter>_>\n                  (__middle,__last,__middle_01._M_current,\n                   (_Iter_comp_val<gold::Input_section_sorter>)__comp._M_comp);\n        iVar7 = (int)local_60 - (int)__middle._M_current;\n        local_6c = iVar7 >> 6;\n        __middle_00._M_current = local_60;\n      }\n      else {\n        local_6c = __len2 / 2;\n        iVar7 = local_6c * 0x40;\n        __upper_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Val_comp_iter<gold::Input_section_sorter>_>\n                  (__first,__middle,__middle._M_current + local_6c,\n                   (_Val_comp_iter<gold::Input_section_sorter>)__comp._M_comp);\n        __len1_00 = (int)local_60 - (int)__first._M_current >> 6;\n        __middle_00._M_current = __middle._M_current + local_6c;\n        __middle_01._M_current = local_60;\n      }\n      __last_00._M_current =\n           (Input_section_info *)((int)&((__middle_01._M_current)->input_section_).shndx_ + iVar7);\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>_>\n                (&local_60,__middle_01._M_current,__middle._M_current,__middle_00._M_current,0);\n      __comp_00._M_comp.section_sort_ = __comp._M_comp.section_sort_;\n      __comp_00._M_comp.filename_sort_ = __comp._M_comp.filename_sort_;\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (__first,__middle_01,__last_00,__len1_00,local_6c,__comp_00);\n      __comp_01._M_comp.section_sort_ = __comp._M_comp.section_sort_;\n      __comp_01._M_comp.filename_sort_ = __comp._M_comp.filename_sort_;\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (__last_00,__middle_00,__last,__len1 - __len1_00,__len2 - local_6c,__comp_01);\n    }" else (compound_statement "{\n      if (__len2 < __len1) {\n        __len1_00 = __len1 / 2;\n        __middle_01._M_current = __first._M_current + __len1_00;\n        __lower_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Iter_comp_val<gold::Input_section_sorter>_>\n                  (__middle,__last,__middle_01._M_current,\n                   (_Iter_comp_val<gold::Input_section_sorter>)__comp._M_comp);\n        iVar7 = (int)local_60 - (int)__middle._M_current;\n        local_6c = iVar7 >> 6;\n        __middle_00._M_current = local_60;\n      }\n      else {\n        local_6c = __len2 / 2;\n        iVar7 = local_6c * 0x40;\n        __upper_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Val_comp_iter<gold::Input_section_sorter>_>\n                  (__first,__middle,__middle._M_current + local_6c,\n                   (_Val_comp_iter<gold::Input_section_sorter>)__comp._M_comp);\n        __len1_00 = (int)local_60 - (int)__first._M_current >> 6;\n        __middle_00._M_current = __middle._M_current + local_6c;\n        __middle_01._M_current = local_60;\n      }\n      __last_00._M_current =\n           (Input_section_info *)((int)&((__middle_01._M_current)->input_section_).shndx_ + iVar7);\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>_>\n                (&local_60,__middle_01._M_current,__middle._M_current,__middle_00._M_current,0);\n      __comp_00._M_comp.section_sort_ = __comp._M_comp.section_sort_;\n      __comp_00._M_comp.filename_sort_ = __comp._M_comp.filename_sort_;\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (__first,__middle_01,__last_00,__len1_00,local_6c,__comp_00);\n      __comp_01._M_comp.section_sort_ = __comp._M_comp.section_sort_;\n      __comp_01._M_comp.filename_sort_ = __comp._M_comp.filename_sort_;\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (__last_00,__middle_00,__last,__len1 - __len1_00,__len2 - local_6c,__comp_01);\n    }" { (if_statement "if (__len2 < __len1) {\n        __len1_00 = __len1 / 2;\n        __middle_01._M_current = __first._M_current + __len1_00;\n        __lower_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Iter_comp_val<gold::Input_section_sorter>_>\n                  (__middle,__last,__middle_01._M_current,\n                   (_Iter_comp_val<gold::Input_section_sorter>)__comp._M_comp);\n        iVar7 = (int)local_60 - (int)__middle._M_current;\n        local_6c = iVar7 >> 6;\n        __middle_00._M_current = local_60;\n      }\n      else {\n        local_6c = __len2 / 2;\n        iVar7 = local_6c * 0x40;\n        __upper_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Val_comp_iter<gold::Input_section_sorter>_>\n                  (__first,__middle,__middle._M_current + local_6c,\n                   (_Val_comp_iter<gold::Input_section_sorter>)__comp._M_comp);\n        __len1_00 = (int)local_60 - (int)__first._M_current >> 6;\n        __middle_00._M_current = __middle._M_current + local_6c;\n        __middle_01._M_current = local_60;\n      }" if (parenthesized_expression "(__len2 < __len1)" ( (binary_expression "__len2 < __len1" identifier < identifier) )) (compound_statement "{\n        __len1_00 = __len1 / 2;\n        __middle_01._M_current = __first._M_current + __len1_00;\n        __lower_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Iter_comp_val<gold::Input_section_sorter>_>\n                  (__middle,__last,__middle_01._M_current,\n                   (_Iter_comp_val<gold::Input_section_sorter>)__comp._M_comp);\n        iVar7 = (int)local_60 - (int)__middle._M_current;\n        local_6c = iVar7 >> 6;\n        __middle_00._M_current = local_60;\n      }" { (expression_statement "__len1_00 = __len1 / 2;" (assignment_expression "__len1_00 = __len1 / 2" identifier = (binary_expression "__len1 / 2" identifier / number_literal)) ;) (expression_statement "__middle_01._M_current = __first._M_current + __len1_00;" (assignment_expression "__middle_01._M_current = __first._M_current + __len1_00" (field_expression "__middle_01._M_current" identifier . field_identifier) = (binary_expression "__first._M_current + __len1_00" (field_expression "__first._M_current" identifier . field_identifier) + identifier)) ;) (ERROR "__lower_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Iter_comp_val<gold::" (comma_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold" (binary_expression "__lower_bound<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::Input_section_info" : : identifier) , identifier) : : identifier : : (binary_expression "_Iter_comp_val<gold" identifier < identifier) : :) (expression_statement "Input_section_sorter>_>\n                  (__middle,__last,__middle_01._M_current,\n                   (_Iter_comp_val<gold::Input_section_sorter>)__comp._M_comp);" (binary_expression "Input_section_sorter>_>\n                  (__middle,__last,__middle_01._M_current,\n                   (_Iter_comp_val<gold::Input_section_sorter>)__comp._M_comp)" (binary_expression "Input_section_sorter>_" identifier > identifier) > (parenthesized_expression "(__middle,__last,__middle_01._M_current,\n                   (_Iter_comp_val<gold::Input_section_sorter>)__comp._M_comp)" ( (comma_expression "__middle,__last,__middle_01._M_current,\n                   (_Iter_comp_val<gold::Input_section_sorter>)__comp._M_comp)" identifier , (comma_expression "__last,__middle_01._M_current,\n                   (_Iter_comp_val<gold::Input_section_sorter>)__comp._M_comp)" identifier , (comma_expression "__middle_01._M_current,\n                   (_Iter_comp_val<gold::Input_section_sorter>)__comp._M_comp)" (field_expression "__middle_01._M_current" identifier . field_identifier) , (parenthesized_expression "(_Iter_comp_val<gold::Input_section_sorter>)__comp._M_comp)" ( (ERROR "_Iter_comp_val<gold::" (binary_expression "_Iter_comp_val<gold" identifier < identifier) : :) (binary_expression "Input_section_sorter>)__comp._M_comp" identifier > (ERROR ")" )) (field_expression "__comp._M_comp" identifier . field_identifier)) ))))) ))) ;) (expression_statement "iVar7 = (int)local_60 - (int)__middle._M_current;" (assignment_expression "iVar7 = (int)local_60 - (int)__middle._M_current" identifier = (binary_expression "(int)local_60 - (int)__middle._M_current" (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__middle._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__middle._M_current" identifier . field_identifier)))) ;) (expression_statement "local_6c = iVar7 >> 6;" (assignment_expression "local_6c = iVar7 >> 6" identifier = (binary_expression "iVar7 >> 6" identifier >> number_literal)) ;) (expression_statement "__middle_00._M_current = local_60;" (assignment_expression "__middle_00._M_current = local_60" (field_expression "__middle_00._M_current" identifier . field_identifier) = identifier) ;) }) (else_clause "else {\n        local_6c = __len2 / 2;\n        iVar7 = local_6c * 0x40;\n        __upper_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Val_comp_iter<gold::Input_section_sorter>_>\n                  (__first,__middle,__middle._M_current + local_6c,\n                   (_Val_comp_iter<gold::Input_section_sorter>)__comp._M_comp);\n        __len1_00 = (int)local_60 - (int)__first._M_current >> 6;\n        __middle_00._M_current = __middle._M_current + local_6c;\n        __middle_01._M_current = local_60;\n      }" else (compound_statement "{\n        local_6c = __len2 / 2;\n        iVar7 = local_6c * 0x40;\n        __upper_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Val_comp_iter<gold::Input_section_sorter>_>\n                  (__first,__middle,__middle._M_current + local_6c,\n                   (_Val_comp_iter<gold::Input_section_sorter>)__comp._M_comp);\n        __len1_00 = (int)local_60 - (int)__first._M_current >> 6;\n        __middle_00._M_current = __middle._M_current + local_6c;\n        __middle_01._M_current = local_60;\n      }" { (expression_statement "local_6c = __len2 / 2;" (assignment_expression "local_6c = __len2 / 2" identifier = (binary_expression "__len2 / 2" identifier / number_literal)) ;) (expression_statement "iVar7 = local_6c * 0x40;" (assignment_expression "iVar7 = local_6c * 0x40" identifier = (binary_expression "local_6c * 0x40" identifier * number_literal)) ;) (ERROR "__upper_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx::__ops::_Val_comp_iter<gold::" (comma_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info,___gnu_cxx" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold" (binary_expression "__upper_bound<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::Input_section_info" : : identifier) , identifier) : : identifier : : (binary_expression "_Val_comp_iter<gold" identifier < identifier) : :) (expression_statement "Input_section_sorter>_>\n                  (__first,__middle,__middle._M_current + local_6c,\n                   (_Val_comp_iter<gold::Input_section_sorter>)__comp._M_comp);" (binary_expression "Input_section_sorter>_>\n                  (__first,__middle,__middle._M_current + local_6c,\n                   (_Val_comp_iter<gold::Input_section_sorter>)__comp._M_comp)" (binary_expression "Input_section_sorter>_" identifier > identifier) > (parenthesized_expression "(__first,__middle,__middle._M_current + local_6c,\n                   (_Val_comp_iter<gold::Input_section_sorter>)__comp._M_comp)" ( (comma_expression "__first,__middle,__middle._M_current + local_6c,\n                   (_Val_comp_iter<gold::Input_section_sorter>)__comp._M_comp)" identifier , (comma_expression "__middle,__middle._M_current + local_6c,\n                   (_Val_comp_iter<gold::Input_section_sorter>)__comp._M_comp)" identifier , (comma_expression "__middle._M_current + local_6c,\n                   (_Val_comp_iter<gold::Input_section_sorter>)__comp._M_comp)" (binary_expression "__middle._M_current + local_6c" (field_expression "__middle._M_current" identifier . field_identifier) + identifier) , (parenthesized_expression "(_Val_comp_iter<gold::Input_section_sorter>)__comp._M_comp)" ( (ERROR "_Val_comp_iter<gold::" (binary_expression "_Val_comp_iter<gold" identifier < identifier) : :) (binary_expression "Input_section_sorter>)__comp._M_comp" identifier > (ERROR ")" )) (field_expression "__comp._M_comp" identifier . field_identifier)) ))))) ))) ;) (expression_statement "__len1_00 = (int)local_60 - (int)__first._M_current >> 6;" (assignment_expression "__len1_00 = (int)local_60 - (int)__first._M_current >> 6" identifier = (binary_expression "(int)local_60 - (int)__first._M_current >> 6" (binary_expression "(int)local_60 - (int)__first._M_current" (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__first._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__first._M_current" identifier . field_identifier))) >> number_literal)) ;) (expression_statement "__middle_00._M_current = __middle._M_current + local_6c;" (assignment_expression "__middle_00._M_current = __middle._M_current + local_6c" (field_expression "__middle_00._M_current" identifier . field_identifier) = (binary_expression "__middle._M_current + local_6c" (field_expression "__middle._M_current" identifier . field_identifier) + identifier)) ;) (expression_statement "__middle_01._M_current = local_60;" (assignment_expression "__middle_01._M_current = local_60" (field_expression "__middle_01._M_current" identifier . field_identifier) = identifier) ;) }))) (expression_statement "__last_00._M_current =\n           (Input_section_info *)((int)&((__middle_01._M_current)->input_section_).shndx_ + iVar7);" (assignment_expression "__last_00._M_current =\n           (Input_section_info *)((int)&((__middle_01._M_current)->input_section_).shndx_ + iVar7)" (field_expression "__last_00._M_current" identifier . field_identifier) = (cast_expression "(Input_section_info *)((int)&((__middle_01._M_current)->input_section_).shndx_ + iVar7)" ( (type_descriptor "Input_section_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((__middle_01._M_current)->input_section_).shndx_ + iVar7)" ( (binary_expression "(int)&((__middle_01._M_current)->input_section_).shndx_ + iVar7" (cast_expression "(int)&((__middle_01._M_current)->input_section_).shndx_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((__middle_01._M_current)->input_section_).shndx_" & (field_expression "((__middle_01._M_current)->input_section_).shndx_" (parenthesized_expression "((__middle_01._M_current)->input_section_)" ( (field_expression "(__middle_01._M_current)->input_section_" (parenthesized_expression "(__middle_01._M_current)" ( (field_expression "__middle_01._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) + identifier) )))) ;) (ERROR "_V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::" (comma_expression "_V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std" identifier (ERROR "::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Input_section_info*" : : (binary_expression "__rotate<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "vector<gold" identifier < identifier) : :) (expression_statement "Input_section_info>_>_>\n                (&local_60,__middle_01._M_current,__middle._M_current,__middle_00._M_current,0);" (binary_expression "Input_section_info>_>_>\n                (&local_60,__middle_01._M_current,__middle._M_current,__middle_00._M_current,0)" (binary_expression "Input_section_info>_>_" (binary_expression "Input_section_info>_" identifier > identifier) > identifier) > (parenthesized_expression "(&local_60,__middle_01._M_current,__middle._M_current,__middle_00._M_current,0)" ( (comma_expression "&local_60,__middle_01._M_current,__middle._M_current,__middle_00._M_current,0" (pointer_expression "&local_60" & identifier) , (comma_expression "__middle_01._M_current,__middle._M_current,__middle_00._M_current,0" (field_expression "__middle_01._M_current" identifier . field_identifier) , (comma_expression "__middle._M_current,__middle_00._M_current,0" (field_expression "__middle._M_current" identifier . field_identifier) , (comma_expression "__middle_00._M_current,0" (field_expression "__middle_00._M_current" identifier . field_identifier) , number_literal)))) ))) ;) (expression_statement "__comp_00._M_comp.section_sort_ = __comp._M_comp.section_sort_;" (assignment_expression "__comp_00._M_comp.section_sort_ = __comp._M_comp.section_sort_" (field_expression "__comp_00._M_comp.section_sort_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier) = (field_expression "__comp._M_comp.section_sort_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier)) ;) (expression_statement "__comp_00._M_comp.filename_sort_ = __comp._M_comp.filename_sort_;" (assignment_expression "__comp_00._M_comp.filename_sort_ = __comp._M_comp.filename_sort_" (field_expression "__comp_00._M_comp.filename_sort_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier) = (field_expression "__comp._M_comp.filename_sort_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier)) ;) (ERROR "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::" (comma_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold" (binary_expression "__merge_without_buffer<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) > identifier) > (ERROR "," ,) identifier) , identifier) : : identifier : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) : :) (expression_statement "Input_section_sorter>_>\n                (__first,__middle_01,__last_00,__len1_00,local_6c,__comp_00);" (binary_expression "Input_section_sorter>_>\n                (__first,__middle_01,__last_00,__len1_00,local_6c,__comp_00)" (binary_expression "Input_section_sorter>_" identifier > identifier) > (parenthesized_expression "(__first,__middle_01,__last_00,__len1_00,local_6c,__comp_00)" ( (comma_expression "__first,__middle_01,__last_00,__len1_00,local_6c,__comp_00" identifier , (comma_expression "__middle_01,__last_00,__len1_00,local_6c,__comp_00" identifier , (comma_expression "__last_00,__len1_00,local_6c,__comp_00" identifier , (comma_expression "__len1_00,local_6c,__comp_00" identifier , (comma_expression "local_6c,__comp_00" identifier , identifier))))) ))) ;) (expression_statement "__comp_01._M_comp.section_sort_ = __comp._M_comp.section_sort_;" (assignment_expression "__comp_01._M_comp.section_sort_ = __comp._M_comp.section_sort_" (field_expression "__comp_01._M_comp.section_sort_" (field_expression "__comp_01._M_comp" identifier . field_identifier) . field_identifier) = (field_expression "__comp._M_comp.section_sort_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier)) ;) (expression_statement "__comp_01._M_comp.filename_sort_ = __comp._M_comp.filename_sort_;" (assignment_expression "__comp_01._M_comp.filename_sort_ = __comp._M_comp.filename_sort_" (field_expression "__comp_01._M_comp.filename_sort_" (field_expression "__comp_01._M_comp" identifier . field_identifier) . field_identifier) = (field_expression "__comp._M_comp.filename_sort_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier)) ;) (ERROR "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::" (comma_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int,___gnu_cxx" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_int" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold" (binary_expression "__merge_without_buffer<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) > identifier) > (ERROR "," ,) identifier) , identifier) : : identifier : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) : :) (expression_statement "Input_section_sorter>_>\n                (__last_00,__middle_00,__last,__len1 - __len1_00,__len2 - local_6c,__comp_01);" (binary_expression "Input_section_sorter>_>\n                (__last_00,__middle_00,__last,__len1 - __len1_00,__len2 - local_6c,__comp_01)" (binary_expression "Input_section_sorter>_" identifier > identifier) > (parenthesized_expression "(__last_00,__middle_00,__last,__len1 - __len1_00,__len2 - local_6c,__comp_01)" ( (comma_expression "__last_00,__middle_00,__last,__len1 - __len1_00,__len2 - local_6c,__comp_01" identifier , (comma_expression "__middle_00,__last,__len1 - __len1_00,__len2 - local_6c,__comp_01" identifier , (comma_expression "__last,__len1 - __len1_00,__len2 - local_6c,__comp_01" identifier , (comma_expression "__len1 - __len1_00,__len2 - local_6c,__comp_01" (binary_expression "__len1 - __len1_00" identifier - identifier) , (comma_expression "__len2 - local_6c,__comp_01" (binary_expression "__len2 - local_6c" identifier - identifier) , identifier))))) ))) ;) }))) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_00110fc0(undefined4 *param_1,undefined4 *param_2,int param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)\n\n{\n  undefined4 *__src;\n  undefined4 uVar1;\n  undefined4 uVar2;\n  char cVar3;\n  undefined4 *puVar4;\n  size_t __n;\n  int iVar5;\n  undefined4 unaff_EBP;\n  int iVar6;\n  int unaff_retaddr;\n  int in_stack_ffffff8c;\n  int local_70;\n  int local_6c;\n  undefined1 *local_64;\n  undefined1 local_60 [4];\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 *local_44;\n  size_t local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x110fc9;\n  if ((param_4 != 0) && (param_5 != 0)) {\n    if (param_5 + param_4 == 2) {\n      cVar3 = FUN_001070c0(&param_6,param_2,param_1);\n      if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_00110fc0(undefined4 *param_1,undefined4 *param_2,int param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)\n\n{\n  undefined4 *__src;\n  undefined4 uVar1;\n  undefined4 uVar2;\n  char cVar3;\n  undefined4 *puVar4;\n  size_t __n;\n  int iVar5;\n  undefined4 unaff_EBP;\n  int iVar6;\n  int unaff_retaddr;\n  int in_stack_ffffff8c;\n  int local_70;\n  int local_6c;\n  undefined1 *local_64;\n  undefined1 local_60 [4];\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 *local_44;\n  size_t local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x110fc9;\n  if ((param_4 != 0) && (param_5 != 0)) {\n    if (param_5 + param_4 == 2) {\n      cVar3 = FUN_001070c0(&param_6,param_2,param_1);\n      if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00110fc0(undefined4 *param_1,undefined4 *param_2,int param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)" identifier (parameter_list "(undefined4 *param_1,undefined4 *param_2,int param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) ))) (compound_statement "{\n  undefined4 *__src;\n  undefined4 uVar1;\n  undefined4 uVar2;\n  char cVar3;\n  undefined4 *puVar4;\n  size_t __n;\n  int iVar5;\n  undefined4 unaff_EBP;\n  int iVar6;\n  int unaff_retaddr;\n  int in_stack_ffffff8c;\n  int local_70;\n  int local_6c;\n  undefined1 *local_64;\n  undefined1 local_60 [4];\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 *local_44;\n  size_t local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x110fc9;\n  if ((param_4 != 0) && (param_5 != 0)) {\n    if (param_5 + param_4 == 2) {\n      cVar3 = FUN_001070c0(&param_6,param_2,param_1);\n      if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }\n  }\n  return;\n}" { (declaration "undefined4 *__src;" type_identifier (pointer_declarator "*__src" * identifier) ;) (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 unaff_EBP;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int unaff_retaddr;" primitive_type identifier ;) (declaration "int in_stack_ffffff8c;" primitive_type identifier ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "int local_6c;" primitive_type identifier ;) (declaration "undefined1 *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "undefined1 local_60 [4];" type_identifier (array_declarator "local_60 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "size_t local_40;" primitive_type identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x110fc9;" (assignment_expression "uStack_14 = 0x110fc9" identifier = number_literal) ;) (if_statement "if ((param_4 != 0) && (param_5 != 0)) {\n    if (param_5 + param_4 == 2) {\n      cVar3 = FUN_001070c0(&param_6,param_2,param_1);\n      if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }\n  }" if (parenthesized_expression "((param_4 != 0) && (param_5 != 0))" ( (binary_expression "(param_4 != 0) && (param_5 != 0)" (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) && (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    if (param_5 + param_4 == 2) {\n      cVar3 = FUN_001070c0(&param_6,param_2,param_1);\n      if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }\n  }" { (if_statement "if (param_5 + param_4 == 2) {\n      cVar3 = FUN_001070c0(&param_6,param_2,param_1);\n      if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }" if (parenthesized_expression "(param_5 + param_4 == 2)" ( (binary_expression "param_5 + param_4 == 2" (binary_expression "param_5 + param_4" identifier + identifier) == number_literal) )) (compound_statement "{\n      cVar3 = FUN_001070c0(&param_6,param_2,param_1);\n      if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }\n    }" { (expression_statement "cVar3 = FUN_001070c0(&param_6,param_2,param_1);" (assignment_expression "cVar3 = FUN_001070c0(&param_6,param_2,param_1)" identifier = (call_expression "FUN_001070c0(&param_6,param_2,param_1)" identifier (argument_list "(&param_6,param_2,param_1)" ( (pointer_expression "&param_6" & identifier) , identifier , identifier )))) ;) (if_statement "if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }" { (expression_statement "local_5c = *param_1;" (assignment_expression "local_5c = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "local_58 = param_1[1];" (assignment_expression "local_58 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "local_54 = param_1[2];" (assignment_expression "local_54 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "local_50 = param_1[3];" (assignment_expression "local_50 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "local_4c = param_1[4];" (assignment_expression "local_4c = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "local_48 = param_1[5];" (assignment_expression "local_48 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4 = param_1 + 8;" (assignment_expression "puVar4 = param_1 + 8" identifier = (binary_expression "param_1 + 8" identifier + number_literal)) ;) (if_statement "if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }" if (parenthesized_expression "((undefined4 *)param_1[6] == puVar4)" ( (binary_expression "(undefined4 *)param_1[6] == puVar4" (cast_expression "(undefined4 *)param_1[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }" { (expression_statement "local_3c = param_1[8];" (assignment_expression "local_3c = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "local_38 = param_1[9];" (assignment_expression "local_38 = param_1[9]" identifier = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (expression_statement "local_34 = param_1[10];" (assignment_expression "local_34 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "local_30 = param_1[0xb];" (assignment_expression "local_30 = param_1[0xb]" identifier = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) }) (else_clause "else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }" else (compound_statement "{\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }" { (expression_statement "local_3c = param_1[8];" (assignment_expression "local_3c = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "local_44 = (undefined4 *)param_1[6];" (assignment_expression "local_44 = (undefined4 *)param_1[6]" identifier = (cast_expression "(undefined4 *)param_1[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) }))) (expression_statement "local_40 = param_1[7];" (assignment_expression "local_40 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "local_2c = param_1[0xc];" (assignment_expression "local_2c = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "local_28 = param_1[0xd];" (assignment_expression "local_28 = param_1[0xd]" identifier = (subscript_expression "param_1[0xd]" identifier [ number_literal ])) ;) (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 8) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 8) = 0" (pointer_expression "*(undefined1 *)(param_1 + 8)" * (cast_expression "(undefined1 *)(param_1 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_24 = param_1[0xe];" (assignment_expression "local_24 = param_1[0xe]" identifier = (subscript_expression "param_1[0xe]" identifier [ number_literal ])) ;) (expression_statement "param_1[6] = puVar4;" (assignment_expression "param_1[6] = puVar4" (subscript_expression "param_1[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_20 = param_1[0xf];" (assignment_expression "local_20 = param_1[0xf]" identifier = (subscript_expression "param_1[0xf]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = *param_2;" (assignment_expression "*param_1 = *param_2" (pointer_expression "*param_1" * identifier) = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "param_1[1] = param_2[1];" (assignment_expression "param_1[1] = param_2[1]" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = param_2[2];" (assignment_expression "param_1[2] = param_2[2]" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[3] = param_2[3];" (assignment_expression "param_1[3] = param_2[3]" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "param_1[4] = param_2[4];" (assignment_expression "param_1[4] = param_2[4]" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (subscript_expression "param_2[4]" identifier [ number_literal ])) ;) (expression_statement "param_1[5] = param_2[5];" (assignment_expression "param_1[5] = param_2[5]" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (subscript_expression "param_2[5]" identifier [ number_literal ])) ;) (expression_statement "__src = param_2 + 8;" (assignment_expression "__src = param_2 + 8" identifier = (binary_expression "param_2 + 8" identifier + number_literal)) ;) (if_statement "if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }" if (parenthesized_expression "((undefined4 *)param_2[6] == __src)" ( (binary_expression "(undefined4 *)param_2[6] == __src" (cast_expression "(undefined4 *)param_2[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[6]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }" { (expression_statement "__n = param_2[7];" (assignment_expression "__n = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (if_statement "if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }" if (parenthesized_expression "(__n != 0)" ( (binary_expression "__n != 0" identifier != number_literal) )) (compound_statement "{\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }" { (if_statement "if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }" if (parenthesized_expression "(__n == 1)" ( (binary_expression "__n == 1" identifier == number_literal) )) (compound_statement "{\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }" { (expression_statement "*(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);" (assignment_expression "*(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8)" (pointer_expression "*(undefined1 *)(param_1 + 8)" * (cast_expression "(undefined1 *)(param_1 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = (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 "__n = param_2[7];" (assignment_expression "__n = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) }) (else_clause "else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }" else (compound_statement "{\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }" { (expression_statement "memcpy(puVar4,__src,__n);" (call_expression "memcpy(puVar4,__src,__n)" identifier (argument_list "(puVar4,__src,__n)" ( identifier , identifier , identifier ))) ;) (expression_statement "__n = param_2[7];" (assignment_expression "__n = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) }))) })) (expression_statement "param_1[7] = __n;" (assignment_expression "param_1[7] = __n" (subscript_expression "param_1[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(__n + 0x20 + (int)param_1) = 0;" (assignment_expression "*(undefined1 *)(__n + 0x20 + (int)param_1) = 0" (pointer_expression "*(undefined1 *)(__n + 0x20 + (int)param_1)" * (cast_expression "(undefined1 *)(__n + 0x20 + (int)param_1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__n + 0x20 + (int)param_1)" ( (binary_expression "__n + 0x20 + (int)param_1" (binary_expression "__n + 0x20" identifier + number_literal) + (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = number_literal) ;) (expression_statement "puVar4 = (undefined4 *)param_2[6];" (assignment_expression "puVar4 = (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          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }" else (compound_statement "{\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }" { (expression_statement "param_1[6] = (undefined4 *)param_2[6];" (assignment_expression "param_1[6] = (undefined4 *)param_2[6]" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (cast_expression "(undefined4 *)param_2[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) ;) (expression_statement "param_1[7] = param_2[7];" (assignment_expression "param_1[7] = param_2[7]" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (expression_statement "param_1[8] = param_2[8];" (assignment_expression "param_1[8] = param_2[8]" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (expression_statement "param_2[6] = __src;" (assignment_expression "param_2[6] = __src" (subscript_expression "param_2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = __src;" (assignment_expression "puVar4 = __src" identifier = 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 *)puVar4 = 0;" (assignment_expression "*(undefined1 *)puVar4 = 0" (pointer_expression "*(undefined1 *)puVar4" * (cast_expression "(undefined1 *)puVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar1 = param_2[0xc];" (assignment_expression "uVar1 = param_2[0xc]" identifier = (subscript_expression "param_2[0xc]" identifier [ number_literal ])) ;) (expression_statement "param_1[0xd] = param_2[0xd];" (assignment_expression "param_1[0xd] = param_2[0xd]" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = (subscript_expression "param_2[0xd]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = param_2[0xf];" (assignment_expression "uVar2 = param_2[0xf]" identifier = (subscript_expression "param_2[0xf]" identifier [ number_literal ])) ;) (expression_statement "param_1[0xc] = uVar1;" (assignment_expression "param_1[0xc] = uVar1" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = param_2[0xe];" (assignment_expression "uVar1 = param_2[0xe]" identifier = (subscript_expression "param_2[0xe]" identifier [ number_literal ])) ;) (expression_statement "param_1[0xf] = uVar2;" (assignment_expression "param_1[0xf] = uVar2" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xe] = uVar1;" (assignment_expression "param_1[0xe] = uVar1" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_2 = local_5c;" (assignment_expression "*param_2 = local_5c" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "param_2[1] = local_58;" (assignment_expression "param_2[1] = local_58" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[2] = local_54;" (assignment_expression "param_2[2] = local_54" (subscript_expression "param_2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[3] = local_50;" (assignment_expression "param_2[3] = local_50" (subscript_expression "param_2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[4] = local_4c;" (assignment_expression "param_2[4] = local_4c" (subscript_expression "param_2[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[5] = local_48;" (assignment_expression "param_2[5] = local_48" (subscript_expression "param_2[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = (undefined4 *)param_2[6];" (assignment_expression "puVar4 = (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 ]))) ;) (if_statement "if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }" if (parenthesized_expression "(local_44 == &local_3c)" ( (binary_expression "local_44 == &local_3c" identifier == (pointer_expression "&local_3c" & identifier)) )) (compound_statement "{\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }" { (if_statement "if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }" if (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) (compound_statement "{\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }" { (if_statement "if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }" if (parenthesized_expression "(local_40 == 1)" ( (binary_expression "local_40 == 1" identifier == number_literal) )) (compound_statement "{\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }" { (expression_statement "*(undefined1 *)puVar4 = (undefined1)local_3c;" (assignment_expression "*(undefined1 *)puVar4 = (undefined1)local_3c" (pointer_expression "*(undefined1 *)puVar4" * (cast_expression "(undefined1 *)puVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined1)local_3c" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puVar4 = (undefined4 *)param_2[6];" (assignment_expression "puVar4 = (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              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }" else (compound_statement "{\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }" { (expression_statement "memcpy(puVar4,&local_3c,local_40);" (call_expression "memcpy(puVar4,&local_3c,local_40)" identifier (argument_list "(puVar4,&local_3c,local_40)" ( identifier , (pointer_expression "&local_3c" & identifier) , identifier ))) ;) (expression_statement "puVar4 = (undefined4 *)param_2[6];" (assignment_expression "puVar4 = (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 "param_2[7] = local_40;" (assignment_expression "param_2[7] = local_40" (subscript_expression "param_2[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar4 + local_40) = 0;" (assignment_expression "*(undefined1 *)((int)puVar4 + local_40) = 0" (pointer_expression "*(undefined1 *)((int)puVar4 + local_40)" * (cast_expression "(undefined1 *)((int)puVar4 + local_40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + local_40)" ( (binary_expression "(int)puVar4 + local_40" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) }) (else_clause "else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }" else (if_statement "if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }" if (parenthesized_expression "(__src == puVar4)" ( (binary_expression "__src == puVar4" identifier == identifier) )) (compound_statement "{\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }" { (expression_statement "param_2[6] = local_44;" (assignment_expression "param_2[6] = local_44" (subscript_expression "param_2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[7] = local_40;" (assignment_expression "param_2[7] = local_40" (subscript_expression "param_2[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[8] = local_3c;" (assignment_expression "param_2[8] = local_3c" (subscript_expression "param_2[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) }) (else_clause "else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }" else (compound_statement "{\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }" { (expression_statement "param_2[6] = local_44;" (assignment_expression "param_2[6] = local_44" (subscript_expression "param_2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = param_2[8];" (assignment_expression "uVar1 = param_2[8]" identifier = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (expression_statement "param_2[7] = local_40;" (assignment_expression "param_2[7] = local_40" (subscript_expression "param_2[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[8] = local_3c;" (assignment_expression "param_2[8] = local_3c" (subscript_expression "param_2[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }" if (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }" { (expression_statement "local_44 = puVar4;" (assignment_expression "local_44 = puVar4" identifier = identifier) ;) (expression_statement "local_3c = uVar1;" (assignment_expression "local_3c = uVar1" identifier = identifier) ;) })) }))))) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)local_44 = 0;" (assignment_expression "*(undefined1 *)local_44 = 0" (pointer_expression "*(undefined1 *)local_44" * (cast_expression "(undefined1 *)local_44" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "param_2[0xc] = local_2c;" (assignment_expression "param_2[0xc] = local_2c" (subscript_expression "param_2[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[0xd] = local_28;" (assignment_expression "param_2[0xd] = local_28" (subscript_expression "param_2[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[0xe] = local_24;" (assignment_expression "param_2[0xe] = local_24" (subscript_expression "param_2[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[0xf] = local_20;" (assignment_expression "param_2[0xf] = local_20" (subscript_expression "param_2[0xf]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }" if (parenthesized_expression "(local_44 != &local_3c)" ( (binary_expression "local_44 != &local_3c" identifier != (pointer_expression "&local_3c" & identifier)) )) (compound_statement "{\n          FUN_001807a0(local_44);\n        }" { (expression_statement "FUN_001807a0(local_44);" (call_expression "FUN_001807a0(local_44)" identifier (argument_list "(local_44)" ( identifier ))) ;) })) })) }) (else_clause "else {\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }" else (compound_statement "{\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }" { (if_statement "if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }" if (parenthesized_expression "(param_5 < param_4)" ( (binary_expression "param_5 < param_4" identifier < identifier) )) (compound_statement "{\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }" { (expression_statement "iVar6 = param_4 / 2;" (assignment_expression "iVar6 = param_4 / 2" identifier = (binary_expression "param_4 / 2" identifier / number_literal)) ;) (expression_statement "puVar4 = param_1 + iVar6 * 0x10;" (assignment_expression "puVar4 = param_1 + iVar6 * 0x10" identifier = (binary_expression "param_1 + iVar6 * 0x10" identifier + (binary_expression "iVar6 * 0x10" identifier * number_literal))) ;) (expression_statement "FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);" (call_expression "FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7)" identifier (argument_list "(local_60,param_2,param_3,puVar4,param_6,param_7)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar5 = (int)local_64 - (int)param_1;" (assignment_expression "iVar5 = (int)local_64 - (int)param_1" identifier = (binary_expression "(int)local_64 - (int)param_1" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_70 = iVar5 >> 6;" (assignment_expression "local_70 = iVar5 >> 6" identifier = (binary_expression "iVar5 >> 6" identifier >> number_literal)) ;) }) (else_clause "else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }" else (compound_statement "{\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }" { (expression_statement "local_64 = local_60;" (assignment_expression "local_64 = local_60" identifier = identifier) ;) (expression_statement "local_6c = param_5 / 2;" (assignment_expression "local_6c = param_5 / 2" identifier = (binary_expression "param_5 / 2" identifier / number_literal)) ;) (expression_statement "iVar5 = local_6c * 0x40;" (assignment_expression "iVar5 = local_6c * 0x40" identifier = (binary_expression "local_6c * 0x40" identifier * number_literal)) ;) (expression_statement "puVar4 = param_2 + local_6c * 0x10;" (assignment_expression "puVar4 = param_2 + local_6c * 0x10" identifier = (binary_expression "param_2 + local_6c * 0x10" identifier + (binary_expression "local_6c * 0x10" identifier * number_literal))) ;) (expression_statement "FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);" (call_expression "FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7)" identifier (argument_list "(local_64,param_1,param_2,puVar4,param_6,param_7)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar6 = (int)puVar4 - unaff_retaddr >> 6;" (assignment_expression "iVar6 = (int)puVar4 - unaff_retaddr >> 6" identifier = (binary_expression "(int)puVar4 - unaff_retaddr >> 6" (binary_expression "(int)puVar4 - unaff_retaddr" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) >> number_literal)) ;) }))) (expression_statement "FUN_00110670(local_6c,puVar4,param_1,local_64,0);" (call_expression "FUN_00110670(local_6c,puVar4,param_1,local_64,0)" identifier (argument_list "(local_6c,puVar4,param_1,local_64,0)" ( identifier , identifier , identifier , identifier , number_literal ))) ;) (expression_statement "FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);" (call_expression "FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5)" identifier (argument_list "(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5)" ( identifier , identifier , (binary_expression "iVar5 + (int)puVar4" identifier + (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);" (call_expression "FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5)" identifier (argument_list "(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5)" ( (binary_expression "iVar5 + (int)puVar4" identifier + (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , identifier , (binary_expression "param_4 - iVar6" identifier - identifier) , (binary_expression "param_3 - in_stack_ffffff8c" identifier - identifier) , identifier , identifier ))) ;) }))) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) == LIT) )) (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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (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 = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) >> LIT)) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) , IDENT , IDENT , (binary_expression IDENT - IDENT) , (binary_expression IDENT - IDENT) , IDENT , IDENT ))) ;) }))) })) (return_statement return ;) })))
(function_definition "void FUN_00110fc0(undefined4 *param_1,undefined4 *param_2,int param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)\n\n{\n  undefined4 *__src;\n  undefined4 uVar1;\n  undefined4 uVar2;\n  char cVar3;\n  undefined4 *puVar4;\n  size_t __n;\n  int iVar5;\n  undefined4 unaff_EBP;\n  int iVar6;\n  int unaff_retaddr;\n  int in_stack_ffffff8c;\n  int local_70;\n  int local_6c;\n  undefined1 *local_64;\n  undefined1 local_60 [4];\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 *local_44;\n  size_t local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x110fc9;\n  if ((param_4 != 0) && (param_5 != 0)) {\n    if (param_5 + param_4 == 2) {\n      cVar3 = FUN_001070c0(&param_6,param_2,param_1);\n      if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00110fc0(undefined4 *param_1,undefined4 *param_2,int param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)" (identifier "FUN_00110fc0") (parameter_list "(undefined4 *param_1,undefined4 *param_2,int param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "undefined4 param_7" (type_identifier "undefined4") (identifier "param_7")) () ")"))) (compound_statement "{\n  undefined4 *__src;\n  undefined4 uVar1;\n  undefined4 uVar2;\n  char cVar3;\n  undefined4 *puVar4;\n  size_t __n;\n  int iVar5;\n  undefined4 unaff_EBP;\n  int iVar6;\n  int unaff_retaddr;\n  int in_stack_ffffff8c;\n  int local_70;\n  int local_6c;\n  undefined1 *local_64;\n  undefined1 local_60 [4];\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 *local_44;\n  size_t local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x110fc9;\n  if ((param_4 != 0) && (param_5 != 0)) {\n    if (param_5 + param_4 == 2) {\n      cVar3 = FUN_001070c0(&param_6,param_2,param_1);\n      if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }\n  }\n  return;\n}" ({ "{") (declaration "undefined4 *__src;" (type_identifier "undefined4") (pointer_declarator "*__src" (* "*") (identifier "__src")) (; ";")) (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "size_t __n;" (primitive_type "size_t") (identifier "__n") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 unaff_EBP;" (type_identifier "undefined4") (identifier "unaff_EBP") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int unaff_retaddr;" (primitive_type "int") (identifier "unaff_retaddr") (; ";")) (declaration "int in_stack_ffffff8c;" (primitive_type "int") (identifier "in_stack_ffffff8c") (; ";")) (declaration "int local_70;" (primitive_type "int") (identifier "local_70") (; ";")) (declaration "int local_6c;" (primitive_type "int") (identifier "local_6c") (; ";")) (declaration "undefined1 *local_64;" (type_identifier "undefined1") (pointer_declarator "*local_64" (* "*") (identifier "local_64")) (; ";")) (declaration "undefined1 local_60 [4];" (type_identifier "undefined1") (array_declarator "local_60 [4]" (identifier "local_60") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined4 local_5c;" (type_identifier "undefined4") (identifier "local_5c") (; ";")) (declaration "undefined4 local_58;" (type_identifier "undefined4") (identifier "local_58") (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "undefined4 *local_44;" (type_identifier "undefined4") (pointer_declarator "*local_44" (* "*") (identifier "local_44")) (; ";")) (declaration "size_t local_40;" (primitive_type "size_t") (identifier "local_40") (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x110fc9;" (assignment_expression "uStack_14 = 0x110fc9" (identifier "uStack_14") (= "=") (number_literal "0x110fc9")) (; ";")) (if_statement "if ((param_4 != 0) && (param_5 != 0)) {\n    if (param_5 + param_4 == 2) {\n      cVar3 = FUN_001070c0(&param_6,param_2,param_1);\n      if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }\n  }" (if "if") (parenthesized_expression "((param_4 != 0) && (param_5 != 0))" (( "(") (binary_expression "(param_4 != 0) && (param_5 != 0)" (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_5 != 0)" (( "(") (binary_expression "param_5 != 0" (identifier "param_5") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    if (param_5 + param_4 == 2) {\n      cVar3 = FUN_001070c0(&param_6,param_2,param_1);\n      if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }\n  }" ({ "{") (if_statement "if (param_5 + param_4 == 2) {\n      cVar3 = FUN_001070c0(&param_6,param_2,param_1);\n      if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }" (if "if") (parenthesized_expression "(param_5 + param_4 == 2)" (( "(") (binary_expression "param_5 + param_4 == 2" (binary_expression "param_5 + param_4" (identifier "param_5") (+ "+") (identifier "param_4")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      cVar3 = FUN_001070c0(&param_6,param_2,param_1);\n      if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }\n    }" ({ "{") (expression_statement "cVar3 = FUN_001070c0(&param_6,param_2,param_1);" (assignment_expression "cVar3 = FUN_001070c0(&param_6,param_2,param_1)" (identifier "cVar3") (= "=") (call_expression "FUN_001070c0(&param_6,param_2,param_1)" (identifier "FUN_001070c0") (argument_list "(&param_6,param_2,param_1)" (( "(") (pointer_expression "&param_6" (& "&") (identifier "param_6")) (, ",") (identifier "param_2") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (cVar3 != '\0') {\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        local_5c = *param_1;\n        local_58 = param_1[1];\n        local_54 = param_1[2];\n        local_50 = param_1[3];\n        local_4c = param_1[4];\n        local_48 = param_1[5];\n        puVar4 = param_1 + 8;\n        if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }\n        local_40 = param_1[7];\n        local_2c = param_1[0xc];\n        local_28 = param_1[0xd];\n        param_1[7] = 0;\n        *(undefined1 *)(param_1 + 8) = 0;\n        local_24 = param_1[0xe];\n        param_1[6] = puVar4;\n        local_20 = param_1[0xf];\n        *param_1 = *param_2;\n        param_1[1] = param_2[1];\n        param_1[2] = param_2[2];\n        param_1[3] = param_2[3];\n        param_1[4] = param_2[4];\n        param_1[5] = param_2[5];\n        __src = param_2 + 8;\n        if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }\n        param_2[7] = 0;\n        *(undefined1 *)puVar4 = 0;\n        uVar1 = param_2[0xc];\n        param_1[0xd] = param_2[0xd];\n        uVar2 = param_2[0xf];\n        param_1[0xc] = uVar1;\n        uVar1 = param_2[0xe];\n        param_1[0xf] = uVar2;\n        param_1[0xe] = uVar1;\n        *param_2 = local_5c;\n        param_2[1] = local_58;\n        param_2[2] = local_54;\n        param_2[3] = local_50;\n        param_2[4] = local_4c;\n        param_2[5] = local_48;\n        puVar4 = (undefined4 *)param_2[6];\n        if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }\n        local_40 = 0;\n        *(undefined1 *)local_44 = 0;\n        param_2[0xc] = local_2c;\n        param_2[0xd] = local_28;\n        param_2[0xe] = local_24;\n        param_2[0xf] = local_20;\n        if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }\n      }" ({ "{") (expression_statement "local_5c = *param_1;" (assignment_expression "local_5c = *param_1" (identifier "local_5c") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "local_58 = param_1[1];" (assignment_expression "local_58 = param_1[1]" (identifier "local_58") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_54 = param_1[2];" (assignment_expression "local_54 = param_1[2]" (identifier "local_54") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_50 = param_1[3];" (assignment_expression "local_50 = param_1[3]" (identifier "local_50") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_4c = param_1[4];" (assignment_expression "local_4c = param_1[4]" (identifier "local_4c") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "local_48 = param_1[5];" (assignment_expression "local_48 = param_1[5]" (identifier "local_48") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar4 = param_1 + 8;" (assignment_expression "puVar4 = param_1 + 8" (identifier "puVar4") (= "=") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8"))) (; ";")) (if_statement "if ((undefined4 *)param_1[6] == puVar4) {\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }\n        else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }" (if "if") (parenthesized_expression "((undefined4 *)param_1[6] == puVar4)" (( "(") (binary_expression "(undefined4 *)param_1[6] == puVar4" (cast_expression "(undefined4 *)param_1[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (== "==") (identifier "puVar4")) () ")")) (compound_statement "{\n          local_3c = param_1[8];\n          local_38 = param_1[9];\n          local_34 = param_1[10];\n          local_30 = param_1[0xb];\n          local_44 = &local_3c;\n        }" ({ "{") (expression_statement "local_3c = param_1[8];" (assignment_expression "local_3c = param_1[8]" (identifier "local_3c") (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "local_38 = param_1[9];" (assignment_expression "local_38 = param_1[9]" (identifier "local_38") (= "=") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "local_34 = param_1[10];" (assignment_expression "local_34 = param_1[10]" (identifier "local_34") (= "=") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "local_30 = param_1[0xb];" (assignment_expression "local_30 = param_1[0xb]" (identifier "local_30") (= "=") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" (identifier "local_44") (= "=") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) (; ";")) (} "}")) (else_clause "else {\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }" (else "else") (compound_statement "{\n          local_3c = param_1[8];\n          local_44 = (undefined4 *)param_1[6];\n        }" ({ "{") (expression_statement "local_3c = param_1[8];" (assignment_expression "local_3c = param_1[8]" (identifier "local_3c") (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "local_44 = (undefined4 *)param_1[6];" (assignment_expression "local_44 = (undefined4 *)param_1[6]" (identifier "local_44") (= "=") (cast_expression "(undefined4 *)param_1[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")))) (; ";")) (} "}")))) (expression_statement "local_40 = param_1[7];" (assignment_expression "local_40 = param_1[7]" (identifier "local_40") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "local_2c = param_1[0xc];" (assignment_expression "local_2c = param_1[0xc]" (identifier "local_2c") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "local_28 = param_1[0xd];" (assignment_expression "local_28 = param_1[0xd]" (identifier "local_28") (= "=") (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 8) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 8) = 0" (pointer_expression "*(undefined1 *)(param_1 + 8)" (* "*") (cast_expression "(undefined1 *)(param_1 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24 = param_1[0xe];" (assignment_expression "local_24 = param_1[0xe]" (identifier "local_24") (= "=") (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "param_1[6] = puVar4;" (assignment_expression "param_1[6] = puVar4" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "local_20 = param_1[0xf];" (assignment_expression "local_20 = param_1[0xf]" (identifier "local_20") (= "=") (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "*param_1 = *param_2;" (assignment_expression "*param_1 = *param_2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "param_1[1] = param_2[1];" (assignment_expression "param_1[1] = param_2[1]" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "param_1[2] = param_2[2];" (assignment_expression "param_1[2] = param_2[2]" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "param_1[3] = param_2[3];" (assignment_expression "param_1[3] = param_2[3]" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "param_1[4] = param_2[4];" (assignment_expression "param_1[4] = param_2[4]" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "param_1[5] = param_2[5];" (assignment_expression "param_1[5] = param_2[5]" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "__src = param_2 + 8;" (assignment_expression "__src = param_2 + 8" (identifier "__src") (= "=") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8"))) (; ";")) (if_statement "if ((undefined4 *)param_2[6] == __src) {\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }\n        else {\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }" (if "if") (parenthesized_expression "((undefined4 *)param_2[6] == __src)" (( "(") (binary_expression "(undefined4 *)param_2[6] == __src" (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") (] "]"))) (== "==") (identifier "__src")) () ")")) (compound_statement "{\n          __n = param_2[7];\n          if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }\n          param_1[7] = __n;\n          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;\n          puVar4 = (undefined4 *)param_2[6];\n        }" ({ "{") (expression_statement "__n = param_2[7];" (assignment_expression "__n = param_2[7]" (identifier "__n") (= "=") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (if_statement "if (__n != 0) {\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }" (if "if") (parenthesized_expression "(__n != 0)" (( "(") (binary_expression "__n != 0" (identifier "__n") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }\n          }" ({ "{") (if_statement "if (__n == 1) {\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }\n            else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }" (if "if") (parenthesized_expression "(__n == 1)" (( "(") (binary_expression "__n == 1" (identifier "__n") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);\n              __n = param_2[7];\n            }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);" (assignment_expression "*(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8)" (pointer_expression "*(undefined1 *)(param_1 + 8)" (* "*") (cast_expression "(undefined1 *)(param_1 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (= "=") (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 "__n = param_2[7];" (assignment_expression "__n = param_2[7]" (identifier "__n") (= "=") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }" (else "else") (compound_statement "{\n              memcpy(puVar4,__src,__n);\n              __n = param_2[7];\n            }" ({ "{") (expression_statement "memcpy(puVar4,__src,__n);" (call_expression "memcpy(puVar4,__src,__n)" (identifier "memcpy") (argument_list "(puVar4,__src,__n)" (( "(") (identifier "puVar4") (, ",") (identifier "__src") (, ",") (identifier "__n") () ")"))) (; ";")) (expression_statement "__n = param_2[7];" (assignment_expression "__n = param_2[7]" (identifier "__n") (= "=") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "param_1[7] = __n;" (assignment_expression "param_1[7] = __n" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "__n")) (; ";")) (expression_statement "*(undefined1 *)(__n + 0x20 + (int)param_1) = 0;" (assignment_expression "*(undefined1 *)(__n + 0x20 + (int)param_1) = 0" (pointer_expression "*(undefined1 *)(__n + 0x20 + (int)param_1)" (* "*") (cast_expression "(undefined1 *)(__n + 0x20 + (int)param_1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(__n + 0x20 + (int)param_1)" (( "(") (binary_expression "__n + 0x20 + (int)param_1" (binary_expression "__n + 0x20" (identifier "__n") (+ "+") (number_literal "0x20")) (+ "+") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4 = (undefined4 *)param_2[6];" (assignment_expression "puVar4 = (undefined4 *)param_2[6]" (identifier "puVar4") (= "=") (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          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }" (else "else") (compound_statement "{\n          param_1[6] = (undefined4 *)param_2[6];\n          param_1[7] = param_2[7];\n          param_1[8] = param_2[8];\n          param_2[6] = __src;\n          puVar4 = __src;\n        }" ({ "{") (expression_statement "param_1[6] = (undefined4 *)param_2[6];" (assignment_expression "param_1[6] = (undefined4 *)param_2[6]" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (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 "param_1[7] = param_2[7];" (assignment_expression "param_1[7] = param_2[7]" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "param_1[8] = param_2[8];" (assignment_expression "param_1[8] = param_2[8]" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "param_2[6] = __src;" (assignment_expression "param_2[6] = __src" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "__src")) (; ";")) (expression_statement "puVar4 = __src;" (assignment_expression "puVar4 = __src" (identifier "puVar4") (= "=") (identifier "__src")) (; ";")) (} "}")))) (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 *)puVar4 = 0;" (assignment_expression "*(undefined1 *)puVar4 = 0" (pointer_expression "*(undefined1 *)puVar4" (* "*") (cast_expression "(undefined1 *)puVar4" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = param_2[0xc];" (assignment_expression "uVar1 = param_2[0xc]" (identifier "uVar1") (= "=") (subscript_expression "param_2[0xc]" (identifier "param_2") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "param_1[0xd] = param_2[0xd];" (assignment_expression "param_1[0xd] = param_2[0xd]" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (= "=") (subscript_expression "param_2[0xd]" (identifier "param_2") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (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 "param_1[0xc] = uVar1;" (assignment_expression "param_1[0xc] = uVar1" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "uVar1 = param_2[0xe];" (assignment_expression "uVar1 = param_2[0xe]" (identifier "uVar1") (= "=") (subscript_expression "param_2[0xe]" (identifier "param_2") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "param_1[0xf] = uVar2;" (assignment_expression "param_1[0xf] = uVar2" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "param_1[0xe] = uVar1;" (assignment_expression "param_1[0xe] = uVar1" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "*param_2 = local_5c;" (assignment_expression "*param_2 = local_5c" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "param_2[1] = local_58;" (assignment_expression "param_2[1] = local_58" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "param_2[2] = local_54;" (assignment_expression "param_2[2] = local_54" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_54")) (; ";")) (expression_statement "param_2[3] = local_50;" (assignment_expression "param_2[3] = local_50" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_50")) (; ";")) (expression_statement "param_2[4] = local_4c;" (assignment_expression "param_2[4] = local_4c" (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "param_2[5] = local_48;" (assignment_expression "param_2[5] = local_48" (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "puVar4 = (undefined4 *)param_2[6];" (assignment_expression "puVar4 = (undefined4 *)param_2[6]" (identifier "puVar4") (= "=") (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") (] "]")))) (; ";")) (if_statement "if (local_44 == &local_3c) {\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }\n        else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }" (if "if") (parenthesized_expression "(local_44 == &local_3c)" (( "(") (binary_expression "local_44 == &local_3c" (identifier "local_44") (== "==") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) () ")")) (compound_statement "{\n          if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }\n          param_2[7] = local_40;\n          *(undefined1 *)((int)puVar4 + local_40) = 0;\n        }" ({ "{") (if_statement "if (local_40 != 0) {\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }" (if "if") (parenthesized_expression "(local_40 != 0)" (( "(") (binary_expression "local_40 != 0" (identifier "local_40") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }\n          }" ({ "{") (if_statement "if (local_40 == 1) {\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }\n            else {\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }" (if "if") (parenthesized_expression "(local_40 == 1)" (( "(") (binary_expression "local_40 == 1" (identifier "local_40") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              *(undefined1 *)puVar4 = (undefined1)local_3c;\n              puVar4 = (undefined4 *)param_2[6];\n            }" ({ "{") (expression_statement "*(undefined1 *)puVar4 = (undefined1)local_3c;" (assignment_expression "*(undefined1 *)puVar4 = (undefined1)local_3c" (pointer_expression "*(undefined1 *)puVar4" (* "*") (cast_expression "(undefined1 *)puVar4" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (= "=") (cast_expression "(undefined1)local_3c" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "local_3c"))) (; ";")) (expression_statement "puVar4 = (undefined4 *)param_2[6];" (assignment_expression "puVar4 = (undefined4 *)param_2[6]" (identifier "puVar4") (= "=") (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              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }" (else "else") (compound_statement "{\n              memcpy(puVar4,&local_3c,local_40);\n              puVar4 = (undefined4 *)param_2[6];\n            }" ({ "{") (expression_statement "memcpy(puVar4,&local_3c,local_40);" (call_expression "memcpy(puVar4,&local_3c,local_40)" (identifier "memcpy") (argument_list "(puVar4,&local_3c,local_40)" (( "(") (identifier "puVar4") (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) (, ",") (identifier "local_40") () ")"))) (; ";")) (expression_statement "puVar4 = (undefined4 *)param_2[6];" (assignment_expression "puVar4 = (undefined4 *)param_2[6]" (identifier "puVar4") (= "=") (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 "param_2[7] = local_40;" (assignment_expression "param_2[7] = local_40" (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar4 + local_40) = 0;" (assignment_expression "*(undefined1 *)((int)puVar4 + local_40) = 0" (pointer_expression "*(undefined1 *)((int)puVar4 + local_40)" (* "*") (cast_expression "(undefined1 *)((int)puVar4 + local_40)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar4 + local_40)" (( "(") (binary_expression "(int)puVar4 + local_40" (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")) (+ "+") (identifier "local_40")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }" (else "else") (if_statement "if (__src == puVar4) {\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }\n        else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }" (if "if") (parenthesized_expression "(__src == puVar4)" (( "(") (binary_expression "__src == puVar4" (identifier "__src") (== "==") (identifier "puVar4")) () ")")) (compound_statement "{\n          param_2[6] = local_44;\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n        }" ({ "{") (expression_statement "param_2[6] = local_44;" (assignment_expression "param_2[6] = local_44" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_44")) (; ";")) (expression_statement "param_2[7] = local_40;" (assignment_expression "param_2[7] = local_40" (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "param_2[8] = local_3c;" (assignment_expression "param_2[8] = local_3c" (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" (identifier "local_44") (= "=") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) (; ";")) (} "}")) (else_clause "else {\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }" (else "else") (compound_statement "{\n          param_2[6] = local_44;\n          uVar1 = param_2[8];\n          param_2[7] = local_40;\n          param_2[8] = local_3c;\n          local_44 = &local_3c;\n          if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }\n        }" ({ "{") (expression_statement "param_2[6] = local_44;" (assignment_expression "param_2[6] = local_44" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_44")) (; ";")) (expression_statement "uVar1 = param_2[8];" (assignment_expression "uVar1 = param_2[8]" (identifier "uVar1") (= "=") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "param_2[7] = local_40;" (assignment_expression "param_2[7] = local_40" (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "param_2[8] = local_3c;" (assignment_expression "param_2[8] = local_3c" (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" (identifier "local_44") (= "=") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) (; ";")) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }" (if "if") (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar4 != (undefined4 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            local_44 = puVar4;\n            local_3c = uVar1;\n          }" ({ "{") (expression_statement "local_44 = puVar4;" (assignment_expression "local_44 = puVar4" (identifier "local_44") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "local_3c = uVar1;" (assignment_expression "local_3c = uVar1" (identifier "local_3c") (= "=") (identifier "uVar1")) (; ";")) (} "}"))) (} "}")))))) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)local_44 = 0;" (assignment_expression "*(undefined1 *)local_44 = 0" (pointer_expression "*(undefined1 *)local_44" (* "*") (cast_expression "(undefined1 *)local_44" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_2[0xc] = local_2c;" (assignment_expression "param_2[0xc] = local_2c" (subscript_expression "param_2[0xc]" (identifier "param_2") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "local_2c")) (; ";")) (expression_statement "param_2[0xd] = local_28;" (assignment_expression "param_2[0xd] = local_28" (subscript_expression "param_2[0xd]" (identifier "param_2") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "local_28")) (; ";")) (expression_statement "param_2[0xe] = local_24;" (assignment_expression "param_2[0xe] = local_24" (subscript_expression "param_2[0xe]" (identifier "param_2") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "local_24")) (; ";")) (expression_statement "param_2[0xf] = local_20;" (assignment_expression "param_2[0xf] = local_20" (subscript_expression "param_2[0xf]" (identifier "param_2") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "local_20")) (; ";")) (if_statement "if (local_44 != &local_3c) {\n          FUN_001807a0(local_44);\n        }" (if "if") (parenthesized_expression "(local_44 != &local_3c)" (( "(") (binary_expression "local_44 != &local_3c" (identifier "local_44") (!= "!=") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) () ")")) (compound_statement "{\n          FUN_001807a0(local_44);\n        }" ({ "{") (expression_statement "FUN_001807a0(local_44);" (call_expression "FUN_001807a0(local_44)" (identifier "FUN_001807a0") (argument_list "(local_44)" (( "(") (identifier "local_44") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }" (else "else") (compound_statement "{\n      if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }\n      FUN_00110670(local_6c,puVar4,param_1,local_64,0);\n      FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);\n      FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);\n    }" ({ "{") (if_statement "if (param_5 < param_4) {\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }\n      else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }" (if "if") (parenthesized_expression "(param_5 < param_4)" (( "(") (binary_expression "param_5 < param_4" (identifier "param_5") (< "<") (identifier "param_4")) () ")")) (compound_statement "{\n        iVar6 = param_4 / 2;\n        puVar4 = param_1 + iVar6 * 0x10;\n        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);\n        iVar5 = (int)local_64 - (int)param_1;\n        local_70 = iVar5 >> 6;\n      }" ({ "{") (expression_statement "iVar6 = param_4 / 2;" (assignment_expression "iVar6 = param_4 / 2" (identifier "iVar6") (= "=") (binary_expression "param_4 / 2" (identifier "param_4") (/ "/") (number_literal "2"))) (; ";")) (expression_statement "puVar4 = param_1 + iVar6 * 0x10;" (assignment_expression "puVar4 = param_1 + iVar6 * 0x10" (identifier "puVar4") (= "=") (binary_expression "param_1 + iVar6 * 0x10" (identifier "param_1") (+ "+") (binary_expression "iVar6 * 0x10" (identifier "iVar6") (* "*") (number_literal "0x10")))) (; ";")) (expression_statement "FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);" (call_expression "FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7)" (identifier "FUN_001104b0") (argument_list "(local_60,param_2,param_3,puVar4,param_6,param_7)" (( "(") (identifier "local_60") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "puVar4") (, ",") (identifier "param_6") (, ",") (identifier "param_7") () ")"))) (; ";")) (expression_statement "iVar5 = (int)local_64 - (int)param_1;" (assignment_expression "iVar5 = (int)local_64 - (int)param_1" (identifier "iVar5") (= "=") (binary_expression "(int)local_64 - (int)param_1" (cast_expression "(int)local_64" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_64")) (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")))) (; ";")) (expression_statement "local_70 = iVar5 >> 6;" (assignment_expression "local_70 = iVar5 >> 6" (identifier "local_70") (= "=") (binary_expression "iVar5 >> 6" (identifier "iVar5") (>> ">>") (number_literal "6"))) (; ";")) (} "}")) (else_clause "else {\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }" (else "else") (compound_statement "{\n        local_64 = local_60;\n        local_6c = param_5 / 2;\n        iVar5 = local_6c * 0x40;\n        puVar4 = param_2 + local_6c * 0x10;\n        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);\n        iVar6 = (int)puVar4 - unaff_retaddr >> 6;\n      }" ({ "{") (expression_statement "local_64 = local_60;" (assignment_expression "local_64 = local_60" (identifier "local_64") (= "=") (identifier "local_60")) (; ";")) (expression_statement "local_6c = param_5 / 2;" (assignment_expression "local_6c = param_5 / 2" (identifier "local_6c") (= "=") (binary_expression "param_5 / 2" (identifier "param_5") (/ "/") (number_literal "2"))) (; ";")) (expression_statement "iVar5 = local_6c * 0x40;" (assignment_expression "iVar5 = local_6c * 0x40" (identifier "iVar5") (= "=") (binary_expression "local_6c * 0x40" (identifier "local_6c") (* "*") (number_literal "0x40"))) (; ";")) (expression_statement "puVar4 = param_2 + local_6c * 0x10;" (assignment_expression "puVar4 = param_2 + local_6c * 0x10" (identifier "puVar4") (= "=") (binary_expression "param_2 + local_6c * 0x10" (identifier "param_2") (+ "+") (binary_expression "local_6c * 0x10" (identifier "local_6c") (* "*") (number_literal "0x10")))) (; ";")) (expression_statement "FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);" (call_expression "FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7)" (identifier "FUN_00110520") (argument_list "(local_64,param_1,param_2,puVar4,param_6,param_7)" (( "(") (identifier "local_64") (, ",") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "puVar4") (, ",") (identifier "param_6") (, ",") (identifier "param_7") () ")"))) (; ";")) (expression_statement "iVar6 = (int)puVar4 - unaff_retaddr >> 6;" (assignment_expression "iVar6 = (int)puVar4 - unaff_retaddr >> 6" (identifier "iVar6") (= "=") (binary_expression "(int)puVar4 - unaff_retaddr >> 6" (binary_expression "(int)puVar4 - unaff_retaddr" (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")) (- "-") (identifier "unaff_retaddr")) (>> ">>") (number_literal "6"))) (; ";")) (} "}")))) (expression_statement "FUN_00110670(local_6c,puVar4,param_1,local_64,0);" (call_expression "FUN_00110670(local_6c,puVar4,param_1,local_64,0)" (identifier "FUN_00110670") (argument_list "(local_6c,puVar4,param_1,local_64,0)" (( "(") (identifier "local_6c") (, ",") (identifier "puVar4") (, ",") (identifier "param_1") (, ",") (identifier "local_64") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);" (call_expression "FUN_00110fc0(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5)" (identifier "FUN_00110fc0") (argument_list "(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5)" (( "(") (identifier "unaff_EBP") (, ",") (identifier "puVar4") (, ",") (binary_expression "iVar5 + (int)puVar4" (identifier "iVar5") (+ "+") (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4"))) (, ",") (identifier "iVar6") (, ",") (identifier "in_stack_ffffff8c") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5);" (call_expression "FUN_00110fc0(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5)" (identifier "FUN_00110fc0") (argument_list "(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,\n                   param_4,param_5)" (( "(") (binary_expression "iVar5 + (int)puVar4" (identifier "iVar5") (+ "+") (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4"))) (, ",") (identifier "local_70") (, ",") (identifier "param_1") (, ",") (binary_expression "param_4 - iVar6" (identifier "param_4") (- "-") (identifier "iVar6")) (, ",") (binary_expression "param_3 - in_stack_ffffff8c" (identifier "param_3") (- "-") (identifier "in_stack_ffffff8c")) (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (} "}")))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* DWARF original name:
   __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,
   std::vector<gold::Input_section_info> >, int,
   __gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter> > */

void std::
     __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::var_6*,_std::vector<gold::var_6>var_3>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::var_20>var_3>
               (__normal_iterator<gold::var_6*,_std::vector<gold::var_6,_std::var_1<gold::var_6>var_3>var_3>
                __first,__normal_iterator<gold::var_6*,_std::vector<gold::var_6,_std::var_1<gold::var_6>var_3>var_3>
                        __middle,
               __normal_iterator<gold::var_6*,_std::vector<gold::var_6,_std::var_1<gold::var_6>var_3>var_3>
               __last,int var_11,int var_12,_Iter_comp_iter<gold::var_20> __comp)

{
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::var_1<char>var_3>var_4
  *var_15;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_5;
  type_1 uVar1;
  type_2 sVar2;
  _Iter_comp_iter<gold::var_20> __comp_00;
  _Iter_comp_iter<gold::var_20> __comp_01;
  uint64_t uVar3;
  bool bVar4;
  __normal_iterator<gold::var_6*,_std::vector<gold::var_6,_std::var_1<gold::var_6>var_3>var_3>
  var_7;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_8;
  type_3 var_14;
  size_t var_16;
  int var_21;
  __normal_iterator<gold::var_6*,_std::vector<gold::var_6,_std::var_1<gold::var_6>var_3>var_3>
  var_9;
  __normal_iterator<gold::var_6*,_std::vector<gold::var_6,_std::var_1<gold::var_6>var_3>var_3>
  var_10;
  int var_19;
  int var_22;
  var_6 *local_60;
  var_6 __tmp;
  
  if ((var_11 != 0) && (var_12 != 0)) {
    if (var_12 + var_11 == 2) {
      bVar4 = gold::Input_section_sorter::var_13()
                        (&__comp._M_comp,__middle._M_current,__first._M_current);
      if (bVar4) {
        var_5 = &__tmp.section_name_.field_2;
        __tmp.input_section_.shndx_ = ((__first._M_current)->input_section_).shndx_;
        __tmp.input_section_.p2align_ = ((__first._M_current)->input_section_).p2align_;
        __tmp.input_section_.u1_.data_size._0_4_ =
             *(type_1 *)&((__first._M_current)->input_section_).u1_;
        __tmp.input_section_.u1_.data_size._4_4_ =
             *(type_1 *)((int)&((__first._M_current)->input_section_).u1_ + 4);
        __tmp.input_section_.u2_ = ((__first._M_current)->input_section_).u2_;
        __tmp.input_section_.section_order_index_ =
             ((__first._M_current)->input_section_).section_order_index_;
        __tmp.section_name_._M_dataplus._M_p =
             ((__first._M_current)->section_name_)._M_dataplus._M_p;
        var_8 = &((__first._M_current)->section_name_).field_2;
        if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
             *)__tmp.section_name_._M_dataplus._M_p == var_8) {
          __tmp.section_name_.field_2._M_allocated_capacity =
               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;
          __tmp.section_name_.field_2._4_4_ =
               *(type_1 *)((int)&((__first._M_current)->section_name_).field_2 + 4);
          __tmp.section_name_.field_2._8_4_ =
               *(type_1 *)((int)&((__first._M_current)->section_name_).field_2 + 8);
          __tmp.section_name_.field_2._12_4_ =
               *(type_1 *)((int)&((__first._M_current)->section_name_).field_2 + 0xc);
          __tmp.section_name_._M_dataplus._M_p = (type_3)var_5;
        }
        else {
          __tmp.section_name_.field_2._M_allocated_capacity =
               ((__first._M_current)->section_name_).field_2._M_allocated_capacity;
        }
        __tmp.section_name_._M_string_length =
             ((__first._M_current)->section_name_)._M_string_length;
        __tmp.size_._0_4_ = (type_1)(__first._M_current)->size_;
        __tmp.size_._4_4_ = *(type_1 *)((int)&(__first._M_current)->size_ + 4);
        ((__first._M_current)->section_name_)._M_string_length = 0;
        ((__first._M_current)->section_name_).field_2._M_local_buf[0] = '\0';
        __tmp.addralign_._0_4_ = (type_1)(__first._M_current)->addralign_;
        ((__first._M_current)->section_name_)._M_dataplus._M_p = (type_3)var_8;
        __tmp.addralign_._4_4_ = *(type_1 *)((int)&(__first._M_current)->addralign_ + 4);
        ((__first._M_current)->input_section_).shndx_ =
             ((__middle._M_current)->input_section_).shndx_;
        ((__first._M_current)->input_section_).p2align_ =
             ((__middle._M_current)->input_section_).p2align_;
        *(type_1 *)&((__first._M_current)->input_section_).u1_ =
             *(type_1 *)&((__middle._M_current)->input_section_).u1_;
        *(type_1 *)((int)&((__first._M_current)->input_section_).u1_ + 4) =
             *(type_1 *)((int)&((__middle._M_current)->input_section_).u1_ + 4);
        ((__first._M_current)->input_section_).u2_ = ((__middle._M_current)->input_section_).u2_;
        ((__first._M_current)->input_section_).section_order_index_ =
             ((__middle._M_current)->input_section_).section_order_index_;
        var_14 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;
        var_15 = &((__middle._M_current)->section_name_).field_2;
        if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
             *)var_14 == var_15) {
          var_16 = ((__middle._M_current)->section_name_)._M_string_length;
          if (var_16 != 0) {
            if (var_16 == 1) {
              ((__first._M_current)->section_name_).field_2._M_local_buf[0] =
                   ((__middle._M_current)->section_name_).field_2._M_local_buf[0];
              var_16 = ((__middle._M_current)->section_name_)._M_string_length;
            }
            else {
              var_17(var_8,var_15,var_16);
              var_16 = ((__middle._M_current)->section_name_)._M_string_length;
            }
          }
          ((__first._M_current)->section_name_)._M_string_length = var_16;
          ((__first._M_current)->section_name_).field_2._M_local_buf[var_16] = '\0';
          var_8 = (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                    *)((__middle._M_current)->section_name_)._M_dataplus._M_p;
        }
        else {
          ((__first._M_current)->section_name_)._M_dataplus._M_p = var_14;
          ((__first._M_current)->section_name_)._M_string_length =
               ((__middle._M_current)->section_name_)._M_string_length;
          ((__first._M_current)->section_name_).field_2._M_allocated_capacity =
               ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;
          ((__middle._M_current)->section_name_)._M_dataplus._M_p = (type_3)var_15;
          var_8 = var_15;
        }
        ((__middle._M_current)->section_name_)._M_string_length = 0;
        var_8->_M_local_buf[0] = '\0';
        uVar3 = (__middle._M_current)->size_;
        *(type_1 *)((int)&(__first._M_current)->size_ + 4) =
             *(type_1 *)((int)&(__middle._M_current)->size_ + 4);
        uVar1 = *(type_1 *)((int)&(__middle._M_current)->addralign_ + 4);
        *(int *)&(__first._M_current)->size_ = (int)uVar3;
        uVar3 = (__middle._M_current)->addralign_;
        *(type_1 *)((int)&(__first._M_current)->addralign_ + 4) = uVar1;
        *(int *)&(__first._M_current)->addralign_ = (int)uVar3;
        ((__middle._M_current)->input_section_).shndx_ = __tmp.input_section_.shndx_;
        ((__middle._M_current)->input_section_).p2align_ = __tmp.input_section_.p2align_;
        *(type_1 *)&((__middle._M_current)->input_section_).u1_ =
             __tmp.input_section_.u1_.data_size._0_4_;
        *(type_1 *)((int)&((__middle._M_current)->input_section_).u1_ + 4) =
             __tmp.input_section_.u1_.data_size._4_4_;
        ((__middle._M_current)->input_section_).u2_ = __tmp.input_section_.u2_;
        ((__middle._M_current)->input_section_).section_order_index_ =
             __tmp.input_section_.section_order_index_;
        var_14 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;
        if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
             *)__tmp.section_name_._M_dataplus._M_p == var_5) {
          if (__tmp.section_name_._M_string_length != 0) {
            if (__tmp.section_name_._M_string_length == 1) {
              *var_14 = __tmp.section_name_.field_2._M_local_buf[0];
              var_14 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;
            }
            else {
              var_17(var_14,var_5,__tmp.section_name_._M_string_length);
              var_14 = ((__middle._M_current)->section_name_)._M_dataplus._M_p;
            }
          }
          ((__middle._M_current)->section_name_)._M_string_length =
               __tmp.section_name_._M_string_length;
          var_14[__tmp.section_name_._M_string_length] = '\0';
        }
        else if (var_15 == (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_14) {
          ((__middle._M_current)->section_name_)._M_dataplus._M_p =
               __tmp.section_name_._M_dataplus._M_p;
          ((__middle._M_current)->section_name_)._M_string_length =
               __tmp.section_name_._M_string_length;
          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =
               __tmp.section_name_.field_2._M_allocated_capacity;
          __tmp.section_name_._M_dataplus._M_p = (type_3)var_5;
        }
        else {
          ((__middle._M_current)->section_name_)._M_dataplus._M_p =
               __tmp.section_name_._M_dataplus._M_p;
          sVar2 = ((__middle._M_current)->section_name_).field_2._M_allocated_capacity;
          ((__middle._M_current)->section_name_)._M_string_length =
               __tmp.section_name_._M_string_length;
          ((__middle._M_current)->section_name_).field_2._M_allocated_capacity =
               __tmp.section_name_.field_2._M_allocated_capacity;
          __tmp.section_name_._M_dataplus._M_p = (type_3)var_5;
          if (var_14 != (type_3)0x0) {
            __tmp.section_name_._M_dataplus._M_p = var_14;
            __tmp.section_name_.field_2._M_allocated_capacity = sVar2;
          }
        }
        __tmp.section_name_._M_string_length = 0;
        *__tmp.section_name_._M_dataplus._M_p = '\0';
        *(type_1 *)&(__middle._M_current)->size_ = (type_1)__tmp.size_;
        *(type_1 *)((int)&(__middle._M_current)->size_ + 4) = __tmp.size_._4_4_;
        *(type_1 *)&(__middle._M_current)->addralign_ = (type_1)__tmp.addralign_;
        *(type_1 *)((int)&(__middle._M_current)->addralign_ + 4) = __tmp.addralign_._4_4_;
        if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
             *)__tmp.section_name_._M_dataplus._M_p != &__tmp.section_name_.field_2) {
          var_18(__tmp.section_name_._M_dataplus._M_p);
        }
      }
    }
    else {
      if (var_12 < var_11) {
        var_19 = var_11 / 2;
        var_10._M_current = __first._M_current + var_19;
        __lower_bound<__gnu_cxx::__normal_iterator<gold::var_6*,_std::vector<gold::var_6>var_3>,_gold::var_6,___gnu_cxx::__ops::_Iter_comp_val<gold::var_20>var_3>
                  (__middle,__last,var_10._M_current,
                   (_Iter_comp_val<gold::var_20>)__comp._M_comp);
        var_21 = (int)local_60 - (int)__middle._M_current;
        var_22 = var_21 >> 6;
        var_7._M_current = local_60;
      }
      else {
        var_22 = var_12 / 2;
        var_21 = var_22 * 0x40;
        __upper_bound<__gnu_cxx::__normal_iterator<gold::var_6*,_std::vector<gold::var_6>var_3>,_gold::var_6,___gnu_cxx::__ops::_Val_comp_iter<gold::var_20>var_3>
                  (__first,__middle,__middle._M_current + var_22,
                   (_Val_comp_iter<gold::var_20>)__comp._M_comp);
        var_19 = (int)local_60 - (int)__first._M_current >> 6;
        var_7._M_current = __middle._M_current + var_22;
        var_10._M_current = local_60;
      }
      var_9._M_current =
           (var_6 *)((int)&((var_10._M_current)->input_section_).shndx_ + var_21);
      _V2::
      __rotate<__gnu_cxx::__normal_iterator<gold::var_6*,_std::vector<gold::var_6>var_3>var_3>
                (&local_60,var_10._M_current,__middle._M_current,var_7._M_current,0);
      __comp_00._M_comp.section_sort_ = __comp._M_comp.section_sort_;
      __comp_00._M_comp.filename_sort_ = __comp._M_comp.filename_sort_;
      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::var_6*,_std::vector<gold::var_6>var_3>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::var_20>var_3>
                (__first,var_10,var_9,var_19,var_22,__comp_00);
      __comp_01._M_comp.section_sort_ = __comp._M_comp.section_sort_;
      __comp_01._M_comp.filename_sort_ = __comp._M_comp.filename_sort_;
      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::var_6*,_std::vector<gold::var_6>var_3>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::var_20>var_3>
                (var_9,var_7,__last,var_11 - var_19,var_12 - var_22,__comp_01);
    }
  }
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void MASKED(undefined4 *param_1,undefined4 *param_2,int param_3,int param_4,int param_5,
                 undefined4 param_6,undefined4 param_7)

{
  undefined4 *__src;
  undefined4 uVar1;
  undefined4 uVar2;
  char cVar3;
  undefined4 *puVar4;
  size_t __n;
  int iVar5;
  undefined4 unaff_EBP;
  int iVar6;
  int unaff_retaddr;
  int in_stack_ffffff8c;
  int local_70;
  int local_6c;
  undefined1 *local_64;
  undefined1 local_60 [4];
  undefined4 local_5c;
  undefined4 local_58;
  undefined4 local_54;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  undefined4 *local_44;
  size_t local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x110fc9;
  if ((param_4 != 0) && (param_5 != 0)) {
    if (param_5 + param_4 == 2) {
      cVar3 = FUN_001070c0(&param_6,param_2,param_1);
      if (cVar3 != '\0') {
        local_5c = *param_1;
        local_58 = param_1[1];
        local_54 = param_1[2];
        local_50 = param_1[3];
        local_4c = param_1[4];
        local_48 = param_1[5];
        puVar4 = param_1 + 8;
        if ((undefined4 *)param_1[6] == puVar4) {
          local_3c = param_1[8];
          local_38 = param_1[9];
          local_34 = param_1[10];
          local_30 = param_1[0xb];
          local_44 = &local_3c;
        }
        else {
          local_3c = param_1[8];
          local_44 = (undefined4 *)param_1[6];
        }
        local_40 = param_1[7];
        local_2c = param_1[0xc];
        local_28 = param_1[0xd];
        param_1[7] = 0;
        *(undefined1 *)(param_1 + 8) = 0;
        local_24 = param_1[0xe];
        param_1[6] = puVar4;
        local_20 = param_1[0xf];
        *param_1 = *param_2;
        param_1[1] = param_2[1];
        param_1[2] = param_2[2];
        param_1[3] = param_2[3];
        param_1[4] = param_2[4];
        param_1[5] = param_2[5];
        __src = param_2 + 8;
        if ((undefined4 *)param_2[6] == __src) {
          __n = param_2[7];
          if (__n != 0) {
            if (__n == 1) {
              *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);
              __n = param_2[7];
            }
            else {
              memcpy(puVar4,__src,__n);
              __n = param_2[7];
            }
          }
          param_1[7] = __n;
          *(undefined1 *)(__n + 0x20 + (int)param_1) = 0;
          puVar4 = (undefined4 *)param_2[6];
        }
        else {
          param_1[6] = (undefined4 *)param_2[6];
          param_1[7] = param_2[7];
          param_1[8] = param_2[8];
          param_2[6] = __src;
          puVar4 = __src;
        }
        param_2[7] = 0;
        *(undefined1 *)puVar4 = 0;
        uVar1 = param_2[0xc];
        param_1[0xd] = param_2[0xd];
        uVar2 = param_2[0xf];
        param_1[0xc] = uVar1;
        uVar1 = param_2[0xe];
        param_1[0xf] = uVar2;
        param_1[0xe] = uVar1;
        *param_2 = local_5c;
        param_2[1] = local_58;
        param_2[2] = local_54;
        param_2[3] = local_50;
        param_2[4] = local_4c;
        param_2[5] = local_48;
        puVar4 = (undefined4 *)param_2[6];
        if (local_44 == &local_3c) {
          if (local_40 != 0) {
            if (local_40 == 1) {
              *(undefined1 *)puVar4 = (undefined1)local_3c;
              puVar4 = (undefined4 *)param_2[6];
            }
            else {
              memcpy(puVar4,&local_3c,local_40);
              puVar4 = (undefined4 *)param_2[6];
            }
          }
          param_2[7] = local_40;
          *(undefined1 *)((int)puVar4 + local_40) = 0;
        }
        else if (__src == puVar4) {
          param_2[6] = local_44;
          param_2[7] = local_40;
          param_2[8] = local_3c;
          local_44 = &local_3c;
        }
        else {
          param_2[6] = local_44;
          uVar1 = param_2[8];
          param_2[7] = local_40;
          param_2[8] = local_3c;
          local_44 = &local_3c;
          if (puVar4 != (undefined4 *)0x0) {
            local_44 = puVar4;
            local_3c = uVar1;
          }
        }
        local_40 = 0;
        *(undefined1 *)local_44 = 0;
        param_2[0xc] = local_2c;
        param_2[0xd] = local_28;
        param_2[0xe] = local_24;
        param_2[0xf] = local_20;
        if (local_44 != &local_3c) {
          FUN_001807a0(local_44);
        }
      }
    }
    else {
      if (param_5 < param_4) {
        iVar6 = param_4 / 2;
        puVar4 = param_1 + iVar6 * 0x10;
        FUN_001104b0(local_60,param_2,param_3,puVar4,param_6,param_7);
        iVar5 = (int)local_64 - (int)param_1;
        local_70 = iVar5 >> 6;
      }
      else {
        local_64 = local_60;
        local_6c = param_5 / 2;
        iVar5 = local_6c * 0x40;
        puVar4 = param_2 + local_6c * 0x10;
        FUN_00110520(local_64,param_1,param_2,puVar4,param_6,param_7);
        iVar6 = (int)puVar4 - unaff_retaddr >> 6;
      }
      FUN_00110670(local_6c,puVar4,param_1,local_64,0);
      MASKED(unaff_EBP,puVar4,iVar5 + (int)puVar4,iVar6,in_stack_ffffff8c,param_4,param_5);
      MASKED(iVar5 + (int)puVar4,local_70,param_1,param_4 - iVar6,param_3 - in_stack_ffffff8c,
                   param_4,param_5);
    }
  }
  return;
}

