
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original name: __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,
   std::vector<gold::Output_segment*> >, int, gold::Output_segment**,
   __gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments> > */

void std::
     __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_int,_gold::Output_segment**,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>
               (__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>
                __first,__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>
                        __middle,
               __normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>
               __last,int __len1,int __len2,Output_segment **__buffer,int __buffer_size,
               _Iter_comp_iter<gold::Layout::Compare_segments> __comp)

{
  Output_segment *pOVar1;
  bool bVar2;
  int iVar3;
  __normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>
  __last_00;
  _Iter_comp_val<gold::Layout::Compare_segments> __comp_00;
  size_t sVar4;
  Output_segment **ppOVar5;
  Output_segment **ppOVar7;
  Compare_segments local_3c;
  int local_38;
  int local_34;
  Layout *local_20 [8];
  Output_segment **ppOVar6;
  
  do {
    iVar3 = __len2;
    if (__buffer_size < __len2) {
      iVar3 = __buffer_size;
    }
    if (__len1 <= iVar3) {
      sVar4 = (int)__middle._M_current - (int)__first._M_current;
      if (__middle._M_current != __first._M_current) {
        memmove(__buffer,__first._M_current,sVar4);
      }
      ppOVar5 = (Output_segment **)((int)__buffer + sVar4);
      if (__buffer == ppOVar5) {
        return;
      }
      if (__last._M_current != __middle._M_current) {
        do {
          bVar2 = gold::Layout::segment_precedes
                            ((Layout *)__comp._M_comp.layout_,*__middle._M_current,*__buffer);
          if (bVar2) {
            pOVar1 = *__middle._M_current;
            __middle._M_current = __middle._M_current + 1;
            *__first._M_current = pOVar1;
          }
          else {
            pOVar1 = *__buffer;
            __buffer = __buffer + 1;
            *__first._M_current = pOVar1;
          }
          if (ppOVar5 == __buffer) {
            return;
          }
          __first._M_current = __first._M_current + 1;
        } while (__last._M_current != __middle._M_current);
        sVar4 = (int)ppOVar5 - (int)__buffer;
      }
      memmove(__first._M_current,__buffer,sVar4);
      return;
    }
    if (__len2 <= __buffer_size) {
      sVar4 = (int)__last._M_current - (int)__middle._M_current;
      if (__last._M_current != __middle._M_current) {
        memmove(__buffer,__middle._M_current,sVar4);
      }
      ppOVar5 = (Output_segment **)((int)__buffer + sVar4);
      if (__middle._M_current == __first._M_current) {
        if (__buffer != ppOVar5) {
          memmove((void *)((int)__last._M_current - sVar4),__buffer,sVar4);
        }
      }
      else if (__buffer != ppOVar5) {
        ppOVar7 = __middle._M_current + -1;
        do {
          ppOVar6 = ppOVar5 + -1;
          while( true ) {
            __last._M_current = __last._M_current + -1;
            bVar2 = gold::Layout::segment_precedes
                              ((Layout *)__comp._M_comp.layout_,*ppOVar6,*ppOVar7);
            if (!bVar2) break;
            *__last._M_current = *ppOVar7;
            if (ppOVar7 == __first._M_current) {
              if (__buffer == ppOVar5) {
                return;
              }
              memmove((void *)((int)__last._M_current - ((int)ppOVar5 - (int)__buffer)),__buffer,
                      (int)ppOVar5 - (int)__buffer);
              return;
            }
            ppOVar7 = ppOVar7 + -1;
          }
          *__last._M_current = *ppOVar6;
          ppOVar5 = ppOVar6;
        } while (__buffer != ppOVar6);
      }
      return;
    }
    if (__len2 < __len1) {
      local_38 = __len1 / 2;
      __comp_00._M_comp.layout_ = (Compare_segments)(__first._M_current + local_38);
      __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Iter_comp_val<gold::Layout::Compare_segments>_>
                ((__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>
                  )local_20,__middle,__last._M_current,__comp_00);
      local_3c.layout_ = local_20[0];
      local_34 = (int)local_20[0] - (int)__middle._M_current >> 2;
    }
    else {
      local_34 = __len2 / 2;
      local_3c.layout_ = (Layout *)(__middle._M_current + local_34);
      __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Val_comp_iter<gold::Layout::Compare_segments>_>
                ((__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>
                  )local_20,__first,__middle._M_current,
                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_);
      local_38 = (int)local_20[0] - (int)__first._M_current >> 2;
      __comp_00._M_comp.layout_ = (Compare_segments)(Compare_segments)local_20[0];
    }
    __len1 = __len1 - local_38;
    if ((local_34 < __len1) && (local_34 <= __buffer_size)) {
      __last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_;
      if (local_34 != 0) {
        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;
        if (local_3c.layout_ == (Layout *)__middle._M_current) {
          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;
          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);
        }
        else {
          memmove(__buffer,__middle._M_current,sVar4);
          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {
LAB_000c02b9:
            memmove((void *)((int)local_3c.layout_ -
                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),
                    (void *)__comp_00._M_comp.layout_,
                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);
          }
          if (sVar4 != 0) {
            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);
          }
          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);
        }
      }
    }
    else if (__buffer_size < __len1) {
      _V2::
      __rotate<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>_>
                (local_20,__comp_00._M_comp.layout_,__middle._M_current,local_3c.layout_,0);
      __last_00._M_current =
           (Output_segment **)
           (((int)local_3c.layout_ - (int)__middle._M_current) + (int)__comp_00._M_comp.layout_);
    }
    else {
      __last_00._M_current = (Output_segment **)local_3c.layout_;
      if (__len1 != 0) {
        sVar4 = (int)__middle._M_current - (int)__comp_00._M_comp.layout_;
        __last_00._M_current = (Output_segment **)((int)local_3c.layout_ - sVar4);
        if (__comp_00._M_comp.layout_ == (Compare_segments)__middle._M_current) {
          if ((Compare_segments)local_3c.layout_ != __comp_00._M_comp.layout_) goto LAB_000c0476;
        }
        else {
          memmove(__buffer,(void *)__comp_00._M_comp.layout_,sVar4);
          if (local_3c.layout_ != (Layout *)__middle._M_current) {
LAB_000c0476:
            memmove((void *)__comp_00._M_comp.layout_,__middle._M_current,
                    (int)local_3c.layout_ - (int)__middle._M_current);
          }
          if (sVar4 != 0) {
            memmove(__last_00._M_current,__buffer,sVar4);
          }
        }
      }
    }
    __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_int,_gold::Output_segment**,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>
              (__first,(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>
                        )__comp_00._M_comp.layout_,__last_00,local_38,local_34,__buffer,
               __buffer_size,__comp);
    __len2 = __len2 - local_34;
    __middle._M_current = (Output_segment **)local_3c.layout_;
    __first._M_current = __last_00._M_current;
  } while( true );
}



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

void FUN_000c00a0(void)

{
  int iVar1;
  undefined4 uVar2;
  char cVar3;
  undefined4 *puVar4;
  int iVar5;
  undefined4 unaff_EBX;
  undefined4 *puVar6;
  undefined1 *puVar7;
  undefined4 unaff_EBP;
  undefined4 *puVar8;
  int iVar9;
  undefined4 *puVar10;
  undefined4 unaff_ESI;
  undefined4 unaff_EDI;
  undefined4 *puVar11;
  
  do {
    *(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5;
    iVar5 = *(int *)((int)register0x00000010 + -4);
    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;
    *(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI;
    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;
    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;
    puVar4 = *(undefined4 **)((int)register0x00000010 + 4);
    *(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b;
    iVar5 = *(int *)((int)register0x00000010 + 0x14);
    iVar9 = *(int *)((int)register0x00000010 + 0x10);
    puVar8 = *(undefined4 **)((int)register0x00000010 + 8);
    *(undefined4 *)((int)register0x00000010 + -0x4c) =
         *(undefined4 *)((int)register0x00000010 + 0xc);
    iVar1 = *(int *)((int)register0x00000010 + 0x1c);
    puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18);
    *(int *)((int)register0x00000010 + -0x44) = iVar5;
    *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;
    *(undefined4 *)((int)register0x00000010 + -0x50) =
         *(undefined4 *)((int)register0x00000010 + 0x20);
    if (iVar1 < iVar5) {
      iVar5 = iVar1;
    }
    if (iVar9 <= iVar5) {
      iVar5 = (int)puVar8 - (int)puVar4;
      if (puVar8 != puVar4) {
        *(int *)((int)register0x00000010 + -100) = iVar5;
        *(int *)((int)register0x00000010 + -0x44) = iVar5;
        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;
        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;
        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;
        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;
        memmove(*(void **)((int)register0x00000010 + -0x6c),
                *(void **)((int)register0x00000010 + -0x68),
                *(size_t *)((int)register0x00000010 + -100));
        iVar5 = *(int *)((int)register0x00000010 + -0x44);
        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);
      }
      puVar10 = (undefined4 *)((int)puVar11 + iVar5);
      if (puVar11 == puVar10) {
        return;
      }
      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {
        do {
          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;
          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;
          *(undefined4 *)((int)register0x00000010 + -0x6c) =
               *(undefined4 *)((int)register0x00000010 + -0x50);
          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;
          cVar3 = FUN_000aa8c0();
          if (cVar3 == '\0') {
            uVar2 = *puVar11;
            puVar11 = puVar11 + 1;
            *puVar4 = uVar2;
          }
          else {
            uVar2 = *puVar8;
            puVar8 = puVar8 + 1;
            *puVar4 = uVar2;
          }
          if (puVar10 == puVar11) {
            return;
          }
          puVar4 = puVar4 + 1;
        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);
        iVar5 = (int)puVar10 - (int)puVar11;
      }
      *(int *)((int)register0x00000010 + -100) = iVar5;
      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;
      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;
      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;
      memmove(*(void **)((int)register0x00000010 + -0x6c),
              *(void **)((int)register0x00000010 + -0x68),
              *(size_t *)((int)register0x00000010 + -100));
      return;
    }
    if (*(int *)((int)register0x00000010 + -0x44) <= iVar1) {
      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);
      iVar5 = (int)puVar4 - (int)puVar8;
      if (puVar4 != puVar8) {
        *(int *)((int)register0x00000010 + -100) = iVar5;
        *(int *)((int)register0x00000010 + -0x44) = iVar5;
        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;
        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;
        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;
        memmove(*(void **)((int)register0x00000010 + -0x6c),
                *(void **)((int)register0x00000010 + -0x68),
                *(size_t *)((int)register0x00000010 + -100));
        iVar5 = *(int *)((int)register0x00000010 + -0x44);
      }
      puVar10 = (undefined4 *)((int)puVar11 + iVar5);
      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {
        if (puVar11 != puVar10) {
          *(int *)((int)register0x00000010 + -100) = iVar5;
          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;
          *(int *)((int)register0x00000010 + -0x6c) =
               *(int *)((int)register0x00000010 + -0x4c) - iVar5;
          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;
          memmove(*(void **)((int)register0x00000010 + -0x6c),
                  *(void **)((int)register0x00000010 + -0x68),
                  *(size_t *)((int)register0x00000010 + -100));
        }
      }
      else if (puVar11 != puVar10) {
        puVar8 = puVar8 + -1;
        do {
          puVar6 = puVar10 + -1;
          while( true ) {
            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;
            puVar4 = puVar4 + -1;
            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;
            *(undefined4 *)((int)register0x00000010 + -0x6c) =
                 *(undefined4 *)((int)register0x00000010 + -0x50);
            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;
            cVar3 = FUN_000aa8c0();
            if (cVar3 == '\0') break;
            *puVar4 = *puVar8;
            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {
              if (puVar11 == puVar10) {
                return;
              }
              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;
              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;
              *(int *)((int)register0x00000010 + -0x6c) =
                   (int)puVar4 - ((int)puVar10 - (int)puVar11);
              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;
              memmove(*(void **)((int)register0x00000010 + -0x6c),
                      *(void **)((int)register0x00000010 + -0x68),
                      *(size_t *)((int)register0x00000010 + -100));
              return;
            }
            puVar8 = puVar8 + -1;
          }
          *puVar4 = *puVar6;
          puVar10 = puVar6;
        } while (puVar11 != puVar6);
      }
      return;
    }
    if (*(int *)((int)register0x00000010 + -0x44) < iVar9) {
      *(int *)((int)register0x00000010 + -0x2c) = iVar1;
      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;
      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;
      *(undefined4 *)((int)register0x00000010 + -0x6c) =
           *(undefined4 *)((int)register0x00000010 + -0x50);
      *(int *)((int)register0x00000010 + -0x70) = iVar5;
      *(int *)((int)register0x00000010 + -0x30) = iVar5;
      *(undefined4 *)((int)register0x00000010 + -0x74) =
           *(undefined4 *)((int)register0x00000010 + -0x4c);
      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;
      *(undefined1 **)((int)register0x00000010 + -0x7c) =
           (undefined1 *)((int)register0x00000010 + -0x20);
      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;
      FUN_000bfba0();
      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);
      *(int *)((int)register0x00000010 + -0x38) =
           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;
      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);
      iVar5 = *(int *)((int)register0x00000010 + -0x30);
    }
    else {
      *(int *)((int)register0x00000010 + -0x30) = iVar1;
      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;
      *(undefined4 **)((int)register0x00000010 + -0x3c) =
           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;
      *(undefined4 *)((int)register0x00000010 + -0x6c) =
           *(undefined4 *)((int)register0x00000010 + -0x50);
      *(undefined4 **)((int)register0x00000010 + -0x70) =
           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;
      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;
      *(undefined4 *)((int)register0x00000010 + -0x78) =
           *(undefined4 *)((int)register0x00000010 + -0x48);
      *(undefined1 **)((int)register0x00000010 + -0x7c) =
           (undefined1 *)((int)register0x00000010 + -0x20);
      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;
      FUN_000bfc10();
      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);
      *(int *)((int)register0x00000010 + -0x3c) =
           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;
      iVar5 = *(int *)((int)register0x00000010 + -0x34);
    }
    iVar1 = *(int *)((int)register0x00000010 + -0x38);
    *(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c);
    if ((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)) {
      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);
      puVar10 = puVar4;
      if (iVar1 != 0) {
        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;
        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {
          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;
          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);
          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);
        }
        else {
          *(int *)((int)register0x00000010 + -0x2c) = iVar5;
          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;
          *(int *)((int)register0x00000010 + -0x68) = iVar9;
          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;
          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;
          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;
          memmove(*(void **)((int)register0x00000010 + -0x70),
                  *(void **)((int)register0x00000010 + -0x6c),
                  *(size_t *)((int)register0x00000010 + -0x68));
          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);
          iVar5 = *(int *)((int)register0x00000010 + -0x2c);
          if (puVar4 != puVar8) {
LAB_000c02b9:
            *(int *)((int)register0x00000010 + -0x2c) = iVar5;
            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;
            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;
            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;
            *(int *)((int)register0x00000010 + -0x70) =
                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);
            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;
            memmove(*(void **)((int)register0x00000010 + -0x70),
                    *(void **)((int)register0x00000010 + -0x6c),
                    *(size_t *)((int)register0x00000010 + -0x68));
            iVar5 = *(int *)((int)register0x00000010 + -0x2c);
            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);
          }
          if (iVar9 != 0) {
            *(int *)((int)register0x00000010 + -0x2c) = iVar5;
            *(int *)((int)register0x00000010 + -0x68) = iVar9;
            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;
            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;
            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;
            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;
            memmove(*(void **)((int)register0x00000010 + -0x70),
                    *(void **)((int)register0x00000010 + -0x6c),
                    *(size_t *)((int)register0x00000010 + -0x68));
            iVar5 = *(int *)((int)register0x00000010 + -0x2c);
            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);
          }
          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);
          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);
        }
      }
    }
    else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {
      *(int *)((int)register0x00000010 + -0x30) = iVar5;
      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;
      iVar9 = *(int *)((int)register0x00000010 + -0x40);
      *(int *)((int)register0x00000010 + -0x74) = iVar9;
      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;
      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;
      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;
      *(undefined1 **)((int)register0x00000010 + -0x80) =
           (undefined1 *)((int)register0x00000010 + -0x20);
      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;
      FUN_000bfc80();
      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);
      puVar7 = (undefined1 *)((int)register0x00000010 + -100);
      iVar5 = *(int *)((int)register0x00000010 + -0x34);
      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);
    }
    else {
      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);
      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);
      if (*(int *)((int)register0x00000010 + -0x34) != 0) {
        iVar9 = (int)puVar8 - (int)puVar4;
        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;
        if (puVar4 == puVar8) {
          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;
        }
        else {
          *(int *)((int)register0x00000010 + -0x28) = iVar5;
          *(int *)((int)register0x00000010 + -0x68) = iVar9;
          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;
          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;
          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;
          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;
          memmove(*(void **)((int)register0x00000010 + -0x70),
                  *(void **)((int)register0x00000010 + -0x6c),
                  *(size_t *)((int)register0x00000010 + -0x68));
          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);
          iVar5 = *(int *)((int)register0x00000010 + -0x28);
          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {
LAB_000c0476:
            *(int *)((int)register0x00000010 + -0x28) = iVar5;
            *(int *)((int)register0x00000010 + -0x68) =
                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;
            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;
            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;
            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;
            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;
            memmove(*(void **)((int)register0x00000010 + -0x70),
                    *(void **)((int)register0x00000010 + -0x6c),
                    *(size_t *)((int)register0x00000010 + -0x68));
            iVar5 = *(int *)((int)register0x00000010 + -0x28);
            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);
          }
          if (iVar9 != 0) {
            *(int *)((int)register0x00000010 + -0x28) = iVar5;
            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;
            *(int *)((int)register0x00000010 + -0x68) = iVar9;
            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;
            *(undefined4 *)((int)register0x00000010 + -0x70) =
                 *(undefined4 *)((int)register0x00000010 + -0x30);
            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;
            memmove(*(void **)((int)register0x00000010 + -0x70),
                    *(void **)((int)register0x00000010 + -0x6c),
                    *(size_t *)((int)register0x00000010 + -0x68));
            iVar5 = *(int *)((int)register0x00000010 + -0x28);
            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);
          }
        }
        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);
        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);
      }
    }
    uVar2 = *(undefined4 *)(puVar7 + 0xc);
    *(undefined4 *)(puVar7 + -4) = uVar2;
    *(int *)(puVar7 + -8) = iVar5;
    *(int *)(puVar7 + 0xc) = iVar5;
    *(undefined4 **)(puVar7 + -0xc) = puVar11;
    iVar5 = *(int *)(puVar7 + 0x28);
    *(int *)(puVar7 + -0x10) = iVar5;
    *(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24);
    *(undefined4 **)(puVar7 + -0x18) = puVar10;
    *(undefined4 **)(puVar7 + -0x1c) = puVar4;
    *(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14);
    *(undefined4 *)(puVar7 + -0x24) = 0xc032a;
    FUN_000c00a0();
    *(undefined4 *)(puVar7 + 0x7c) = uVar2;
    *(undefined4 **)(puVar7 + 0x74) = puVar11;
    *(undefined4 **)(puVar7 + 0x60) = puVar10;
    *(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5;
    *(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc);
    *(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c);
    *(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10);
    *(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20);
    unaff_EBX = *(undefined4 *)(puVar7 + 0x4c);
    unaff_ESI = *(undefined4 *)(puVar7 + 0x50);
    unaff_EDI = *(undefined4 *)(puVar7 + 0x54);
    unaff_EBP = *(undefined4 *)(puVar7 + 0x58);
    register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c);
  } while( true );
}


CALL 0x0006206b
ADD EAX,0x2e9f5b
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x4c
MOV EDX,dword ptr [ESP + 0x68]
MOV ECX,dword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x70]
MOV EBP,dword ptr [ESP + 0x7c]
MOV EBX,dword ptr [ESP + 0x6c]
MOV ESI,dword ptr [ESP + 0x64]
MOV dword ptr [ESP + 0x10],EDX
MOV EDX,dword ptr [ESP + 0x78]
MOV EDI,dword ptr [ESP + 0x74]
MOV dword ptr [ESP + 0x18],EAX
MOV dword ptr [ESP + 0x14],ECX
CMP EAX,EDX
MOV dword ptr [ESP + 0xc],EBP
CMOVG EAX,EDX
CMP EBX,EAX
JG 0x000c0188
MOV EDX,ESI
MOV EBP,ESI
SUB EDX,ECX
CMP ESI,ECX
JZ 0x000c011e
SUB ESP,0x4
PUSH EDX
MOV dword ptr [ESP + 0x20],EDX
PUSH ECX
MOV dword ptr [ESP + 0x20],ECX
PUSH EDI
MOV EBX,dword ptr [ESP + 0x2c]
CALL 0x0002a8a0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x18]
MOV ECX,dword ptr [ESP + 0x14]
LEA EBX,[EDI + EDX*0x1]
CMP EDI,EBX
JZ 0x000c0179
CMP dword ptr [ESP + 0x10],ESI
JZ 0x000c038e
MOV ESI,ECX
JMP 0x000c0152
MOV EAX,dword ptr [EBP]
ADD ESI,0x4
ADD EBP,0x4
MOV dword ptr [ESI + -0x4],EAX
CMP EBX,EDI
JZ 0x000c0179
CMP dword ptr [ESP + 0x10],EBP
JZ 0x000c0388
SUB ESP,0x4
PUSH dword ptr [EDI]
PUSH dword ptr [EBP]
PUSH dword ptr [ESP + 0x18]
CALL 0x000aa8c0
ADD ESP,0x10
TEST AL,AL
JNZ 0x000c0138
MOV EAX,dword ptr [EDI]
ADD EDI,0x4
ADD ESI,0x4
MOV dword ptr [ESI + -0x4],EAX
CMP EBX,EDI
JNZ 0x000c0148
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP dword ptr [ESP + 0x18],EDX
JG 0x000c0208
MOV EAX,dword ptr [ESP + 0x10]
MOV EDX,EAX
MOV EBP,EAX
SUB EDX,ESI
CMP EAX,ESI
JZ 0x000c01b6
SUB ESP,0x4
PUSH EDX
MOV dword ptr [ESP + 0x20],EDX
PUSH ESI
PUSH EDI
MOV EBX,dword ptr [ESP + 0x2c]
CALL 0x0002a8a0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x18]
LEA EBX,[EDI + EDX*0x1]
CMP ESI,dword ptr [ESP + 0x14]
JZ 0x000c0518
CMP EDI,EBX
JZ 0x000c0179
SUB ESI,0x4
LEA ESI,[ESI]
SUB EBX,0x4
SUB ESP,0x4
PUSH dword ptr [ESI]
SUB EBP,0x4
PUSH dword ptr [EBX]
PUSH dword ptr [ESP + 0x18]
CALL 0x000aa8c0
ADD ESP,0x10
TEST AL,AL
JZ 0x000c0408
MOV EAX,dword ptr [ESI]
MOV dword ptr [EBP],EAX
CMP ESI,dword ptr [ESP + 0x14]
JZ 0x000c04d0
SUB ESI,0x4
JMP 0x000c01d3
CMP EBX,dword ptr [ESP + 0x18]
JG 0x000c03b0
MOV ECX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x2c],EDX
LEA EBP,[ESP + 0x3c]
SUB ESP,0xc
MOV EAX,ECX
SHR EAX,0x1f
ADD EAX,ECX
SAR EAX,0x1
MOV dword ptr [ESP + 0x34],EAX
LEA EAX,[ESI + EAX*0x4]
MOV dword ptr [ESP + 0x2c],EAX
PUSH dword ptr [ESP + 0x18]
PUSH EAX
PUSH ESI
PUSH dword ptr [ESP + 0x2c]
PUSH EBP
CALL 0x000bfc10
MOV ECX,dword ptr [ESP + 0x58]
MOV EAX,ECX
SUB EAX,dword ptr [ESP + 0x30]
SAR EAX,0x2
MOV dword ptr [ESP + 0x40],EAX
ADD ESP,0x1c
MOV EDX,dword ptr [ESP + 0x2c]
MOV EAX,dword ptr [ESP + 0x28]
SUB EBX,dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x2c],EBX
CMP EBX,EAX
JLE 0x000c0420
CMP EAX,EDX
JG 0x000c0420
MOV EBP,ECX
TEST EAX,EAX
JZ 0x000c030b
MOV EAX,dword ptr [ESP + 0x20]
MOV EBP,EAX
SUB EBP,ESI
CMP EAX,ESI
JZ 0x000c0500
MOV dword ptr [ESP + 0x34],EDX
SUB ESP,0x4
MOV dword ptr [ESP + 0x34],ECX
PUSH EBP
PUSH ESI
PUSH EDI
MOV EBX,dword ptr [ESP + 0x2c]
CALL 0x0002a8a0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x30]
MOV EDX,dword ptr [ESP + 0x34]
CMP ECX,ESI
JZ 0x000c02e3
MOV dword ptr [ESP + 0x34],EDX
SUB ESI,ECX
SUB ESP,0x4
PUSH ESI
PUSH ECX
MOV EAX,dword ptr [ESP + 0x2c]
SUB EAX,ESI
MOV dword ptr [ESP + 0x3c],ECX
PUSH EAX
MOV EBX,dword ptr [ESP + 0x2c]
CALL 0x0002a8a0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x34]
MOV ECX,dword ptr [ESP + 0x30]
TEST EBP,EBP
JZ 0x000c0309
MOV dword ptr [ESP + 0x34],EDX
SUB ESP,0x4
PUSH EBP
PUSH EDI
PUSH ECX
MOV EBX,dword ptr [ESP + 0x2c]
MOV dword ptr [ESP + 0x40],ECX
CALL 0x0002a8a0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x34]
MOV ECX,dword ptr [ESP + 0x30]
ADD EBP,ECX
MOV ESI,dword ptr [ESP + 0xc]
PUSH ESI
PUSH EDX
MOV dword ptr [ESP + 0x14],EDX
PUSH EDI
MOV EBX,dword ptr [ESP + 0x34]
PUSH EBX
PUSH dword ptr [ESP + 0x34]
PUSH EBP
PUSH ECX
PUSH dword ptr [ESP + 0x30]
CALL 0x000c00a0
MOV EAX,dword ptr [ESP + 0x38]
MOV EDX,dword ptr [ESP + 0x2c]
MOV dword ptr [ESP + 0x9c],ESI
MOV dword ptr [ESP + 0x94],EDI
SUB EAX,EBX
MOV dword ptr [ESP + 0x80],EBP
MOV dword ptr [ESP + 0x90],EAX
MOV EAX,dword ptr [ESP + 0x4c]
MOV dword ptr [ESP + 0x98],EDX
MOV dword ptr [ESP + 0x8c],EAX
MOV EAX,dword ptr [ESP + 0x30]
MOV dword ptr [ESP + 0x88],EAX
MOV EAX,dword ptr [ESP + 0x40]
MOV dword ptr [ESP + 0x84],EAX
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
JMP 0x000c00a0
MOV EDX,EBX
MOV ECX,ESI
SUB EDX,EDI
SUB ESP,0x4
PUSH EDX
PUSH EDI
PUSH ECX
MOV EBX,dword ptr [ESP + 0x2c]
CALL 0x0002a8a0
ADD ESP,0x10
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,EBX
MOV ECX,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x30],EDX
LEA EBP,[ESP + 0x3c]
SHR EAX,0x1f
SUB ESP,0xc
ADD EAX,EBX
SAR EAX,0x1
MOV dword ptr [ESP + 0x30],EAX
LEA ECX,[ECX + EAX*0x4]
PUSH dword ptr [ESP + 0x18]
PUSH ECX
MOV dword ptr [ESP + 0x40],ECX
PUSH dword ptr [ESP + 0x24]
PUSH ESI
PUSH EBP
CALL 0x000bfba0
MOV EAX,dword ptr [ESP + 0x58]
MOV dword ptr [ESP + 0x3c],EAX
SUB EAX,ESI
SAR EAX,0x2
MOV dword ptr [ESP + 0x44],EAX
ADD ESP,0x1c
MOV ECX,dword ptr [ESP + 0x2c]
MOV EDX,dword ptr [ESP + 0x30]
JMP 0x000c025d
MOV EAX,dword ptr [EBX]
MOV dword ptr [EBP],EAX
CMP EDI,EBX
JNZ 0x000c01d0
JMP 0x000c0179
MOV EAX,dword ptr [ESP + 0x2c]
CMP EAX,EDX
JG 0x000c0540
MOV EBX,dword ptr [ESP + 0x20]
MOV EBP,EBX
TEST EAX,EAX
JZ 0x000c030b
MOV EBP,ESI
MOV EAX,EBX
SUB EBP,ECX
SUB EAX,EBP
MOV dword ptr [ESP + 0x30],EAX
CMP ECX,ESI
JZ 0x000c0570
MOV dword ptr [ESP + 0x38],EDX
SUB ESP,0x4
PUSH EBP
PUSH ECX
MOV dword ptr [ESP + 0x40],ECX
PUSH EDI
MOV EBX,dword ptr [ESP + 0x2c]
CALL 0x0002a8a0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x34]
MOV EDX,dword ptr [ESP + 0x38]
CMP dword ptr [ESP + 0x20],ESI
JZ 0x000c049e
MOV dword ptr [ESP + 0x38],EDX
SUB ESP,0x4
MOV EAX,dword ptr [ESP + 0x24]
SUB EAX,ESI
PUSH EAX
PUSH ESI
PUSH ECX
MOV EBX,dword ptr [ESP + 0x2c]
MOV dword ptr [ESP + 0x44],ECX
CALL 0x0002a8a0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
MOV ECX,dword ptr [ESP + 0x34]
TEST EBP,EBP
JZ 0x000c04c7
MOV dword ptr [ESP + 0x38],EDX
SUB ESP,0x4
MOV dword ptr [ESP + 0x38],ECX
PUSH EBP
PUSH EDI
PUSH dword ptr [ESP + 0x3c]
MOV EBX,dword ptr [ESP + 0x2c]
CALL 0x0002a8a0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
MOV ECX,dword ptr [ESP + 0x34]
MOV EBP,dword ptr [ESP + 0x30]
JMP 0x000c030b
ADD EBX,0x4
CMP EDI,EBX
JZ 0x000c0179
SUB EBX,EDI
SUB ESP,0x4
SUB EBP,EBX
PUSH EBX
PUSH EDI
PUSH EBP
MOV EBX,dword ptr [ESP + 0x2c]
CALL 0x0002a8a0
ADD ESP,0x10
JMP 0x000c0179
CMP ECX,dword ptr [ESP + 0x20]
JNZ 0x000c02b9
ADD EBP,ECX
JMP 0x000c030b
CMP EDI,EBX
JZ 0x000c0179
SUB ESP,0x4
PUSH EDX
PUSH EDI
MOV EAX,dword ptr [ESP + 0x1c]
SUB EAX,EDX
PUSH EAX
MOV EBX,dword ptr [ESP + 0x2c]
CALL 0x0002a8a0
ADD ESP,0x10
JMP 0x000c0179
MOV dword ptr [ESP + 0x30],EDX
SUB ESP,0xc
PUSH 0x0
MOV EBX,dword ptr [ESP + 0x30]
PUSH EBX
SUB EBX,ESI
PUSH ESI
PUSH ECX
MOV dword ptr [ESP + 0x38],ECX
PUSH EBP
MOV EBP,EBX
CALL 0x000bfc80
MOV ECX,dword ptr [ESP + 0x38]
ADD ESP,0x1c
MOV EDX,dword ptr [ESP + 0x30]
ADD EBP,ECX
JMP 0x000c030b
CMP dword ptr [ESP + 0x20],ECX
JNZ 0x000c0476
JMP 0x000c04c7
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_000c00a0(void)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  char cVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 unaff_EBX;\n  undefined4 *puVar6;\n  undefined1 *puVar7;\n  undefined4 unaff_EBP;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 unaff_ESI;\n  undefined4 unaff_EDI;\n  undefined4 *puVar11;\n  \n  do {\n    *(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5;\n    iVar5 = *(int *)((int)register0x00000010 + -4);\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    puVar4 = *(undefined4 **)((int)register0x00000010 + 4);\n    *(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b;\n    iVar5 = *(int *)((int)register0x00000010 + 0x14);\n    iVar9 = *(int *)((int)register0x00000010 + 0x10);\n    puVar8 = *(undefined4 **)((int)register0x00000010 + 8);\n    *(undefined4 *)((int)register0x00000010 + -0x4c) =\n         *(undefined4 *)((int)register0x00000010 + 0xc);\n    iVar1 = *(int *)((int)register0x00000010 + 0x1c);\n    puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18);\n    *(int *)((int)register0x00000010 + -0x44) = iVar5;\n    *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x50) =\n         *(undefined4 *)((int)register0x00000010 + 0x20);\n    if (iVar1 < iVar5) {\n      iVar5 = iVar1;\n    }\n    if (iVar9 <= iVar5) {\n      iVar5 = (int)puVar8 - (int)puVar4;\n      if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar11 == puVar10) {\n        return;\n      }\n      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }\n      *(int *)((int)register0x00000010 + -100) = iVar5;\n      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;\n      memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) <= iVar1) {\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);\n      iVar5 = (int)puVar4 - (int)puVar8;\n      if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) < iVar9) {\n      *(int *)((int)register0x00000010 + -0x2c) = iVar1;\n      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(int *)((int)register0x00000010 + -0x70) = iVar5;\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;\n      FUN_000bfba0();\n      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);\n      iVar5 = *(int *)((int)register0x00000010 + -0x30);\n    }\n    else {\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }\n    iVar1 = *(int *)((int)register0x00000010 + -0x38);\n    *(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c);\n    if ((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)) {\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      puVar10 = puVar4;\n      if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }\n    }\n    else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }\n    uVar2 = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + -4) = uVar2;\n    *(int *)(puVar7 + -8) = iVar5;\n    *(int *)(puVar7 + 0xc) = iVar5;\n    *(undefined4 **)(puVar7 + -0xc) = puVar11;\n    iVar5 = *(int *)(puVar7 + 0x28);\n    *(int *)(puVar7 + -0x10) = iVar5;\n    *(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24);\n    *(undefined4 **)(puVar7 + -0x18) = puVar10;\n    *(undefined4 **)(puVar7 + -0x1c) = puVar4;\n    *(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14);\n    *(undefined4 *)(puVar7 + -0x24) = 0xc032a;\n    FUN_000c00a0();\n    *(undefined4 *)(puVar7 + 0x7c) = uVar2;\n    *(undefined4 **)(puVar7 + 0x74) = puVar11;\n    *(undefined4 **)(puVar7 + 0x60) = puVar10;\n    *(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5;\n    *(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10);\n    *(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20);\n    unaff_EBX = *(undefined4 *)(puVar7 + 0x4c);\n    unaff_ESI = *(undefined4 *)(puVar7 + 0x50);\n    unaff_EDI = *(undefined4 *)(puVar7 + 0x54);\n    unaff_EBP = *(undefined4 *)(puVar7 + 0x58);\n    register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c);\n  } while( true );\n}\n\n" comment (function_definition "void FUN_000c00a0(void)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  char cVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 unaff_EBX;\n  undefined4 *puVar6;\n  undefined1 *puVar7;\n  undefined4 unaff_EBP;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 unaff_ESI;\n  undefined4 unaff_EDI;\n  undefined4 *puVar11;\n  \n  do {\n    *(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5;\n    iVar5 = *(int *)((int)register0x00000010 + -4);\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    puVar4 = *(undefined4 **)((int)register0x00000010 + 4);\n    *(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b;\n    iVar5 = *(int *)((int)register0x00000010 + 0x14);\n    iVar9 = *(int *)((int)register0x00000010 + 0x10);\n    puVar8 = *(undefined4 **)((int)register0x00000010 + 8);\n    *(undefined4 *)((int)register0x00000010 + -0x4c) =\n         *(undefined4 *)((int)register0x00000010 + 0xc);\n    iVar1 = *(int *)((int)register0x00000010 + 0x1c);\n    puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18);\n    *(int *)((int)register0x00000010 + -0x44) = iVar5;\n    *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x50) =\n         *(undefined4 *)((int)register0x00000010 + 0x20);\n    if (iVar1 < iVar5) {\n      iVar5 = iVar1;\n    }\n    if (iVar9 <= iVar5) {\n      iVar5 = (int)puVar8 - (int)puVar4;\n      if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar11 == puVar10) {\n        return;\n      }\n      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }\n      *(int *)((int)register0x00000010 + -100) = iVar5;\n      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;\n      memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) <= iVar1) {\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);\n      iVar5 = (int)puVar4 - (int)puVar8;\n      if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) < iVar9) {\n      *(int *)((int)register0x00000010 + -0x2c) = iVar1;\n      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(int *)((int)register0x00000010 + -0x70) = iVar5;\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;\n      FUN_000bfba0();\n      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);\n      iVar5 = *(int *)((int)register0x00000010 + -0x30);\n    }\n    else {\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }\n    iVar1 = *(int *)((int)register0x00000010 + -0x38);\n    *(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c);\n    if ((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)) {\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      puVar10 = puVar4;\n      if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }\n    }\n    else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }\n    uVar2 = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + -4) = uVar2;\n    *(int *)(puVar7 + -8) = iVar5;\n    *(int *)(puVar7 + 0xc) = iVar5;\n    *(undefined4 **)(puVar7 + -0xc) = puVar11;\n    iVar5 = *(int *)(puVar7 + 0x28);\n    *(int *)(puVar7 + -0x10) = iVar5;\n    *(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24);\n    *(undefined4 **)(puVar7 + -0x18) = puVar10;\n    *(undefined4 **)(puVar7 + -0x1c) = puVar4;\n    *(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14);\n    *(undefined4 *)(puVar7 + -0x24) = 0xc032a;\n    FUN_000c00a0();\n    *(undefined4 *)(puVar7 + 0x7c) = uVar2;\n    *(undefined4 **)(puVar7 + 0x74) = puVar11;\n    *(undefined4 **)(puVar7 + 0x60) = puVar10;\n    *(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5;\n    *(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10);\n    *(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20);\n    unaff_EBX = *(undefined4 *)(puVar7 + 0x4c);\n    unaff_ESI = *(undefined4 *)(puVar7 + 0x50);\n    unaff_EDI = *(undefined4 *)(puVar7 + 0x54);\n    unaff_EBP = *(undefined4 *)(puVar7 + 0x58);\n    register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c);\n  } while( true );\n}" primitive_type (function_declarator "FUN_000c00a0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  char cVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 unaff_EBX;\n  undefined4 *puVar6;\n  undefined1 *puVar7;\n  undefined4 unaff_EBP;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 unaff_ESI;\n  undefined4 unaff_EDI;\n  undefined4 *puVar11;\n  \n  do {\n    *(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5;\n    iVar5 = *(int *)((int)register0x00000010 + -4);\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    puVar4 = *(undefined4 **)((int)register0x00000010 + 4);\n    *(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b;\n    iVar5 = *(int *)((int)register0x00000010 + 0x14);\n    iVar9 = *(int *)((int)register0x00000010 + 0x10);\n    puVar8 = *(undefined4 **)((int)register0x00000010 + 8);\n    *(undefined4 *)((int)register0x00000010 + -0x4c) =\n         *(undefined4 *)((int)register0x00000010 + 0xc);\n    iVar1 = *(int *)((int)register0x00000010 + 0x1c);\n    puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18);\n    *(int *)((int)register0x00000010 + -0x44) = iVar5;\n    *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x50) =\n         *(undefined4 *)((int)register0x00000010 + 0x20);\n    if (iVar1 < iVar5) {\n      iVar5 = iVar1;\n    }\n    if (iVar9 <= iVar5) {\n      iVar5 = (int)puVar8 - (int)puVar4;\n      if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar11 == puVar10) {\n        return;\n      }\n      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }\n      *(int *)((int)register0x00000010 + -100) = iVar5;\n      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;\n      memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) <= iVar1) {\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);\n      iVar5 = (int)puVar4 - (int)puVar8;\n      if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) < iVar9) {\n      *(int *)((int)register0x00000010 + -0x2c) = iVar1;\n      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(int *)((int)register0x00000010 + -0x70) = iVar5;\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;\n      FUN_000bfba0();\n      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);\n      iVar5 = *(int *)((int)register0x00000010 + -0x30);\n    }\n    else {\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }\n    iVar1 = *(int *)((int)register0x00000010 + -0x38);\n    *(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c);\n    if ((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)) {\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      puVar10 = puVar4;\n      if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }\n    }\n    else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }\n    uVar2 = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + -4) = uVar2;\n    *(int *)(puVar7 + -8) = iVar5;\n    *(int *)(puVar7 + 0xc) = iVar5;\n    *(undefined4 **)(puVar7 + -0xc) = puVar11;\n    iVar5 = *(int *)(puVar7 + 0x28);\n    *(int *)(puVar7 + -0x10) = iVar5;\n    *(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24);\n    *(undefined4 **)(puVar7 + -0x18) = puVar10;\n    *(undefined4 **)(puVar7 + -0x1c) = puVar4;\n    *(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14);\n    *(undefined4 *)(puVar7 + -0x24) = 0xc032a;\n    FUN_000c00a0();\n    *(undefined4 *)(puVar7 + 0x7c) = uVar2;\n    *(undefined4 **)(puVar7 + 0x74) = puVar11;\n    *(undefined4 **)(puVar7 + 0x60) = puVar10;\n    *(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5;\n    *(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10);\n    *(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20);\n    unaff_EBX = *(undefined4 *)(puVar7 + 0x4c);\n    unaff_ESI = *(undefined4 *)(puVar7 + 0x50);\n    unaff_EDI = *(undefined4 *)(puVar7 + 0x54);\n    unaff_EBP = *(undefined4 *)(puVar7 + 0x58);\n    register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c);\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 unaff_EBX;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 unaff_EBP;" type_identifier identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 unaff_ESI;" type_identifier identifier ;) (declaration "undefined4 unaff_EDI;" type_identifier identifier ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (do_statement "do {\n    *(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5;\n    iVar5 = *(int *)((int)register0x00000010 + -4);\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    puVar4 = *(undefined4 **)((int)register0x00000010 + 4);\n    *(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b;\n    iVar5 = *(int *)((int)register0x00000010 + 0x14);\n    iVar9 = *(int *)((int)register0x00000010 + 0x10);\n    puVar8 = *(undefined4 **)((int)register0x00000010 + 8);\n    *(undefined4 *)((int)register0x00000010 + -0x4c) =\n         *(undefined4 *)((int)register0x00000010 + 0xc);\n    iVar1 = *(int *)((int)register0x00000010 + 0x1c);\n    puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18);\n    *(int *)((int)register0x00000010 + -0x44) = iVar5;\n    *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x50) =\n         *(undefined4 *)((int)register0x00000010 + 0x20);\n    if (iVar1 < iVar5) {\n      iVar5 = iVar1;\n    }\n    if (iVar9 <= iVar5) {\n      iVar5 = (int)puVar8 - (int)puVar4;\n      if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar11 == puVar10) {\n        return;\n      }\n      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }\n      *(int *)((int)register0x00000010 + -100) = iVar5;\n      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;\n      memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) <= iVar1) {\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);\n      iVar5 = (int)puVar4 - (int)puVar8;\n      if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) < iVar9) {\n      *(int *)((int)register0x00000010 + -0x2c) = iVar1;\n      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(int *)((int)register0x00000010 + -0x70) = iVar5;\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;\n      FUN_000bfba0();\n      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);\n      iVar5 = *(int *)((int)register0x00000010 + -0x30);\n    }\n    else {\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }\n    iVar1 = *(int *)((int)register0x00000010 + -0x38);\n    *(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c);\n    if ((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)) {\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      puVar10 = puVar4;\n      if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }\n    }\n    else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }\n    uVar2 = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + -4) = uVar2;\n    *(int *)(puVar7 + -8) = iVar5;\n    *(int *)(puVar7 + 0xc) = iVar5;\n    *(undefined4 **)(puVar7 + -0xc) = puVar11;\n    iVar5 = *(int *)(puVar7 + 0x28);\n    *(int *)(puVar7 + -0x10) = iVar5;\n    *(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24);\n    *(undefined4 **)(puVar7 + -0x18) = puVar10;\n    *(undefined4 **)(puVar7 + -0x1c) = puVar4;\n    *(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14);\n    *(undefined4 *)(puVar7 + -0x24) = 0xc032a;\n    FUN_000c00a0();\n    *(undefined4 *)(puVar7 + 0x7c) = uVar2;\n    *(undefined4 **)(puVar7 + 0x74) = puVar11;\n    *(undefined4 **)(puVar7 + 0x60) = puVar10;\n    *(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5;\n    *(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10);\n    *(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20);\n    unaff_EBX = *(undefined4 *)(puVar7 + 0x4c);\n    unaff_ESI = *(undefined4 *)(puVar7 + 0x50);\n    unaff_EDI = *(undefined4 *)(puVar7 + 0x54);\n    unaff_EBP = *(undefined4 *)(puVar7 + 0x58);\n    register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c);\n  } while( true );" do (compound_statement "{\n    *(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5;\n    iVar5 = *(int *)((int)register0x00000010 + -4);\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    puVar4 = *(undefined4 **)((int)register0x00000010 + 4);\n    *(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b;\n    iVar5 = *(int *)((int)register0x00000010 + 0x14);\n    iVar9 = *(int *)((int)register0x00000010 + 0x10);\n    puVar8 = *(undefined4 **)((int)register0x00000010 + 8);\n    *(undefined4 *)((int)register0x00000010 + -0x4c) =\n         *(undefined4 *)((int)register0x00000010 + 0xc);\n    iVar1 = *(int *)((int)register0x00000010 + 0x1c);\n    puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18);\n    *(int *)((int)register0x00000010 + -0x44) = iVar5;\n    *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x50) =\n         *(undefined4 *)((int)register0x00000010 + 0x20);\n    if (iVar1 < iVar5) {\n      iVar5 = iVar1;\n    }\n    if (iVar9 <= iVar5) {\n      iVar5 = (int)puVar8 - (int)puVar4;\n      if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar11 == puVar10) {\n        return;\n      }\n      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }\n      *(int *)((int)register0x00000010 + -100) = iVar5;\n      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;\n      memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) <= iVar1) {\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);\n      iVar5 = (int)puVar4 - (int)puVar8;\n      if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) < iVar9) {\n      *(int *)((int)register0x00000010 + -0x2c) = iVar1;\n      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(int *)((int)register0x00000010 + -0x70) = iVar5;\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;\n      FUN_000bfba0();\n      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);\n      iVar5 = *(int *)((int)register0x00000010 + -0x30);\n    }\n    else {\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }\n    iVar1 = *(int *)((int)register0x00000010 + -0x38);\n    *(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c);\n    if ((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)) {\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      puVar10 = puVar4;\n      if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }\n    }\n    else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }\n    uVar2 = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + -4) = uVar2;\n    *(int *)(puVar7 + -8) = iVar5;\n    *(int *)(puVar7 + 0xc) = iVar5;\n    *(undefined4 **)(puVar7 + -0xc) = puVar11;\n    iVar5 = *(int *)(puVar7 + 0x28);\n    *(int *)(puVar7 + -0x10) = iVar5;\n    *(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24);\n    *(undefined4 **)(puVar7 + -0x18) = puVar10;\n    *(undefined4 **)(puVar7 + -0x1c) = puVar4;\n    *(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14);\n    *(undefined4 *)(puVar7 + -0x24) = 0xc032a;\n    FUN_000c00a0();\n    *(undefined4 *)(puVar7 + 0x7c) = uVar2;\n    *(undefined4 **)(puVar7 + 0x74) = puVar11;\n    *(undefined4 **)(puVar7 + 0x60) = puVar10;\n    *(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5;\n    *(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10);\n    *(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20);\n    unaff_EBX = *(undefined4 *)(puVar7 + 0x4c);\n    unaff_ESI = *(undefined4 *)(puVar7 + 0x50);\n    unaff_EDI = *(undefined4 *)(puVar7 + 0x54);\n    unaff_EBP = *(undefined4 *)(puVar7 + 0x58);\n    register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c);\n  }" { (expression_statement "*(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -4)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -4)" ( (binary_expression "(int)register0x00000010 + -4" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -4);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -4)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -4)" * (cast_expression "(int *)((int)register0x00000010 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -4)" ( (binary_expression "(int)register0x00000010 + -4" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -4)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -4)" ( (binary_expression "(int)register0x00000010 + -4" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -8)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -8)" ( (binary_expression "(int)register0x00000010 + -8" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0xc)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0xc)" ( (binary_expression "(int)register0x00000010 + -0xc" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x10)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x10)" ( (binary_expression "(int)register0x00000010 + -0x10" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + 4);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + 4)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + 4)" * (cast_expression "(undefined4 **)((int)register0x00000010 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + 4)" ( (binary_expression "(int)register0x00000010 + 4" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b;" (assignment_expression "*(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b" (pointer_expression "*(int *)((int)register0x00000010 + -0x40)" * (cast_expression "(int *)((int)register0x00000010 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "iVar5 + 0x2e9f5b" identifier + number_literal)) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + 0x14);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + 0x14)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + 0x14)" * (cast_expression "(int *)((int)register0x00000010 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + 0x14)" ( (binary_expression "(int)register0x00000010 + 0x14" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)((int)register0x00000010 + 0x10);" (assignment_expression "iVar9 = *(int *)((int)register0x00000010 + 0x10)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + 0x10)" * (cast_expression "(int *)((int)register0x00000010 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + 0x10)" ( (binary_expression "(int)register0x00000010 + 0x10" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar8 = *(undefined4 **)((int)register0x00000010 + 8);" (assignment_expression "puVar8 = *(undefined4 **)((int)register0x00000010 + 8)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + 8)" * (cast_expression "(undefined4 **)((int)register0x00000010 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + 8)" ( (binary_expression "(int)register0x00000010 + 8" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x4c) =\n         *(undefined4 *)((int)register0x00000010 + 0xc);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x4c) =\n         *(undefined4 *)((int)register0x00000010 + 0xc)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x4c)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x4c)" ( (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + 0xc)" * (cast_expression "(undefined4 *)((int)register0x00000010 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + 0xc)" ( (binary_expression "(int)register0x00000010 + 0xc" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar1 = *(int *)((int)register0x00000010 + 0x1c);" (assignment_expression "iVar1 = *(int *)((int)register0x00000010 + 0x1c)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + 0x1c)" * (cast_expression "(int *)((int)register0x00000010 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + 0x1c)" ( (binary_expression "(int)register0x00000010 + 0x1c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18);" (assignment_expression "puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + 0x18)" * (cast_expression "(undefined4 **)((int)register0x00000010 + 0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + 0x18)" ( (binary_expression "(int)register0x00000010 + 0x18" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x44) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x44) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" * (cast_expression "(int *)((int)register0x00000010 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x48) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x48)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x48)" ( (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x50) =\n         *(undefined4 *)((int)register0x00000010 + 0x20);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x50) =\n         *(undefined4 *)((int)register0x00000010 + 0x20)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x50)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x50)" ( (binary_expression "(int)register0x00000010 + -0x50" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + 0x20)" * (cast_expression "(undefined4 *)((int)register0x00000010 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + 0x20)" ( (binary_expression "(int)register0x00000010 + 0x20" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (iVar1 < iVar5) {\n      iVar5 = iVar1;\n    }" if (parenthesized_expression "(iVar1 < iVar5)" ( (binary_expression "iVar1 < iVar5" identifier < identifier) )) (compound_statement "{\n      iVar5 = iVar1;\n    }" { (expression_statement "iVar5 = iVar1;" (assignment_expression "iVar5 = iVar1" identifier = identifier) ;) })) (if_statement "if (iVar9 <= iVar5) {\n      iVar5 = (int)puVar8 - (int)puVar4;\n      if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar11 == puVar10) {\n        return;\n      }\n      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }\n      *(int *)((int)register0x00000010 + -100) = iVar5;\n      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;\n      memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));\n      return;\n    }" if (parenthesized_expression "(iVar9 <= iVar5)" ( (binary_expression "iVar9 <= iVar5" identifier <= identifier) )) (compound_statement "{\n      iVar5 = (int)puVar8 - (int)puVar4;\n      if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar11 == puVar10) {\n        return;\n      }\n      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }\n      *(int *)((int)register0x00000010 + -100) = iVar5;\n      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;\n      memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));\n      return;\n    }" { (expression_statement "iVar5 = (int)puVar8 - (int)puVar4;" (assignment_expression "iVar5 = (int)puVar8 - (int)puVar4" identifier = (binary_expression "(int)puVar8 - (int)puVar4" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }" if (parenthesized_expression "(puVar8 != puVar4)" ( (binary_expression "puVar8 != puVar4" identifier != identifier) )) (compound_statement "{\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }" { (expression_statement "*(int *)((int)register0x00000010 + -100) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -100) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -100)" * (cast_expression "(int *)((int)register0x00000010 + -100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x44) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x44) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" * (cast_expression "(int *)((int)register0x00000010 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x68)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x68)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x48) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x48)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x48)" ( (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x68)" * (cast_expression "(void **)((int)register0x00000010 + -0x68)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -100)" * (cast_expression "(size_t *)((int)register0x00000010 + -100)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x44);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x44)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" * (cast_expression "(int *)((int)register0x00000010 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x48)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x48)" ( (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "puVar10 = (undefined4 *)((int)puVar11 + iVar5);" (assignment_expression "puVar10 = (undefined4 *)((int)puVar11 + iVar5)" identifier = (cast_expression "(undefined4 *)((int)puVar11 + iVar5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + iVar5)" ( (binary_expression "(int)puVar11 + iVar5" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (puVar11 == puVar10) {\n        return;\n      }" if (parenthesized_expression "(puVar11 == puVar10)" ( (binary_expression "puVar11 == puVar10" identifier == identifier) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (if_statement "if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }" if (parenthesized_expression "(*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8)" ( (binary_expression "*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x4c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x4c)" ( (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }" { (do_statement "do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);" do (compound_statement "{\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        }" { (expression_statement "*(undefined4 *)((int)register0x00000010 + -100) = *puVar11;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -100) = *puVar11" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -100)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x68)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x50)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x50)" ( (binary_expression "(int)register0x00000010 + -0x50" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "cVar3 = FUN_000aa8c0();" (assignment_expression "cVar3 = FUN_000aa8c0()" identifier = (call_expression "FUN_000aa8c0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }" { (expression_statement "uVar2 = *puVar11;" (assignment_expression "uVar2 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) (expression_statement "*puVar4 = uVar2;" (assignment_expression "*puVar4 = uVar2" (pointer_expression "*puVar4" * identifier) = identifier) ;) }) (else_clause "else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }" else (compound_statement "{\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }" { (expression_statement "uVar2 = *puVar8;" (assignment_expression "uVar2 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar8 = puVar8 + 1;" (assignment_expression "puVar8 = puVar8 + 1" identifier = (binary_expression "puVar8 + 1" identifier + number_literal)) ;) (expression_statement "*puVar4 = uVar2;" (assignment_expression "*puVar4 = uVar2" (pointer_expression "*puVar4" * identifier) = identifier) ;) }))) (if_statement "if (puVar10 == puVar11) {\n            return;\n          }" if (parenthesized_expression "(puVar10 == puVar11)" ( (binary_expression "puVar10 == puVar11" identifier == identifier) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8)" ( (binary_expression "*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x4c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x4c)" ( (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != identifier) )) ;) (expression_statement "iVar5 = (int)puVar10 - (int)puVar11;" (assignment_expression "iVar5 = (int)puVar10 - (int)puVar11" identifier = (binary_expression "(int)puVar10 - (int)puVar11" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (expression_statement "*(int *)((int)register0x00000010 + -100) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -100) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -100)" * (cast_expression "(int *)((int)register0x00000010 + -100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x68)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x68)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x68)" * (cast_expression "(void **)((int)register0x00000010 + -0x68)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -100)" * (cast_expression "(size_t *)((int)register0x00000010 + -100)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (*(int *)((int)register0x00000010 + -0x44) <= iVar1) {\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);\n      iVar5 = (int)puVar4 - (int)puVar8;\n      if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }\n      return;\n    }" if (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x44) <= iVar1)" ( (binary_expression "*(int *)((int)register0x00000010 + -0x44) <= iVar1" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" * (cast_expression "(int *)((int)register0x00000010 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) <= identifier) )) (compound_statement "{\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);\n      iVar5 = (int)puVar4 - (int)puVar8;\n      if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }\n      return;\n    }" { (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x4c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x4c)" ( (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar5 = (int)puVar4 - (int)puVar8;" (assignment_expression "iVar5 = (int)puVar4 - (int)puVar8" identifier = (binary_expression "(int)puVar4 - (int)puVar8" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }" if (parenthesized_expression "(puVar4 != puVar8)" ( (binary_expression "puVar4 != puVar8" identifier != identifier) )) (compound_statement "{\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }" { (expression_statement "*(int *)((int)register0x00000010 + -100) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -100) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -100)" * (cast_expression "(int *)((int)register0x00000010 + -100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x44) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x44) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" * (cast_expression "(int *)((int)register0x00000010 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x68)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x68)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x68)" * (cast_expression "(void **)((int)register0x00000010 + -0x68)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -100)" * (cast_expression "(size_t *)((int)register0x00000010 + -100)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x44);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x44)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" * (cast_expression "(int *)((int)register0x00000010 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "puVar10 = (undefined4 *)((int)puVar11 + iVar5);" (assignment_expression "puVar10 = (undefined4 *)((int)puVar11 + iVar5)" identifier = (cast_expression "(undefined4 *)((int)puVar11 + iVar5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + iVar5)" ( (binary_expression "(int)puVar11 + iVar5" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }" if (parenthesized_expression "(puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48))" ( (binary_expression "puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)" identifier == (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x48)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x48)" ( (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }" { (if_statement "if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }" if (parenthesized_expression "(puVar11 != puVar10)" ( (binary_expression "puVar11 != puVar10" identifier != identifier) )) (compound_statement "{\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }" { (expression_statement "*(int *)((int)register0x00000010 + -100) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -100) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -100)" * (cast_expression "(int *)((int)register0x00000010 + -100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x68)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x68)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x6c)" * (cast_expression "(int *)((int)register0x00000010 + -0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x4c) - iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x4c)" * (cast_expression "(int *)((int)register0x00000010 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x4c)" ( (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - identifier)) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x68)" * (cast_expression "(void **)((int)register0x00000010 + -0x68)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -100)" * (cast_expression "(size_t *)((int)register0x00000010 + -100)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) }) (else_clause "else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }" else (if_statement "if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }" if (parenthesized_expression "(puVar11 != puVar10)" ( (binary_expression "puVar11 != puVar10" identifier != identifier) )) (compound_statement "{\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }" { (expression_statement "puVar8 = puVar8 + -1;" (assignment_expression "puVar8 = puVar8 + -1" identifier = (binary_expression "puVar8 + -1" identifier + number_literal)) ;) (do_statement "do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);" do (compound_statement "{\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        }" { (expression_statement "puVar6 = puVar10 + -1;" (assignment_expression "puVar6 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;) (while_statement "while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }" { (expression_statement "*(undefined4 *)((int)register0x00000010 + -100) = *puVar8;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -100) = *puVar8" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -100)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar4 = puVar4 + -1;" (assignment_expression "puVar4 = puVar4 + -1" identifier = (binary_expression "puVar4 + -1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x68)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x50)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x50)" ( (binary_expression "(int)register0x00000010 + -0x50" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "cVar3 = FUN_000aa8c0();" (assignment_expression "cVar3 = FUN_000aa8c0()" identifier = (call_expression "FUN_000aa8c0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar3 == '\0') break;" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "*puVar4 = *puVar8;" (assignment_expression "*puVar4 = *puVar8" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar8" * identifier)) ;) (if_statement "if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }" if (parenthesized_expression "(puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48))" ( (binary_expression "puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)" identifier == (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x48)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x48)" ( (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }" { (if_statement "if (puVar11 == puVar10) {\n                return;\n              }" if (parenthesized_expression "(puVar11 == puVar10)" ( (binary_expression "puVar11 == puVar10" identifier == identifier) )) (compound_statement "{\n                return;\n              }" { (return_statement "return;" return ;) })) (expression_statement "*(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;" (assignment_expression "*(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11" (pointer_expression "*(int *)((int)register0x00000010 + -100)" * (cast_expression "(int *)((int)register0x00000010 + -100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)puVar10 - (int)puVar11" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x68)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x68)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);" (assignment_expression "*(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11)" (pointer_expression "*(int *)((int)register0x00000010 + -0x6c)" * (cast_expression "(int *)((int)register0x00000010 + -0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)puVar4 - ((int)puVar10 - (int)puVar11)" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (parenthesized_expression "((int)puVar10 - (int)puVar11)" ( (binary_expression "(int)puVar10 - (int)puVar11" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x68)" * (cast_expression "(void **)((int)register0x00000010 + -0x68)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -100)" * (cast_expression "(size_t *)((int)register0x00000010 + -100)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (return_statement "return;" return ;) })) (expression_statement "puVar8 = puVar8 + -1;" (assignment_expression "puVar8 = puVar8 + -1" identifier = (binary_expression "puVar8 + -1" identifier + number_literal)) ;) })) (expression_statement "*puVar4 = *puVar6;" (assignment_expression "*puVar4 = *puVar6" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar10 = puVar6;" (assignment_expression "puVar10 = puVar6" identifier = identifier) ;) }) while (parenthesized_expression "(puVar11 != puVar6)" ( (binary_expression "puVar11 != puVar6" identifier != identifier) )) ;) })))) (return_statement "return;" return ;) })) (if_statement "if (*(int *)((int)register0x00000010 + -0x44) < iVar9) {\n      *(int *)((int)register0x00000010 + -0x2c) = iVar1;\n      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(int *)((int)register0x00000010 + -0x70) = iVar5;\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;\n      FUN_000bfba0();\n      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);\n      iVar5 = *(int *)((int)register0x00000010 + -0x30);\n    }\n    else {\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }" if (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x44) < iVar9)" ( (binary_expression "*(int *)((int)register0x00000010 + -0x44) < iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" * (cast_expression "(int *)((int)register0x00000010 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) < identifier) )) (compound_statement "{\n      *(int *)((int)register0x00000010 + -0x2c) = iVar1;\n      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(int *)((int)register0x00000010 + -0x70) = iVar5;\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;\n      FUN_000bfba0();\n      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);\n      iVar5 = *(int *)((int)register0x00000010 + -0x30);\n    }" { (expression_statement "*(int *)((int)register0x00000010 + -0x2c) = iVar1;" (assignment_expression "*(int *)((int)register0x00000010 + -0x2c) = iVar1" (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" * (cast_expression "(int *)((int)register0x00000010 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;" (assignment_expression "*(int *)((int)register0x00000010 + -0x38) = iVar9 / 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x38)" * (cast_expression "(int *)((int)register0x00000010 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x38)" ( (binary_expression "(int)register0x00000010 + -0x38" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "iVar9 / 2" identifier / number_literal)) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4" identifier = (binary_expression "*(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4" (pointer_expression "*(int *)((int)register0x00000010 + -0x48)" * (cast_expression "(int *)((int)register0x00000010 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x48)" ( (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + (binary_expression "(iVar9 / 2) * 4" (parenthesized_expression "(iVar9 / 2)" ( (binary_expression "iVar9 / 2" identifier / number_literal) )) * number_literal))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x50)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x50)" ( (binary_expression "(int)register0x00000010 + -0x50" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x70) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x70) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x70)" * (cast_expression "(int *)((int)register0x00000010 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x30) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x30) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x30)" * (cast_expression "(int *)((int)register0x00000010 + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x74)" ( (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x4c)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x4c)" ( (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x78) = puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x78)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x78)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x78)" ( (binary_expression "(int)register0x00000010 + -0x78" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);" (assignment_expression "*(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20)" (pointer_expression "*(undefined1 **)((int)register0x00000010 + -0x7c)" * (cast_expression "(undefined1 **)((int)register0x00000010 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x7c)" ( (binary_expression "(int)register0x00000010 + -0x7c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(undefined1 *)((int)register0x00000010 + -0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x20)" ( (binary_expression "(int)register0x00000010 + -0x20" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x80)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x80)" ( (binary_expression "(int)register0x00000010 + -0x80" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000bfba0();" (call_expression "FUN_000bfba0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);" (assignment_expression "*(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24)" (pointer_expression "*(int *)((int)register0x00000010 + -0x40)" * (cast_expression "(int *)((int)register0x00000010 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(int *)((int)register0x00000010 + -0x24)" * (cast_expression "(int *)((int)register0x00000010 + -0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x24)" ( (binary_expression "(int)register0x00000010 + -0x24" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;" (assignment_expression "*(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x38)" * (cast_expression "(int *)((int)register0x00000010 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x38)" ( (binary_expression "(int)register0x00000010 + -0x38" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2" (binary_expression "*(int *)((int)register0x00000010 + -0x24) - (int)puVar8" (pointer_expression "*(int *)((int)register0x00000010 + -0x24)" * (cast_expression "(int *)((int)register0x00000010 + -0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x24)" ( (binary_expression "(int)register0x00000010 + -0x24" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x34)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x34)" ( (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x30);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x30)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x30)" * (cast_expression "(int *)((int)register0x00000010 + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }" else (compound_statement "{\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }" { (expression_statement "*(int *)((int)register0x00000010 + -0x30) = iVar1;" (assignment_expression "*(int *)((int)register0x00000010 + -0x30) = iVar1" (pointer_expression "*(int *)((int)register0x00000010 + -0x30)" * (cast_expression "(int *)((int)register0x00000010 + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;" (assignment_expression "*(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x34)" * (cast_expression "(int *)((int)register0x00000010 + -0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x34)" ( (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x44) / 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" * (cast_expression "(int *)((int)register0x00000010 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) / number_literal)) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x3c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x3c)" ( (binary_expression "(int)register0x00000010 + -0x3c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2" identifier + (binary_expression "*(int *)((int)register0x00000010 + -0x44) / 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" * (cast_expression "(int *)((int)register0x00000010 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) / number_literal))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x50)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x50)" ( (binary_expression "(int)register0x00000010 + -0x50" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2" identifier + (binary_expression "*(int *)((int)register0x00000010 + -0x44) / 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" * (cast_expression "(int *)((int)register0x00000010 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) / number_literal))) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x74) = puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x74)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x74)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x74)" ( (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x78)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x78)" ( (binary_expression "(int)register0x00000010 + -0x78" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x48)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x48)" ( (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);" (assignment_expression "*(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20)" (pointer_expression "*(undefined1 **)((int)register0x00000010 + -0x7c)" * (cast_expression "(undefined1 **)((int)register0x00000010 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x7c)" ( (binary_expression "(int)register0x00000010 + -0x7c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(undefined1 *)((int)register0x00000010 + -0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x20)" ( (binary_expression "(int)register0x00000010 + -0x20" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x80)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x80)" ( (binary_expression "(int)register0x00000010 + -0x80" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000bfc10();" (call_expression "FUN_000bfc10()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x24)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x24)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x24)" ( (binary_expression "(int)register0x00000010 + -0x24" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;" (assignment_expression "*(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x3c)" * (cast_expression "(int *)((int)register0x00000010 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x3c)" ( (binary_expression "(int)register0x00000010 + -0x3c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2" (binary_expression "(int)puVar4 - *(int *)((int)register0x00000010 + -0x4c)" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)((int)register0x00000010 + -0x4c)" * (cast_expression "(int *)((int)register0x00000010 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x4c)" ( (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) >> number_literal)) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x34);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x34)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x34)" * (cast_expression "(int *)((int)register0x00000010 + -0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x34)" ( (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (expression_statement "iVar1 = *(int *)((int)register0x00000010 + -0x38);" (assignment_expression "iVar1 = *(int *)((int)register0x00000010 + -0x38)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x38)" * (cast_expression "(int *)((int)register0x00000010 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x38)" ( (binary_expression "(int)register0x00000010 + -0x38" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c);" (assignment_expression "*(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c)" (pointer_expression "*(int *)((int)register0x00000010 + -0x34)" * (cast_expression "(int *)((int)register0x00000010 + -0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x34)" ( (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "iVar9 - *(int *)((int)register0x00000010 + -0x3c)" identifier - (pointer_expression "*(int *)((int)register0x00000010 + -0x3c)" * (cast_expression "(int *)((int)register0x00000010 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x3c)" ( (binary_expression "(int)register0x00000010 + -0x3c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if ((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)) {\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      puVar10 = puVar4;\n      if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }\n    }\n    else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }" if (parenthesized_expression "((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5))" ( (binary_expression "(iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)" (parenthesized_expression "(iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c))" ( (binary_expression "iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)" identifier < (binary_expression "iVar9 - *(int *)((int)register0x00000010 + -0x3c)" identifier - (pointer_expression "*(int *)((int)register0x00000010 + -0x3c)" * (cast_expression "(int *)((int)register0x00000010 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x3c)" ( (binary_expression "(int)register0x00000010 + -0x3c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) )) && (parenthesized_expression "(iVar1 <= iVar5)" ( (binary_expression "iVar1 <= iVar5" identifier <= identifier) ))) )) (compound_statement "{\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      puVar10 = puVar4;\n      if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }\n    }" { (expression_statement "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);" (assignment_expression "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60)" identifier = (cast_expression "(undefined1 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x60)" ( (binary_expression "(int)register0x00000010 + -0x60" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar10 = puVar4;" (assignment_expression "puVar10 = puVar4" identifier = identifier) ;) (if_statement "if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }" { (expression_statement "iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;" (assignment_expression "iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8" identifier = (binary_expression "(int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8" (cast_expression "(int)*(undefined4 **)((int)register0x00000010 + -0x40)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x40)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }" if (parenthesized_expression "(*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8)" ( (binary_expression "*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x40)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }" { (if_statement "if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;" if (parenthesized_expression "(puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40))" ( (binary_expression "puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)" identifier != (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x40)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (goto_statement "goto LAB_000c02b9;" goto statement_identifier ;)) (expression_statement "puVar10 = (undefined4 *)(iVar9 + (int)puVar4);" (assignment_expression "puVar10 = (undefined4 *)(iVar9 + (int)puVar4)" identifier = (cast_expression "(undefined4 *)(iVar9 + (int)puVar4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + (int)puVar4)" ( (binary_expression "iVar9 + (int)puVar4" identifier + (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);" (assignment_expression "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60)" identifier = (cast_expression "(undefined1 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x60)" ( (binary_expression "(int)register0x00000010 + -0x60" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }" else (compound_statement "{\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }" { (expression_statement "*(int *)((int)register0x00000010 + -0x2c) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x2c) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" * (cast_expression "(int *)((int)register0x00000010 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x30) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x68) = iVar9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x68) = iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x68)" * (cast_expression "(int *)((int)register0x00000010 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x74)" ( (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x70)" * (cast_expression "(void **)((int)register0x00000010 + -0x70)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x68)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x68)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x2c);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x2c)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" * (cast_expression "(int *)((int)register0x00000010 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }" if (parenthesized_expression "(puVar4 != puVar8)" ( (binary_expression "puVar4 != puVar8" identifier != identifier) )) (compound_statement "{\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }" { (labeled_statement "LAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;" statement_identifier : (expression_statement "*(int *)((int)register0x00000010 + -0x2c) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x2c) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" * (cast_expression "(int *)((int)register0x00000010 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;" (assignment_expression "*(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4" (pointer_expression "*(int *)((int)register0x00000010 + -0x68)" * (cast_expression "(int *)((int)register0x00000010 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)puVar8 - (int)puVar4" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x30) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);" (assignment_expression "*(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4)" (pointer_expression "*(int *)((int)register0x00000010 + -0x70)" * (cast_expression "(int *)((int)register0x00000010 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4)" (pointer_expression "*(int *)((int)register0x00000010 + -0x40)" * (cast_expression "(int *)((int)register0x00000010 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - (parenthesized_expression "((int)puVar8 - (int)puVar4)" ( (binary_expression "(int)puVar8 - (int)puVar4" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x74)" ( (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x70)" * (cast_expression "(void **)((int)register0x00000010 + -0x70)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x68)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x68)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x2c);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x2c)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" * (cast_expression "(int *)((int)register0x00000010 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (if_statement "if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }" { (expression_statement "*(int *)((int)register0x00000010 + -0x2c) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x2c) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" * (cast_expression "(int *)((int)register0x00000010 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x68) = iVar9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x68) = iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x68)" * (cast_expression "(int *)((int)register0x00000010 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x30) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x74)" ( (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x70)" * (cast_expression "(void **)((int)register0x00000010 + -0x70)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x68)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x68)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x2c);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x2c)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" * (cast_expression "(int *)((int)register0x00000010 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "puVar10 = (undefined4 *)(iVar9 + (int)puVar4);" (assignment_expression "puVar10 = (undefined4 *)(iVar9 + (int)puVar4)" identifier = (cast_expression "(undefined4 *)(iVar9 + (int)puVar4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + (int)puVar4)" ( (binary_expression "iVar9 + (int)puVar4" identifier + (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);" (assignment_expression "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60)" identifier = (cast_expression "(undefined1 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x60)" ( (binary_expression "(int)register0x00000010 + -0x60" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) })) }) (else_clause "else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }" else (if_statement "if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }" if (parenthesized_expression "(iVar5 < *(int *)((int)register0x00000010 + -0x34))" ( (binary_expression "iVar5 < *(int *)((int)register0x00000010 + -0x34)" identifier < (pointer_expression "*(int *)((int)register0x00000010 + -0x34)" * (cast_expression "(int *)((int)register0x00000010 + -0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x34)" ( (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }" { (expression_statement "*(int *)((int)register0x00000010 + -0x30) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x30) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x30)" * (cast_expression "(int *)((int)register0x00000010 + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = *(int *)((int)register0x00000010 + -0x40);" (assignment_expression "iVar9 = *(int *)((int)register0x00000010 + -0x40)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x40)" * (cast_expression "(int *)((int)register0x00000010 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x74) = iVar9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x74) = iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x74)" * (cast_expression "(int *)((int)register0x00000010 + -0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x74)" ( (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x78) = puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x78)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x78)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x78)" ( (binary_expression "(int)register0x00000010 + -0x78" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x7c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x7c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x7c)" ( (binary_expression "(int)register0x00000010 + -0x7c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x44) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x44)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);" (assignment_expression "*(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20)" (pointer_expression "*(undefined1 **)((int)register0x00000010 + -0x80)" * (cast_expression "(undefined1 **)((int)register0x00000010 + -0x80)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x80)" ( (binary_expression "(int)register0x00000010 + -0x80" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(undefined1 *)((int)register0x00000010 + -0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x20)" ( (binary_expression "(int)register0x00000010 + -0x20" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x84)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x84)" ( (binary_expression "(int)register0x00000010 + -0x84" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000bfc80();" (call_expression "FUN_000bfc80()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x48)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x48)" ( (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar7 = (undefined1 *)((int)register0x00000010 + -100);" (assignment_expression "puVar7 = (undefined1 *)((int)register0x00000010 + -100)" identifier = (cast_expression "(undefined1 *)((int)register0x00000010 + -100)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x34);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x34)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x34)" * (cast_expression "(int *)((int)register0x00000010 + -0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x34)" ( (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);" (assignment_expression "puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4)" identifier = (cast_expression "(undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar9 - (int)puVar8) + (int)puVar4)" ( (binary_expression "(iVar9 - (int)puVar8) + (int)puVar4" (parenthesized_expression "(iVar9 - (int)puVar8)" ( (binary_expression "iVar9 - (int)puVar8" identifier - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) + (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) (else_clause "else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }" else (compound_statement "{\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }" { (expression_statement "puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);" (assignment_expression "puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x40)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);" (assignment_expression "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60)" identifier = (cast_expression "(undefined1 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x60)" ( (binary_expression "(int)register0x00000010 + -0x60" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }" if (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x34) != 0)" ( (binary_expression "*(int *)((int)register0x00000010 + -0x34) != 0" (pointer_expression "*(int *)((int)register0x00000010 + -0x34)" * (cast_expression "(int *)((int)register0x00000010 + -0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x34)" ( (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }" { (expression_statement "iVar9 = (int)puVar8 - (int)puVar4;" (assignment_expression "iVar9 = (int)puVar8 - (int)puVar4" identifier = (binary_expression "(int)puVar8 - (int)puVar4" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x30)" * (cast_expression "(int *)((int)register0x00000010 + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)puVar10 - iVar9" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (if_statement "if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }" if (parenthesized_expression "(puVar4 == puVar8)" ( (binary_expression "puVar4 == puVar8" identifier == identifier) )) (compound_statement "{\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }" { (if_statement "if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;" if (parenthesized_expression "(*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4)" ( (binary_expression "*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x40)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != identifier) )) (goto_statement "goto LAB_000c0476;" goto statement_identifier ;)) }) (else_clause "else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }" else (compound_statement "{\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }" { (expression_statement "*(int *)((int)register0x00000010 + -0x28) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x28) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x28)" * (cast_expression "(int *)((int)register0x00000010 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x28)" ( (binary_expression "(int)register0x00000010 + -0x28" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x68) = iVar9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x68) = iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x68)" * (cast_expression "(int *)((int)register0x00000010 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x2c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x2c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x74)" ( (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x70)" * (cast_expression "(void **)((int)register0x00000010 + -0x70)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x68)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x68)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x2c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x2c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x28);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x28)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x28)" * (cast_expression "(int *)((int)register0x00000010 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x28)" ( (binary_expression "(int)register0x00000010 + -0x28" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }" if (parenthesized_expression "(*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8)" ( (binary_expression "*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x40)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != identifier) )) (compound_statement "{\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }" { (labeled_statement "LAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;" statement_identifier : (expression_statement "*(int *)((int)register0x00000010 + -0x28) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x28) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x28)" * (cast_expression "(int *)((int)register0x00000010 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x28)" ( (binary_expression "(int)register0x00000010 + -0x28" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;" (assignment_expression "*(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8" (pointer_expression "*(int *)((int)register0x00000010 + -0x68)" * (cast_expression "(int *)((int)register0x00000010 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x40) - (int)puVar8" (pointer_expression "*(int *)((int)register0x00000010 + -0x40)" * (cast_expression "(int *)((int)register0x00000010 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x2c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x2c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x74)" ( (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x70)" * (cast_expression "(void **)((int)register0x00000010 + -0x70)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x68)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x68)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x28);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x28)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x28)" * (cast_expression "(int *)((int)register0x00000010 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x28)" ( (binary_expression "(int)register0x00000010 + -0x28" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x2c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x2c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (if_statement "if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }" { (expression_statement "*(int *)((int)register0x00000010 + -0x28) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x28) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x28)" * (cast_expression "(int *)((int)register0x00000010 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x28)" ( (binary_expression "(int)register0x00000010 + -0x28" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x2c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x2c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x68) = iVar9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x68) = iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x68)" * (cast_expression "(int *)((int)register0x00000010 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x30)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x74)" ( (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x70)" * (cast_expression "(void **)((int)register0x00000010 + -0x70)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x68)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x68)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x28);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x28)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x28)" * (cast_expression "(int *)((int)register0x00000010 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x28)" ( (binary_expression "(int)register0x00000010 + -0x28" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x2c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x2c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) }))) (expression_statement "puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);" (assignment_expression "puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);" (assignment_expression "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60)" identifier = (cast_expression "(undefined1 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x60)" ( (binary_expression "(int)register0x00000010 + -0x60" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) }))))) (expression_statement "uVar2 = *(undefined4 *)(puVar7 + 0xc);" (assignment_expression "uVar2 = *(undefined4 *)(puVar7 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(puVar7 + 0xc)" * (cast_expression "(undefined4 *)(puVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0xc)" ( (binary_expression "puVar7 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + -4) = uVar2;" (assignment_expression "*(undefined4 *)(puVar7 + -4) = uVar2" (pointer_expression "*(undefined4 *)(puVar7 + -4)" * (cast_expression "(undefined4 *)(puVar7 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -4)" ( (binary_expression "puVar7 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar7 + -8) = iVar5;" (assignment_expression "*(int *)(puVar7 + -8) = iVar5" (pointer_expression "*(int *)(puVar7 + -8)" * (cast_expression "(int *)(puVar7 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -8)" ( (binary_expression "puVar7 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar7 + 0xc) = iVar5;" (assignment_expression "*(int *)(puVar7 + 0xc) = iVar5" (pointer_expression "*(int *)(puVar7 + 0xc)" * (cast_expression "(int *)(puVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0xc)" ( (binary_expression "puVar7 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar7 + -0xc) = puVar11;" (assignment_expression "*(undefined4 **)(puVar7 + -0xc) = puVar11" (pointer_expression "*(undefined4 **)(puVar7 + -0xc)" * (cast_expression "(undefined4 **)(puVar7 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0xc)" ( (binary_expression "puVar7 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar5 = *(int *)(puVar7 + 0x28);" (assignment_expression "iVar5 = *(int *)(puVar7 + 0x28)" identifier = (pointer_expression "*(int *)(puVar7 + 0x28)" * (cast_expression "(int *)(puVar7 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x28)" ( (binary_expression "puVar7 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar7 + -0x10) = iVar5;" (assignment_expression "*(int *)(puVar7 + -0x10) = iVar5" (pointer_expression "*(int *)(puVar7 + -0x10)" * (cast_expression "(int *)(puVar7 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24);" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24)" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar7 + 0x24)" * (cast_expression "(undefined4 *)(puVar7 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x24)" ( (binary_expression "puVar7 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(puVar7 + -0x18) = puVar10;" (assignment_expression "*(undefined4 **)(puVar7 + -0x18) = puVar10" (pointer_expression "*(undefined4 **)(puVar7 + -0x18)" * (cast_expression "(undefined4 **)(puVar7 + -0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x18)" ( (binary_expression "puVar7 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar7 + -0x1c) = puVar4;" (assignment_expression "*(undefined4 **)(puVar7 + -0x1c) = puVar4" (pointer_expression "*(undefined4 **)(puVar7 + -0x1c)" * (cast_expression "(undefined4 **)(puVar7 + -0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x1c)" ( (binary_expression "puVar7 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14);" (assignment_expression "*(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14)" (pointer_expression "*(undefined4 *)(puVar7 + -0x20)" * (cast_expression "(undefined4 *)(puVar7 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x20)" ( (binary_expression "puVar7 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar7 + 0x14)" * (cast_expression "(undefined4 *)(puVar7 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x14)" ( (binary_expression "puVar7 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x24) = 0xc032a;" (assignment_expression "*(undefined4 *)(puVar7 + -0x24) = 0xc032a" (pointer_expression "*(undefined4 *)(puVar7 + -0x24)" * (cast_expression "(undefined4 *)(puVar7 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x24)" ( (binary_expression "puVar7 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000c00a0();" (call_expression "FUN_000c00a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x7c) = uVar2;" (assignment_expression "*(undefined4 *)(puVar7 + 0x7c) = uVar2" (pointer_expression "*(undefined4 *)(puVar7 + 0x7c)" * (cast_expression "(undefined4 *)(puVar7 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x7c)" ( (binary_expression "puVar7 + 0x7c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar7 + 0x74) = puVar11;" (assignment_expression "*(undefined4 **)(puVar7 + 0x74) = puVar11" (pointer_expression "*(undefined4 **)(puVar7 + 0x74)" * (cast_expression "(undefined4 **)(puVar7 + 0x74)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x74)" ( (binary_expression "puVar7 + 0x74" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar7 + 0x60) = puVar10;" (assignment_expression "*(undefined4 **)(puVar7 + 0x60) = puVar10" (pointer_expression "*(undefined4 **)(puVar7 + 0x60)" * (cast_expression "(undefined4 **)(puVar7 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x60)" ( (binary_expression "puVar7 + 0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5;" (assignment_expression "*(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5" (pointer_expression "*(int *)(puVar7 + 0x70)" * (cast_expression "(int *)(puVar7 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x70)" ( (binary_expression "puVar7 + 0x70" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar7 + 0x18) - iVar5" (pointer_expression "*(int *)(puVar7 + 0x18)" * (cast_expression "(int *)(puVar7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x18)" ( (binary_expression "puVar7 + 0x18" identifier + number_literal) )))) - identifier)) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc);" (assignment_expression "*(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc)" (pointer_expression "*(undefined4 *)(puVar7 + 0x78)" * (cast_expression "(undefined4 *)(puVar7 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x78)" ( (binary_expression "puVar7 + 0x78" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar7 + 0xc)" * (cast_expression "(undefined4 *)(puVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0xc)" ( (binary_expression "puVar7 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c);" (assignment_expression "*(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c)" (pointer_expression "*(undefined4 *)(puVar7 + 0x6c)" * (cast_expression "(undefined4 *)(puVar7 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x6c)" ( (binary_expression "puVar7 + 0x6c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar7 + 0x2c)" * (cast_expression "(undefined4 *)(puVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x2c)" ( (binary_expression "puVar7 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10);" (assignment_expression "*(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10)" (pointer_expression "*(undefined4 *)(puVar7 + 0x68)" * (cast_expression "(undefined4 *)(puVar7 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x68)" ( (binary_expression "puVar7 + 0x68" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar7 + 0x10)" * (cast_expression "(undefined4 *)(puVar7 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x10)" ( (binary_expression "puVar7 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20);" (assignment_expression "*(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20)" (pointer_expression "*(undefined4 *)(puVar7 + 100)" * (cast_expression "(undefined4 *)(puVar7 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 100)" ( (binary_expression "puVar7 + 100" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar7 + 0x20)" * (cast_expression "(undefined4 *)(puVar7 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x20)" ( (binary_expression "puVar7 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "unaff_EBX = *(undefined4 *)(puVar7 + 0x4c);" (assignment_expression "unaff_EBX = *(undefined4 *)(puVar7 + 0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar7 + 0x4c)" * (cast_expression "(undefined4 *)(puVar7 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x4c)" ( (binary_expression "puVar7 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "unaff_ESI = *(undefined4 *)(puVar7 + 0x50);" (assignment_expression "unaff_ESI = *(undefined4 *)(puVar7 + 0x50)" identifier = (pointer_expression "*(undefined4 *)(puVar7 + 0x50)" * (cast_expression "(undefined4 *)(puVar7 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x50)" ( (binary_expression "puVar7 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "unaff_EDI = *(undefined4 *)(puVar7 + 0x54);" (assignment_expression "unaff_EDI = *(undefined4 *)(puVar7 + 0x54)" identifier = (pointer_expression "*(undefined4 *)(puVar7 + 0x54)" * (cast_expression "(undefined4 *)(puVar7 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x54)" ( (binary_expression "puVar7 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "unaff_EBP = *(undefined4 *)(puVar7 + 0x58);" (assignment_expression "unaff_EBP = *(undefined4 *)(puVar7 + 0x58)" identifier = (pointer_expression "*(undefined4 *)(puVar7 + 0x58)" * (cast_expression "(undefined4 *)(puVar7 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x58)" ( (binary_expression "puVar7 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c);" (assignment_expression "register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c)" identifier = (cast_expression "(BADSPACEBASE *)(puVar7 + 0x5c)" ( (type_descriptor "BADSPACEBASE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x5c)" ( (binary_expression "puVar7 + 0x5c" identifier + number_literal) )))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original name: __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,\n   std::vector<gold::Output_segment*> >, int, gold::Output_segment**,\n   __gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments> > */\n\nvoid std::\n     __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_int,_gold::Output_segment**,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n               (__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                __first,__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                        __middle,\n               __normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n               __last,int __len1,int __len2,Output_segment **__buffer,int __buffer_size,\n               _Iter_comp_iter<gold::Layout::Compare_segments> __comp)\n\n{\n  Output_segment *pOVar1;\n  bool bVar2;\n  int iVar3;\n  __normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n  __last_00;\n  _Iter_comp_val<gold::Layout::Compare_segments> __comp_00;\n  size_t sVar4;\n  Output_segment **ppOVar5;\n  Output_segment **ppOVar7;\n  Compare_segments local_3c;\n  int local_38;\n  int local_34;\n  Layout *local_20 [8];\n  Output_segment **ppOVar6;\n  \n  do {\n    iVar3 = __len2;\n    if (__buffer_size < __len2) {\n      iVar3 = __buffer_size;\n    }\n    if (__len1 <= iVar3) {\n      sVar4 = (int)__middle._M_current - (int)__first._M_current;\n      if (__middle._M_current != __first._M_current) {\n        memmove(__buffer,__first._M_current,sVar4);\n      }\n      ppOVar5 = (Output_segment **)((int)__buffer + sVar4);\n      if (__buffer == ppOVar5) {\n        return;\n      }\n      if (__last._M_current != __middle._M_current) {\n        do {\n          bVar2 = gold::Layout::segment_precedes\n                            ((Layout *)__comp._M_comp.layout_,*__middle._M_current,*__buffer);\n          if (bVar2) {\n            pOVar1 = *__middle._M_current;\n            __middle._M_current = __middle._M_current + 1;\n            *__first._M_current = pOVar1;\n          }\n          else {\n            pOVar1 = *__buffer;\n            __buffer = __buffer + 1;\n            *__first._M_current = pOVar1;\n          }\n          if (ppOVar5 == __buffer) {\n            return;\n          }\n          __first._M_current = __first._M_current + 1;\n        } while (__last._M_current != __middle._M_current);\n        sVar4 = (int)ppOVar5 - (int)__buffer;\n      }\n      memmove(__first._M_current,__buffer,sVar4);\n      return;\n    }\n    if (__len2 <= __buffer_size) {\n      sVar4 = (int)__last._M_current - (int)__middle._M_current;\n      if (__last._M_current != __middle._M_current) {\n        memmove(__buffer,__middle._M_current,sVar4);\n      }\n      ppOVar5 = (Output_segment **)((int)__buffer + sVar4);\n      if (__middle._M_current == __first._M_current) {\n        if (__buffer != ppOVar5) {\n          memmove((void *)((int)__last._M_current - sVar4),__buffer,sVar4);\n        }\n      }\n      else if (__buffer != ppOVar5) {\n        ppOVar7 = __middle._M_current + -1;\n        do {\n          ppOVar6 = ppOVar5 + -1;\n          while( true ) {\n            __last._M_current = __last._M_current + -1;\n            bVar2 = gold::Layout::segment_precedes\n                              ((Layout *)__comp._M_comp.layout_,*ppOVar6,*ppOVar7);\n            if (!bVar2) break;\n            *__last._M_current = *ppOVar7;\n            if (ppOVar7 == __first._M_current) {\n              if (__buffer == ppOVar5) {\n                return;\n              }\n              memmove((void *)((int)__last._M_current - ((int)ppOVar5 - (int)__buffer)),__buffer,\n                      (int)ppOVar5 - (int)__buffer);\n              return;\n            }\n            ppOVar7 = ppOVar7 + -1;\n          }\n          *__last._M_current = *ppOVar6;\n          ppOVar5 = ppOVar6;\n        } while (__buffer != ppOVar6);\n      }\n      return;\n    }\n    if (__len2 < __len1) {\n      local_38 = __len1 / 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(__first._M_current + local_38);\n      __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Iter_comp_val<gold::Layout::Compare_segments>_>\n                ((__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__middle,__last._M_current,__comp_00);\n      local_3c.layout_ = local_20[0];\n      local_34 = (int)local_20[0] - (int)__middle._M_current >> 2;\n    }\n    else {\n      local_34 = __len2 / 2;\n      local_3c.layout_ = (Layout *)(__middle._M_current + local_34);\n      __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Val_comp_iter<gold::Layout::Compare_segments>_>\n                ((__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__first,__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_);\n      local_38 = (int)local_20[0] - (int)__first._M_current >> 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(Compare_segments)local_20[0];\n    }\n    __len1 = __len1 - local_38;\n    if ((local_34 < __len1) && (local_34 <= __buffer_size)) {\n      __last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_;\n      if (local_34 != 0) {\n        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;\n        if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n      }\n    }\n    else if (__buffer_size < __len1) {\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>_>\n                (local_20,__comp_00._M_comp.layout_,__middle._M_current,local_3c.layout_,0);\n      __last_00._M_current =\n           (Output_segment **)\n           (((int)local_3c.layout_ - (int)__middle._M_current) + (int)__comp_00._M_comp.layout_);\n    }\n    else {\n      __last_00._M_current = (Output_segment **)local_3c.layout_;\n      if (__len1 != 0) {\n        sVar4 = (int)__middle._M_current - (int)__comp_00._M_comp.layout_;\n        __last_00._M_current = (Output_segment **)((int)local_3c.layout_ - sVar4);\n        if (__comp_00._M_comp.layout_ == (Compare_segments)__middle._M_current) {\n          if ((Compare_segments)local_3c.layout_ != __comp_00._M_comp.layout_) goto LAB_000c0476;\n        }\n        else {\n          memmove(__buffer,(void *)__comp_00._M_comp.layout_,sVar4);\n          if (local_3c.layout_ != (Layout *)__middle._M_current) {\nLAB_000c0476:\n            memmove((void *)__comp_00._M_comp.layout_,__middle._M_current,\n                    (int)local_3c.layout_ - (int)__middle._M_current);\n          }\n          if (sVar4 != 0) {\n            memmove(__last_00._M_current,__buffer,sVar4);\n          }\n        }\n      }\n    }\n    __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_int,_gold::Output_segment**,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n              (__first,(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                        )__comp_00._M_comp.layout_,__last_00,local_38,local_34,__buffer,\n               __buffer_size,__comp);\n    __len2 = __len2 - local_34;\n    __middle._M_current = (Output_segment **)local_3c.layout_;\n    __first._M_current = __last_00._M_current;\n  } while( true );\n}\n\n" comment comment comment comment (declaration "void std::\n     __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_int,_gold::Output_segment**,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n               (__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                __first,__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                        __middle,\n               __normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n               __last,int __len1,int __len2,Output_segment **__buffer,int __buffer_size,\n               _Iter_comp_iter<gold::Layout::Compare_segments> __comp)\n\n{\n  Output_segment *pOVar1;" primitive_type (ERROR "std::\n     __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment" identifier : : identifier < identifier : : identifier < identifier : : identifier) (pointer_declarator "**,_std::vector<gold::Output_segment*>_" * (pointer_declarator "*,_std::vector<gold::Output_segment*>_" * (ERROR ",_std::vector<gold::Output_segment*>" , identifier : : identifier < identifier : : identifier * >) identifier)) (ERROR ">" >) , identifier , (ERROR "_gold::Output_segment**,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n               (__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                __first,__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                        __middle,\n               __normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n               __last,int __len1,int __len2,Output_segment **__buffer,int __buffer_size,\n               _Iter_comp_iter<gold::Layout::Compare_segments> __comp)\n\n{\n  Output_segment" identifier : : identifier (pointer_declarator "**,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n               (__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                __first,__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                        __middle,\n               __normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n               __last,int __len1,int __len2,Output_segment **__buffer,int __buffer_size,\n               _Iter_comp_iter<gold::Layout::Compare_segments> __comp)" * (function_declarator "*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n               (__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                __first,__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                        __middle,\n               __normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n               __last,int __len1,int __len2,Output_segment **__buffer,int __buffer_size,\n               _Iter_comp_iter<gold::Layout::Compare_segments> __comp)" (pointer_declarator "*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_" * (ERROR ",___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>" , identifier : : identifier : : identifier < identifier : : identifier : : identifier >) identifier) (ERROR ">" >) (parameter_list "(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                __first,__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                        __middle,\n               __normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n               __last,int __len1,int __len2,Output_segment **__buffer,int __buffer_size,\n               _Iter_comp_iter<gold::Layout::Compare_segments> __comp)" ( (parameter_declaration "__normal_iterator<gold::Output_segment**" type_identifier (ERROR "<gold::Output_segment" < identifier : : identifier) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) , (parameter_declaration "_std::vector<gold::Output_segment*" type_identifier (ERROR "::vector<gold::Output_segment" : : identifier < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::allocator<gold::Output_segment*>_>_>\n                __first" type_identifier (ERROR "::allocator<gold::Output_segment*>_>_>" : : identifier < identifier : : identifier * > identifier > identifier >) identifier) , (parameter_declaration "__normal_iterator<gold::Output_segment**" type_identifier (ERROR "<gold::Output_segment" < identifier : : identifier) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) , (parameter_declaration "_std::vector<gold::Output_segment*" type_identifier (ERROR "::vector<gold::Output_segment" : : identifier < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::allocator<gold::Output_segment*>_>_>\n                        __middle" type_identifier (ERROR "::allocator<gold::Output_segment*>_>_>" : : identifier < identifier : : identifier * > identifier > identifier >) identifier) , (parameter_declaration "__normal_iterator<gold::Output_segment**" type_identifier (ERROR "<gold::Output_segment" < identifier : : identifier) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) , (parameter_declaration "_std::vector<gold::Output_segment*" type_identifier (ERROR "::vector<gold::Output_segment" : : identifier < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::allocator<gold::Output_segment*>_>_>\n               __last" type_identifier (ERROR "::allocator<gold::Output_segment*>_>_>" : : identifier < identifier : : identifier * > identifier > identifier >) identifier) , (parameter_declaration "int __len1" primitive_type identifier) , (parameter_declaration "int __len2" primitive_type identifier) , (parameter_declaration "Output_segment **__buffer" type_identifier (pointer_declarator "**__buffer" * (pointer_declarator "*__buffer" * identifier))) , (parameter_declaration "int __buffer_size" primitive_type identifier) , (parameter_declaration "_Iter_comp_iter<gold::Layout::Compare_segments> __comp" type_identifier (ERROR "<gold::Layout::Compare_segments>" < identifier : : identifier : : identifier >) identifier) )))) { identifier) (pointer_declarator "*pOVar1" * identifier) ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n  __last_00;" (update_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n  __last_00" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n  __last_00" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Output_segment**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Output_segment" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) > identifier) > identifier) --) ;) (ERROR "_Iter_comp_val<gold::" (binary_expression "_Iter_comp_val<gold" identifier < identifier) : :) (labeled_statement "Layout::Compare_segments> __comp_00;" statement_identifier : (ERROR ":" :) (expression_statement "Compare_segments> __comp_00;" (binary_expression "Compare_segments> __comp_00" identifier > identifier) ;)) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "Output_segment **ppOVar5;" type_identifier (pointer_declarator "**ppOVar5" * (pointer_declarator "*ppOVar5" * identifier)) ;) (declaration "Output_segment **ppOVar7;" type_identifier (pointer_declarator "**ppOVar7" * (pointer_declarator "*ppOVar7" * identifier)) ;) (declaration "Compare_segments local_3c;" type_identifier identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "Layout *local_20 [8];" type_identifier (pointer_declarator "*local_20 [8]" * (array_declarator "local_20 [8]" identifier [ number_literal ])) ;) (declaration "Output_segment **ppOVar6;" type_identifier (pointer_declarator "**ppOVar6" * (pointer_declarator "*ppOVar6" * identifier)) ;) (do_statement "do {\n    iVar3 = __len2;\n    if (__buffer_size < __len2) {\n      iVar3 = __buffer_size;\n    }\n    if (__len1 <= iVar3) {\n      sVar4 = (int)__middle._M_current - (int)__first._M_current;\n      if (__middle._M_current != __first._M_current) {\n        memmove(__buffer,__first._M_current,sVar4);\n      }\n      ppOVar5 = (Output_segment **)((int)__buffer + sVar4);\n      if (__buffer == ppOVar5) {\n        return;\n      }\n      if (__last._M_current != __middle._M_current) {\n        do {\n          bVar2 = gold::Layout::segment_precedes\n                            ((Layout *)__comp._M_comp.layout_,*__middle._M_current,*__buffer);\n          if (bVar2) {\n            pOVar1 = *__middle._M_current;\n            __middle._M_current = __middle._M_current + 1;\n            *__first._M_current = pOVar1;\n          }\n          else {\n            pOVar1 = *__buffer;\n            __buffer = __buffer + 1;\n            *__first._M_current = pOVar1;\n          }\n          if (ppOVar5 == __buffer) {\n            return;\n          }\n          __first._M_current = __first._M_current + 1;\n        } while (__last._M_current != __middle._M_current);\n        sVar4 = (int)ppOVar5 - (int)__buffer;\n      }\n      memmove(__first._M_current,__buffer,sVar4);\n      return;\n    }\n    if (__len2 <= __buffer_size) {\n      sVar4 = (int)__last._M_current - (int)__middle._M_current;\n      if (__last._M_current != __middle._M_current) {\n        memmove(__buffer,__middle._M_current,sVar4);\n      }\n      ppOVar5 = (Output_segment **)((int)__buffer + sVar4);\n      if (__middle._M_current == __first._M_current) {\n        if (__buffer != ppOVar5) {\n          memmove((void *)((int)__last._M_current - sVar4),__buffer,sVar4);\n        }\n      }\n      else if (__buffer != ppOVar5) {\n        ppOVar7 = __middle._M_current + -1;\n        do {\n          ppOVar6 = ppOVar5 + -1;\n          while( true ) {\n            __last._M_current = __last._M_current + -1;\n            bVar2 = gold::Layout::segment_precedes\n                              ((Layout *)__comp._M_comp.layout_,*ppOVar6,*ppOVar7);\n            if (!bVar2) break;\n            *__last._M_current = *ppOVar7;\n            if (ppOVar7 == __first._M_current) {\n              if (__buffer == ppOVar5) {\n                return;\n              }\n              memmove((void *)((int)__last._M_current - ((int)ppOVar5 - (int)__buffer)),__buffer,\n                      (int)ppOVar5 - (int)__buffer);\n              return;\n            }\n            ppOVar7 = ppOVar7 + -1;\n          }\n          *__last._M_current = *ppOVar6;\n          ppOVar5 = ppOVar6;\n        } while (__buffer != ppOVar6);\n      }\n      return;\n    }\n    if (__len2 < __len1) {\n      local_38 = __len1 / 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(__first._M_current + local_38);\n      __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Iter_comp_val<gold::Layout::Compare_segments>_>\n                ((__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__middle,__last._M_current,__comp_00);\n      local_3c.layout_ = local_20[0];\n      local_34 = (int)local_20[0] - (int)__middle._M_current >> 2;\n    }\n    else {\n      local_34 = __len2 / 2;\n      local_3c.layout_ = (Layout *)(__middle._M_current + local_34);\n      __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Val_comp_iter<gold::Layout::Compare_segments>_>\n                ((__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__first,__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_);\n      local_38 = (int)local_20[0] - (int)__first._M_current >> 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(Compare_segments)local_20[0];\n    }\n    __len1 = __len1 - local_38;\n    if ((local_34 < __len1) && (local_34 <= __buffer_size)) {\n      __last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_;\n      if (local_34 != 0) {\n        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;\n        if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n      }\n    }\n    else if (__buffer_size < __len1) {\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>_>\n                (local_20,__comp_00._M_comp.layout_,__middle._M_current,local_3c.layout_,0);\n      __last_00._M_current =\n           (Output_segment **)\n           (((int)local_3c.layout_ - (int)__middle._M_current) + (int)__comp_00._M_comp.layout_);\n    }\n    else {\n      __last_00._M_current = (Output_segment **)local_3c.layout_;\n      if (__len1 != 0) {\n        sVar4 = (int)__middle._M_current - (int)__comp_00._M_comp.layout_;\n        __last_00._M_current = (Output_segment **)((int)local_3c.layout_ - sVar4);\n        if (__comp_00._M_comp.layout_ == (Compare_segments)__middle._M_current) {\n          if ((Compare_segments)local_3c.layout_ != __comp_00._M_comp.layout_) goto LAB_000c0476;\n        }\n        else {\n          memmove(__buffer,(void *)__comp_00._M_comp.layout_,sVar4);\n          if (local_3c.layout_ != (Layout *)__middle._M_current) {\nLAB_000c0476:\n            memmove((void *)__comp_00._M_comp.layout_,__middle._M_current,\n                    (int)local_3c.layout_ - (int)__middle._M_current);\n          }\n          if (sVar4 != 0) {\n            memmove(__last_00._M_current,__buffer,sVar4);\n          }\n        }\n      }\n    }\n    __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_int,_gold::Output_segment**,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n              (__first,(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                        )__comp_00._M_comp.layout_,__last_00,local_38,local_34,__buffer,\n               __buffer_size,__comp);\n    __len2 = __len2 - local_34;\n    __middle._M_current = (Output_segment **)local_3c.layout_;\n    __first._M_current = __last_00._M_current;\n  } while( true );" do (compound_statement "{\n    iVar3 = __len2;\n    if (__buffer_size < __len2) {\n      iVar3 = __buffer_size;\n    }\n    if (__len1 <= iVar3) {\n      sVar4 = (int)__middle._M_current - (int)__first._M_current;\n      if (__middle._M_current != __first._M_current) {\n        memmove(__buffer,__first._M_current,sVar4);\n      }\n      ppOVar5 = (Output_segment **)((int)__buffer + sVar4);\n      if (__buffer == ppOVar5) {\n        return;\n      }\n      if (__last._M_current != __middle._M_current) {\n        do {\n          bVar2 = gold::Layout::segment_precedes\n                            ((Layout *)__comp._M_comp.layout_,*__middle._M_current,*__buffer);\n          if (bVar2) {\n            pOVar1 = *__middle._M_current;\n            __middle._M_current = __middle._M_current + 1;\n            *__first._M_current = pOVar1;\n          }\n          else {\n            pOVar1 = *__buffer;\n            __buffer = __buffer + 1;\n            *__first._M_current = pOVar1;\n          }\n          if (ppOVar5 == __buffer) {\n            return;\n          }\n          __first._M_current = __first._M_current + 1;\n        } while (__last._M_current != __middle._M_current);\n        sVar4 = (int)ppOVar5 - (int)__buffer;\n      }\n      memmove(__first._M_current,__buffer,sVar4);\n      return;\n    }\n    if (__len2 <= __buffer_size) {\n      sVar4 = (int)__last._M_current - (int)__middle._M_current;\n      if (__last._M_current != __middle._M_current) {\n        memmove(__buffer,__middle._M_current,sVar4);\n      }\n      ppOVar5 = (Output_segment **)((int)__buffer + sVar4);\n      if (__middle._M_current == __first._M_current) {\n        if (__buffer != ppOVar5) {\n          memmove((void *)((int)__last._M_current - sVar4),__buffer,sVar4);\n        }\n      }\n      else if (__buffer != ppOVar5) {\n        ppOVar7 = __middle._M_current + -1;\n        do {\n          ppOVar6 = ppOVar5 + -1;\n          while( true ) {\n            __last._M_current = __last._M_current + -1;\n            bVar2 = gold::Layout::segment_precedes\n                              ((Layout *)__comp._M_comp.layout_,*ppOVar6,*ppOVar7);\n            if (!bVar2) break;\n            *__last._M_current = *ppOVar7;\n            if (ppOVar7 == __first._M_current) {\n              if (__buffer == ppOVar5) {\n                return;\n              }\n              memmove((void *)((int)__last._M_current - ((int)ppOVar5 - (int)__buffer)),__buffer,\n                      (int)ppOVar5 - (int)__buffer);\n              return;\n            }\n            ppOVar7 = ppOVar7 + -1;\n          }\n          *__last._M_current = *ppOVar6;\n          ppOVar5 = ppOVar6;\n        } while (__buffer != ppOVar6);\n      }\n      return;\n    }\n    if (__len2 < __len1) {\n      local_38 = __len1 / 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(__first._M_current + local_38);\n      __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Iter_comp_val<gold::Layout::Compare_segments>_>\n                ((__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__middle,__last._M_current,__comp_00);\n      local_3c.layout_ = local_20[0];\n      local_34 = (int)local_20[0] - (int)__middle._M_current >> 2;\n    }\n    else {\n      local_34 = __len2 / 2;\n      local_3c.layout_ = (Layout *)(__middle._M_current + local_34);\n      __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Val_comp_iter<gold::Layout::Compare_segments>_>\n                ((__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__first,__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_);\n      local_38 = (int)local_20[0] - (int)__first._M_current >> 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(Compare_segments)local_20[0];\n    }\n    __len1 = __len1 - local_38;\n    if ((local_34 < __len1) && (local_34 <= __buffer_size)) {\n      __last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_;\n      if (local_34 != 0) {\n        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;\n        if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n      }\n    }\n    else if (__buffer_size < __len1) {\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>_>\n                (local_20,__comp_00._M_comp.layout_,__middle._M_current,local_3c.layout_,0);\n      __last_00._M_current =\n           (Output_segment **)\n           (((int)local_3c.layout_ - (int)__middle._M_current) + (int)__comp_00._M_comp.layout_);\n    }\n    else {\n      __last_00._M_current = (Output_segment **)local_3c.layout_;\n      if (__len1 != 0) {\n        sVar4 = (int)__middle._M_current - (int)__comp_00._M_comp.layout_;\n        __last_00._M_current = (Output_segment **)((int)local_3c.layout_ - sVar4);\n        if (__comp_00._M_comp.layout_ == (Compare_segments)__middle._M_current) {\n          if ((Compare_segments)local_3c.layout_ != __comp_00._M_comp.layout_) goto LAB_000c0476;\n        }\n        else {\n          memmove(__buffer,(void *)__comp_00._M_comp.layout_,sVar4);\n          if (local_3c.layout_ != (Layout *)__middle._M_current) {\nLAB_000c0476:\n            memmove((void *)__comp_00._M_comp.layout_,__middle._M_current,\n                    (int)local_3c.layout_ - (int)__middle._M_current);\n          }\n          if (sVar4 != 0) {\n            memmove(__last_00._M_current,__buffer,sVar4);\n          }\n        }\n      }\n    }\n    __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_int,_gold::Output_segment**,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n              (__first,(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                        )__comp_00._M_comp.layout_,__last_00,local_38,local_34,__buffer,\n               __buffer_size,__comp);\n    __len2 = __len2 - local_34;\n    __middle._M_current = (Output_segment **)local_3c.layout_;\n    __first._M_current = __last_00._M_current;\n  }" { (expression_statement "iVar3 = __len2;" (assignment_expression "iVar3 = __len2" identifier = identifier) ;) (if_statement "if (__buffer_size < __len2) {\n      iVar3 = __buffer_size;\n    }" if (parenthesized_expression "(__buffer_size < __len2)" ( (binary_expression "__buffer_size < __len2" identifier < identifier) )) (compound_statement "{\n      iVar3 = __buffer_size;\n    }" { (expression_statement "iVar3 = __buffer_size;" (assignment_expression "iVar3 = __buffer_size" identifier = identifier) ;) })) (if_statement "if (__len1 <= iVar3) {\n      sVar4 = (int)__middle._M_current - (int)__first._M_current;\n      if (__middle._M_current != __first._M_current) {\n        memmove(__buffer,__first._M_current,sVar4);\n      }\n      ppOVar5 = (Output_segment **)((int)__buffer + sVar4);\n      if (__buffer == ppOVar5) {\n        return;\n      }\n      if (__last._M_current != __middle._M_current) {\n        do {\n          bVar2 = gold::Layout::segment_precedes\n                            ((Layout *)__comp._M_comp.layout_,*__middle._M_current,*__buffer);\n          if (bVar2) {\n            pOVar1 = *__middle._M_current;\n            __middle._M_current = __middle._M_current + 1;\n            *__first._M_current = pOVar1;\n          }\n          else {\n            pOVar1 = *__buffer;\n            __buffer = __buffer + 1;\n            *__first._M_current = pOVar1;\n          }\n          if (ppOVar5 == __buffer) {\n            return;\n          }\n          __first._M_current = __first._M_current + 1;\n        } while (__last._M_current != __middle._M_current);\n        sVar4 = (int)ppOVar5 - (int)__buffer;\n      }\n      memmove(__first._M_current,__buffer,sVar4);\n      return;\n    }" if (parenthesized_expression "(__len1 <= iVar3)" ( (binary_expression "__len1 <= iVar3" identifier <= identifier) )) (compound_statement "{\n      sVar4 = (int)__middle._M_current - (int)__first._M_current;\n      if (__middle._M_current != __first._M_current) {\n        memmove(__buffer,__first._M_current,sVar4);\n      }\n      ppOVar5 = (Output_segment **)((int)__buffer + sVar4);\n      if (__buffer == ppOVar5) {\n        return;\n      }\n      if (__last._M_current != __middle._M_current) {\n        do {\n          bVar2 = gold::Layout::segment_precedes\n                            ((Layout *)__comp._M_comp.layout_,*__middle._M_current,*__buffer);\n          if (bVar2) {\n            pOVar1 = *__middle._M_current;\n            __middle._M_current = __middle._M_current + 1;\n            *__first._M_current = pOVar1;\n          }\n          else {\n            pOVar1 = *__buffer;\n            __buffer = __buffer + 1;\n            *__first._M_current = pOVar1;\n          }\n          if (ppOVar5 == __buffer) {\n            return;\n          }\n          __first._M_current = __first._M_current + 1;\n        } while (__last._M_current != __middle._M_current);\n        sVar4 = (int)ppOVar5 - (int)__buffer;\n      }\n      memmove(__first._M_current,__buffer,sVar4);\n      return;\n    }" { (expression_statement "sVar4 = (int)__middle._M_current - (int)__first._M_current;" (assignment_expression "sVar4 = (int)__middle._M_current - (int)__first._M_current" identifier = (binary_expression "(int)__middle._M_current - (int)__first._M_current" (cast_expression "(int)__middle._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__middle._M_current" identifier . field_identifier)) - (cast_expression "(int)__first._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__first._M_current" identifier . field_identifier)))) ;) (if_statement "if (__middle._M_current != __first._M_current) {\n        memmove(__buffer,__first._M_current,sVar4);\n      }" if (parenthesized_expression "(__middle._M_current != __first._M_current)" ( (binary_expression "__middle._M_current != __first._M_current" (field_expression "__middle._M_current" identifier . field_identifier) != (field_expression "__first._M_current" identifier . field_identifier)) )) (compound_statement "{\n        memmove(__buffer,__first._M_current,sVar4);\n      }" { (expression_statement "memmove(__buffer,__first._M_current,sVar4);" (call_expression "memmove(__buffer,__first._M_current,sVar4)" identifier (argument_list "(__buffer,__first._M_current,sVar4)" ( identifier , (field_expression "__first._M_current" identifier . field_identifier) , identifier ))) ;) })) (expression_statement "ppOVar5 = (Output_segment **)((int)__buffer + sVar4);" (assignment_expression "ppOVar5 = (Output_segment **)((int)__buffer + sVar4)" identifier = (cast_expression "(Output_segment **)((int)__buffer + sVar4)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)__buffer + sVar4)" ( (binary_expression "(int)__buffer + sVar4" (cast_expression "(int)__buffer" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (__buffer == ppOVar5) {\n        return;\n      }" if (parenthesized_expression "(__buffer == ppOVar5)" ( (binary_expression "__buffer == ppOVar5" identifier == identifier) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (if_statement "if (__last._M_current != __middle._M_current) {\n        do {\n          bVar2 = gold::Layout::segment_precedes\n                            ((Layout *)__comp._M_comp.layout_,*__middle._M_current,*__buffer);\n          if (bVar2) {\n            pOVar1 = *__middle._M_current;\n            __middle._M_current = __middle._M_current + 1;\n            *__first._M_current = pOVar1;\n          }\n          else {\n            pOVar1 = *__buffer;\n            __buffer = __buffer + 1;\n            *__first._M_current = pOVar1;\n          }\n          if (ppOVar5 == __buffer) {\n            return;\n          }\n          __first._M_current = __first._M_current + 1;\n        } while (__last._M_current != __middle._M_current);\n        sVar4 = (int)ppOVar5 - (int)__buffer;\n      }" if (parenthesized_expression "(__last._M_current != __middle._M_current)" ( (binary_expression "__last._M_current != __middle._M_current" (field_expression "__last._M_current" identifier . field_identifier) != (field_expression "__middle._M_current" identifier . field_identifier)) )) (compound_statement "{\n        do {\n          bVar2 = gold::Layout::segment_precedes\n                            ((Layout *)__comp._M_comp.layout_,*__middle._M_current,*__buffer);\n          if (bVar2) {\n            pOVar1 = *__middle._M_current;\n            __middle._M_current = __middle._M_current + 1;\n            *__first._M_current = pOVar1;\n          }\n          else {\n            pOVar1 = *__buffer;\n            __buffer = __buffer + 1;\n            *__first._M_current = pOVar1;\n          }\n          if (ppOVar5 == __buffer) {\n            return;\n          }\n          __first._M_current = __first._M_current + 1;\n        } while (__last._M_current != __middle._M_current);\n        sVar4 = (int)ppOVar5 - (int)__buffer;\n      }" { (do_statement "do {\n          bVar2 = gold::Layout::segment_precedes\n                            ((Layout *)__comp._M_comp.layout_,*__middle._M_current,*__buffer);\n          if (bVar2) {\n            pOVar1 = *__middle._M_current;\n            __middle._M_current = __middle._M_current + 1;\n            *__first._M_current = pOVar1;\n          }\n          else {\n            pOVar1 = *__buffer;\n            __buffer = __buffer + 1;\n            *__first._M_current = pOVar1;\n          }\n          if (ppOVar5 == __buffer) {\n            return;\n          }\n          __first._M_current = __first._M_current + 1;\n        } while (__last._M_current != __middle._M_current);" do (compound_statement "{\n          bVar2 = gold::Layout::segment_precedes\n                            ((Layout *)__comp._M_comp.layout_,*__middle._M_current,*__buffer);\n          if (bVar2) {\n            pOVar1 = *__middle._M_current;\n            __middle._M_current = __middle._M_current + 1;\n            *__first._M_current = pOVar1;\n          }\n          else {\n            pOVar1 = *__buffer;\n            __buffer = __buffer + 1;\n            *__first._M_current = pOVar1;\n          }\n          if (ppOVar5 == __buffer) {\n            return;\n          }\n          __first._M_current = __first._M_current + 1;\n        }" { (ERROR "bVar2 = gold::" (assignment_expression "bVar2 = gold" identifier = identifier) : :) (labeled_statement "Layout::segment_precedes\n                            ((Layout *)__comp._M_comp.layout_,*__middle._M_current,*__buffer);" statement_identifier : (ERROR ":" :) (expression_statement "segment_precedes\n                            ((Layout *)__comp._M_comp.layout_,*__middle._M_current,*__buffer);" (call_expression "segment_precedes\n                            ((Layout *)__comp._M_comp.layout_,*__middle._M_current,*__buffer)" identifier (argument_list "((Layout *)__comp._M_comp.layout_,*__middle._M_current,*__buffer)" ( (cast_expression "(Layout *)__comp._M_comp.layout_" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "__comp._M_comp.layout_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier)) , (pointer_expression "*__middle._M_current" * (field_expression "__middle._M_current" identifier . field_identifier)) , (pointer_expression "*__buffer" * identifier) ))) ;)) (if_statement "if (bVar2) {\n            pOVar1 = *__middle._M_current;\n            __middle._M_current = __middle._M_current + 1;\n            *__first._M_current = pOVar1;\n          }\n          else {\n            pOVar1 = *__buffer;\n            __buffer = __buffer + 1;\n            *__first._M_current = pOVar1;\n          }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n            pOVar1 = *__middle._M_current;\n            __middle._M_current = __middle._M_current + 1;\n            *__first._M_current = pOVar1;\n          }" { (expression_statement "pOVar1 = *__middle._M_current;" (assignment_expression "pOVar1 = *__middle._M_current" identifier = (pointer_expression "*__middle._M_current" * (field_expression "__middle._M_current" identifier . field_identifier))) ;) (expression_statement "__middle._M_current = __middle._M_current + 1;" (assignment_expression "__middle._M_current = __middle._M_current + 1" (field_expression "__middle._M_current" identifier . field_identifier) = (binary_expression "__middle._M_current + 1" (field_expression "__middle._M_current" identifier . field_identifier) + number_literal)) ;) (expression_statement "*__first._M_current = pOVar1;" (assignment_expression "*__first._M_current = pOVar1" (pointer_expression "*__first._M_current" * (field_expression "__first._M_current" identifier . field_identifier)) = identifier) ;) }) (else_clause "else {\n            pOVar1 = *__buffer;\n            __buffer = __buffer + 1;\n            *__first._M_current = pOVar1;\n          }" else (compound_statement "{\n            pOVar1 = *__buffer;\n            __buffer = __buffer + 1;\n            *__first._M_current = pOVar1;\n          }" { (expression_statement "pOVar1 = *__buffer;" (assignment_expression "pOVar1 = *__buffer" identifier = (pointer_expression "*__buffer" * identifier)) ;) (expression_statement "__buffer = __buffer + 1;" (assignment_expression "__buffer = __buffer + 1" identifier = (binary_expression "__buffer + 1" identifier + number_literal)) ;) (expression_statement "*__first._M_current = pOVar1;" (assignment_expression "*__first._M_current = pOVar1" (pointer_expression "*__first._M_current" * (field_expression "__first._M_current" identifier . field_identifier)) = identifier) ;) }))) (if_statement "if (ppOVar5 == __buffer) {\n            return;\n          }" if (parenthesized_expression "(ppOVar5 == __buffer)" ( (binary_expression "ppOVar5 == __buffer" identifier == identifier) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "__first._M_current = __first._M_current + 1;" (assignment_expression "__first._M_current = __first._M_current + 1" (field_expression "__first._M_current" identifier . field_identifier) = (binary_expression "__first._M_current + 1" (field_expression "__first._M_current" identifier . field_identifier) + number_literal)) ;) }) while (parenthesized_expression "(__last._M_current != __middle._M_current)" ( (binary_expression "__last._M_current != __middle._M_current" (field_expression "__last._M_current" identifier . field_identifier) != (field_expression "__middle._M_current" identifier . field_identifier)) )) ;) (expression_statement "sVar4 = (int)ppOVar5 - (int)__buffer;" (assignment_expression "sVar4 = (int)ppOVar5 - (int)__buffer" identifier = (binary_expression "(int)ppOVar5 - (int)__buffer" (cast_expression "(int)ppOVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__buffer" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (expression_statement "memmove(__first._M_current,__buffer,sVar4);" (call_expression "memmove(__first._M_current,__buffer,sVar4)" identifier (argument_list "(__first._M_current,__buffer,sVar4)" ( (field_expression "__first._M_current" identifier . field_identifier) , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if (__len2 <= __buffer_size) {\n      sVar4 = (int)__last._M_current - (int)__middle._M_current;\n      if (__last._M_current != __middle._M_current) {\n        memmove(__buffer,__middle._M_current,sVar4);\n      }\n      ppOVar5 = (Output_segment **)((int)__buffer + sVar4);\n      if (__middle._M_current == __first._M_current) {\n        if (__buffer != ppOVar5) {\n          memmove((void *)((int)__last._M_current - sVar4),__buffer,sVar4);\n        }\n      }\n      else if (__buffer != ppOVar5) {\n        ppOVar7 = __middle._M_current + -1;\n        do {\n          ppOVar6 = ppOVar5 + -1;\n          while( true ) {\n            __last._M_current = __last._M_current + -1;\n            bVar2 = gold::Layout::segment_precedes\n                              ((Layout *)__comp._M_comp.layout_,*ppOVar6,*ppOVar7);\n            if (!bVar2) break;\n            *__last._M_current = *ppOVar7;\n            if (ppOVar7 == __first._M_current) {\n              if (__buffer == ppOVar5) {\n                return;\n              }\n              memmove((void *)((int)__last._M_current - ((int)ppOVar5 - (int)__buffer)),__buffer,\n                      (int)ppOVar5 - (int)__buffer);\n              return;\n            }\n            ppOVar7 = ppOVar7 + -1;\n          }\n          *__last._M_current = *ppOVar6;\n          ppOVar5 = ppOVar6;\n        } while (__buffer != ppOVar6);\n      }\n      return;\n    }" if (parenthesized_expression "(__len2 <= __buffer_size)" ( (binary_expression "__len2 <= __buffer_size" identifier <= identifier) )) (compound_statement "{\n      sVar4 = (int)__last._M_current - (int)__middle._M_current;\n      if (__last._M_current != __middle._M_current) {\n        memmove(__buffer,__middle._M_current,sVar4);\n      }\n      ppOVar5 = (Output_segment **)((int)__buffer + sVar4);\n      if (__middle._M_current == __first._M_current) {\n        if (__buffer != ppOVar5) {\n          memmove((void *)((int)__last._M_current - sVar4),__buffer,sVar4);\n        }\n      }\n      else if (__buffer != ppOVar5) {\n        ppOVar7 = __middle._M_current + -1;\n        do {\n          ppOVar6 = ppOVar5 + -1;\n          while( true ) {\n            __last._M_current = __last._M_current + -1;\n            bVar2 = gold::Layout::segment_precedes\n                              ((Layout *)__comp._M_comp.layout_,*ppOVar6,*ppOVar7);\n            if (!bVar2) break;\n            *__last._M_current = *ppOVar7;\n            if (ppOVar7 == __first._M_current) {\n              if (__buffer == ppOVar5) {\n                return;\n              }\n              memmove((void *)((int)__last._M_current - ((int)ppOVar5 - (int)__buffer)),__buffer,\n                      (int)ppOVar5 - (int)__buffer);\n              return;\n            }\n            ppOVar7 = ppOVar7 + -1;\n          }\n          *__last._M_current = *ppOVar6;\n          ppOVar5 = ppOVar6;\n        } while (__buffer != ppOVar6);\n      }\n      return;\n    }" { (expression_statement "sVar4 = (int)__last._M_current - (int)__middle._M_current;" (assignment_expression "sVar4 = (int)__last._M_current - (int)__middle._M_current" identifier = (binary_expression "(int)__last._M_current - (int)__middle._M_current" (cast_expression "(int)__last._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__last._M_current" identifier . field_identifier)) - (cast_expression "(int)__middle._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__middle._M_current" identifier . field_identifier)))) ;) (if_statement "if (__last._M_current != __middle._M_current) {\n        memmove(__buffer,__middle._M_current,sVar4);\n      }" if (parenthesized_expression "(__last._M_current != __middle._M_current)" ( (binary_expression "__last._M_current != __middle._M_current" (field_expression "__last._M_current" identifier . field_identifier) != (field_expression "__middle._M_current" identifier . field_identifier)) )) (compound_statement "{\n        memmove(__buffer,__middle._M_current,sVar4);\n      }" { (expression_statement "memmove(__buffer,__middle._M_current,sVar4);" (call_expression "memmove(__buffer,__middle._M_current,sVar4)" identifier (argument_list "(__buffer,__middle._M_current,sVar4)" ( identifier , (field_expression "__middle._M_current" identifier . field_identifier) , identifier ))) ;) })) (expression_statement "ppOVar5 = (Output_segment **)((int)__buffer + sVar4);" (assignment_expression "ppOVar5 = (Output_segment **)((int)__buffer + sVar4)" identifier = (cast_expression "(Output_segment **)((int)__buffer + sVar4)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)__buffer + sVar4)" ( (binary_expression "(int)__buffer + sVar4" (cast_expression "(int)__buffer" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (__middle._M_current == __first._M_current) {\n        if (__buffer != ppOVar5) {\n          memmove((void *)((int)__last._M_current - sVar4),__buffer,sVar4);\n        }\n      }\n      else if (__buffer != ppOVar5) {\n        ppOVar7 = __middle._M_current + -1;\n        do {\n          ppOVar6 = ppOVar5 + -1;\n          while( true ) {\n            __last._M_current = __last._M_current + -1;\n            bVar2 = gold::Layout::segment_precedes\n                              ((Layout *)__comp._M_comp.layout_,*ppOVar6,*ppOVar7);\n            if (!bVar2) break;\n            *__last._M_current = *ppOVar7;\n            if (ppOVar7 == __first._M_current) {\n              if (__buffer == ppOVar5) {\n                return;\n              }\n              memmove((void *)((int)__last._M_current - ((int)ppOVar5 - (int)__buffer)),__buffer,\n                      (int)ppOVar5 - (int)__buffer);\n              return;\n            }\n            ppOVar7 = ppOVar7 + -1;\n          }\n          *__last._M_current = *ppOVar6;\n          ppOVar5 = ppOVar6;\n        } while (__buffer != ppOVar6);\n      }" if (parenthesized_expression "(__middle._M_current == __first._M_current)" ( (binary_expression "__middle._M_current == __first._M_current" (field_expression "__middle._M_current" identifier . field_identifier) == (field_expression "__first._M_current" identifier . field_identifier)) )) (compound_statement "{\n        if (__buffer != ppOVar5) {\n          memmove((void *)((int)__last._M_current - sVar4),__buffer,sVar4);\n        }\n      }" { (if_statement "if (__buffer != ppOVar5) {\n          memmove((void *)((int)__last._M_current - sVar4),__buffer,sVar4);\n        }" if (parenthesized_expression "(__buffer != ppOVar5)" ( (binary_expression "__buffer != ppOVar5" identifier != identifier) )) (compound_statement "{\n          memmove((void *)((int)__last._M_current - sVar4),__buffer,sVar4);\n        }" { (expression_statement "memmove((void *)((int)__last._M_current - sVar4),__buffer,sVar4);" (call_expression "memmove((void *)((int)__last._M_current - sVar4),__buffer,sVar4)" identifier (argument_list "((void *)((int)__last._M_current - sVar4),__buffer,sVar4)" ( (cast_expression "(void *)((int)__last._M_current - sVar4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__last._M_current - sVar4)" ( (binary_expression "(int)__last._M_current - sVar4" (cast_expression "(int)__last._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__last._M_current" identifier . field_identifier)) - identifier) ))) , identifier , identifier ))) ;) })) }) (else_clause "else if (__buffer != ppOVar5) {\n        ppOVar7 = __middle._M_current + -1;\n        do {\n          ppOVar6 = ppOVar5 + -1;\n          while( true ) {\n            __last._M_current = __last._M_current + -1;\n            bVar2 = gold::Layout::segment_precedes\n                              ((Layout *)__comp._M_comp.layout_,*ppOVar6,*ppOVar7);\n            if (!bVar2) break;\n            *__last._M_current = *ppOVar7;\n            if (ppOVar7 == __first._M_current) {\n              if (__buffer == ppOVar5) {\n                return;\n              }\n              memmove((void *)((int)__last._M_current - ((int)ppOVar5 - (int)__buffer)),__buffer,\n                      (int)ppOVar5 - (int)__buffer);\n              return;\n            }\n            ppOVar7 = ppOVar7 + -1;\n          }\n          *__last._M_current = *ppOVar6;\n          ppOVar5 = ppOVar6;\n        } while (__buffer != ppOVar6);\n      }" else (if_statement "if (__buffer != ppOVar5) {\n        ppOVar7 = __middle._M_current + -1;\n        do {\n          ppOVar6 = ppOVar5 + -1;\n          while( true ) {\n            __last._M_current = __last._M_current + -1;\n            bVar2 = gold::Layout::segment_precedes\n                              ((Layout *)__comp._M_comp.layout_,*ppOVar6,*ppOVar7);\n            if (!bVar2) break;\n            *__last._M_current = *ppOVar7;\n            if (ppOVar7 == __first._M_current) {\n              if (__buffer == ppOVar5) {\n                return;\n              }\n              memmove((void *)((int)__last._M_current - ((int)ppOVar5 - (int)__buffer)),__buffer,\n                      (int)ppOVar5 - (int)__buffer);\n              return;\n            }\n            ppOVar7 = ppOVar7 + -1;\n          }\n          *__last._M_current = *ppOVar6;\n          ppOVar5 = ppOVar6;\n        } while (__buffer != ppOVar6);\n      }" if (parenthesized_expression "(__buffer != ppOVar5)" ( (binary_expression "__buffer != ppOVar5" identifier != identifier) )) (compound_statement "{\n        ppOVar7 = __middle._M_current + -1;\n        do {\n          ppOVar6 = ppOVar5 + -1;\n          while( true ) {\n            __last._M_current = __last._M_current + -1;\n            bVar2 = gold::Layout::segment_precedes\n                              ((Layout *)__comp._M_comp.layout_,*ppOVar6,*ppOVar7);\n            if (!bVar2) break;\n            *__last._M_current = *ppOVar7;\n            if (ppOVar7 == __first._M_current) {\n              if (__buffer == ppOVar5) {\n                return;\n              }\n              memmove((void *)((int)__last._M_current - ((int)ppOVar5 - (int)__buffer)),__buffer,\n                      (int)ppOVar5 - (int)__buffer);\n              return;\n            }\n            ppOVar7 = ppOVar7 + -1;\n          }\n          *__last._M_current = *ppOVar6;\n          ppOVar5 = ppOVar6;\n        } while (__buffer != ppOVar6);\n      }" { (expression_statement "ppOVar7 = __middle._M_current + -1;" (assignment_expression "ppOVar7 = __middle._M_current + -1" identifier = (binary_expression "__middle._M_current + -1" (field_expression "__middle._M_current" identifier . field_identifier) + number_literal)) ;) (do_statement "do {\n          ppOVar6 = ppOVar5 + -1;\n          while( true ) {\n            __last._M_current = __last._M_current + -1;\n            bVar2 = gold::Layout::segment_precedes\n                              ((Layout *)__comp._M_comp.layout_,*ppOVar6,*ppOVar7);\n            if (!bVar2) break;\n            *__last._M_current = *ppOVar7;\n            if (ppOVar7 == __first._M_current) {\n              if (__buffer == ppOVar5) {\n                return;\n              }\n              memmove((void *)((int)__last._M_current - ((int)ppOVar5 - (int)__buffer)),__buffer,\n                      (int)ppOVar5 - (int)__buffer);\n              return;\n            }\n            ppOVar7 = ppOVar7 + -1;\n          }\n          *__last._M_current = *ppOVar6;\n          ppOVar5 = ppOVar6;\n        } while (__buffer != ppOVar6);" do (compound_statement "{\n          ppOVar6 = ppOVar5 + -1;\n          while( true ) {\n            __last._M_current = __last._M_current + -1;\n            bVar2 = gold::Layout::segment_precedes\n                              ((Layout *)__comp._M_comp.layout_,*ppOVar6,*ppOVar7);\n            if (!bVar2) break;\n            *__last._M_current = *ppOVar7;\n            if (ppOVar7 == __first._M_current) {\n              if (__buffer == ppOVar5) {\n                return;\n              }\n              memmove((void *)((int)__last._M_current - ((int)ppOVar5 - (int)__buffer)),__buffer,\n                      (int)ppOVar5 - (int)__buffer);\n              return;\n            }\n            ppOVar7 = ppOVar7 + -1;\n          }\n          *__last._M_current = *ppOVar6;\n          ppOVar5 = ppOVar6;\n        }" { (expression_statement "ppOVar6 = ppOVar5 + -1;" (assignment_expression "ppOVar6 = ppOVar5 + -1" identifier = (binary_expression "ppOVar5 + -1" identifier + number_literal)) ;) (while_statement "while( true ) {\n            __last._M_current = __last._M_current + -1;\n            bVar2 = gold::Layout::segment_precedes\n                              ((Layout *)__comp._M_comp.layout_,*ppOVar6,*ppOVar7);\n            if (!bVar2) break;\n            *__last._M_current = *ppOVar7;\n            if (ppOVar7 == __first._M_current) {\n              if (__buffer == ppOVar5) {\n                return;\n              }\n              memmove((void *)((int)__last._M_current - ((int)ppOVar5 - (int)__buffer)),__buffer,\n                      (int)ppOVar5 - (int)__buffer);\n              return;\n            }\n            ppOVar7 = ppOVar7 + -1;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            __last._M_current = __last._M_current + -1;\n            bVar2 = gold::Layout::segment_precedes\n                              ((Layout *)__comp._M_comp.layout_,*ppOVar6,*ppOVar7);\n            if (!bVar2) break;\n            *__last._M_current = *ppOVar7;\n            if (ppOVar7 == __first._M_current) {\n              if (__buffer == ppOVar5) {\n                return;\n              }\n              memmove((void *)((int)__last._M_current - ((int)ppOVar5 - (int)__buffer)),__buffer,\n                      (int)ppOVar5 - (int)__buffer);\n              return;\n            }\n            ppOVar7 = ppOVar7 + -1;\n          }" { (expression_statement "__last._M_current = __last._M_current + -1;" (assignment_expression "__last._M_current = __last._M_current + -1" (field_expression "__last._M_current" identifier . field_identifier) = (binary_expression "__last._M_current + -1" (field_expression "__last._M_current" identifier . field_identifier) + number_literal)) ;) (ERROR "bVar2 = gold::" (assignment_expression "bVar2 = gold" identifier = identifier) : :) (labeled_statement "Layout::segment_precedes\n                              ((Layout *)__comp._M_comp.layout_,*ppOVar6,*ppOVar7);" statement_identifier : (ERROR ":" :) (expression_statement "segment_precedes\n                              ((Layout *)__comp._M_comp.layout_,*ppOVar6,*ppOVar7);" (call_expression "segment_precedes\n                              ((Layout *)__comp._M_comp.layout_,*ppOVar6,*ppOVar7)" identifier (argument_list "((Layout *)__comp._M_comp.layout_,*ppOVar6,*ppOVar7)" ( (cast_expression "(Layout *)__comp._M_comp.layout_" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "__comp._M_comp.layout_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier)) , (pointer_expression "*ppOVar6" * identifier) , (pointer_expression "*ppOVar7" * identifier) ))) ;)) (if_statement "if (!bVar2) break;" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (break_statement "break;" break ;)) (expression_statement "*__last._M_current = *ppOVar7;" (assignment_expression "*__last._M_current = *ppOVar7" (pointer_expression "*__last._M_current" * (field_expression "__last._M_current" identifier . field_identifier)) = (pointer_expression "*ppOVar7" * identifier)) ;) (if_statement "if (ppOVar7 == __first._M_current) {\n              if (__buffer == ppOVar5) {\n                return;\n              }\n              memmove((void *)((int)__last._M_current - ((int)ppOVar5 - (int)__buffer)),__buffer,\n                      (int)ppOVar5 - (int)__buffer);\n              return;\n            }" if (parenthesized_expression "(ppOVar7 == __first._M_current)" ( (binary_expression "ppOVar7 == __first._M_current" identifier == (field_expression "__first._M_current" identifier . field_identifier)) )) (compound_statement "{\n              if (__buffer == ppOVar5) {\n                return;\n              }\n              memmove((void *)((int)__last._M_current - ((int)ppOVar5 - (int)__buffer)),__buffer,\n                      (int)ppOVar5 - (int)__buffer);\n              return;\n            }" { (if_statement "if (__buffer == ppOVar5) {\n                return;\n              }" if (parenthesized_expression "(__buffer == ppOVar5)" ( (binary_expression "__buffer == ppOVar5" identifier == identifier) )) (compound_statement "{\n                return;\n              }" { (return_statement "return;" return ;) })) (expression_statement "memmove((void *)((int)__last._M_current - ((int)ppOVar5 - (int)__buffer)),__buffer,\n                      (int)ppOVar5 - (int)__buffer);" (call_expression "memmove((void *)((int)__last._M_current - ((int)ppOVar5 - (int)__buffer)),__buffer,\n                      (int)ppOVar5 - (int)__buffer)" identifier (argument_list "((void *)((int)__last._M_current - ((int)ppOVar5 - (int)__buffer)),__buffer,\n                      (int)ppOVar5 - (int)__buffer)" ( (cast_expression "(void *)((int)__last._M_current - ((int)ppOVar5 - (int)__buffer))" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__last._M_current - ((int)ppOVar5 - (int)__buffer))" ( (binary_expression "(int)__last._M_current - ((int)ppOVar5 - (int)__buffer)" (cast_expression "(int)__last._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__last._M_current" identifier . field_identifier)) - (parenthesized_expression "((int)ppOVar5 - (int)__buffer)" ( (binary_expression "(int)ppOVar5 - (int)__buffer" (cast_expression "(int)ppOVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__buffer" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) , identifier , (binary_expression "(int)ppOVar5 - (int)__buffer" (cast_expression "(int)ppOVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__buffer" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (return_statement "return;" return ;) })) (expression_statement "ppOVar7 = ppOVar7 + -1;" (assignment_expression "ppOVar7 = ppOVar7 + -1" identifier = (binary_expression "ppOVar7 + -1" identifier + number_literal)) ;) })) (expression_statement "*__last._M_current = *ppOVar6;" (assignment_expression "*__last._M_current = *ppOVar6" (pointer_expression "*__last._M_current" * (field_expression "__last._M_current" identifier . field_identifier)) = (pointer_expression "*ppOVar6" * identifier)) ;) (expression_statement "ppOVar5 = ppOVar6;" (assignment_expression "ppOVar5 = ppOVar6" identifier = identifier) ;) }) while (parenthesized_expression "(__buffer != ppOVar6)" ( (binary_expression "__buffer != ppOVar6" identifier != identifier) )) ;) })))) (return_statement "return;" return ;) })) (if_statement "if (__len2 < __len1) {\n      local_38 = __len1 / 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(__first._M_current + local_38);\n      __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Iter_comp_val<gold::Layout::Compare_segments>_>\n                ((__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__middle,__last._M_current,__comp_00);\n      local_3c.layout_ = local_20[0];\n      local_34 = (int)local_20[0] - (int)__middle._M_current >> 2;\n    }\n    else {\n      local_34 = __len2 / 2;\n      local_3c.layout_ = (Layout *)(__middle._M_current + local_34);\n      __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Val_comp_iter<gold::Layout::Compare_segments>_>\n                ((__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__first,__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_);\n      local_38 = (int)local_20[0] - (int)__first._M_current >> 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(Compare_segments)local_20[0];\n    }\n    __len1 = __len1 - local_38;\n    if ((local_34 < __len1) && (local_34 <= __buffer_size)) {\n      __last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_;\n      if (local_34 != 0) {\n        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;\n        if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n      }\n    }\n    else if (__buffer_size < __len1) {\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>_>\n                (local_20,__comp_00._M_comp.layout_,__middle._M_current,local_3c.layout_,0);\n      __last_00._M_current =\n           (Output_segment **)\n           (((int)local_3c.layout_ - (int)__middle._M_current) + (int)__comp_00._M_comp.layout_);\n    }" if (parenthesized_expression "(__len2 < __len1)" ( (binary_expression "__len2 < __len1" identifier < identifier) )) (compound_statement "{\n      local_38 = __len1 / 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(__first._M_current + local_38);\n      __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Iter_comp_val<gold::Layout::Compare_segments>_>\n                ((__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__middle,__last._M_current,__comp_00);\n      local_3c.layout_ = local_20[0];\n      local_34 = (int)local_20[0] - (int)__middle._M_current >> 2;\n    }" { (expression_statement "local_38 = __len1 / 2;" (assignment_expression "local_38 = __len1 / 2" identifier = (binary_expression "__len1 / 2" identifier / number_literal)) ;) (expression_statement "__comp_00._M_comp.layout_ = (Compare_segments)(__first._M_current + local_38);" (assignment_expression "__comp_00._M_comp.layout_ = (Compare_segments)(__first._M_current + local_38)" (field_expression "__comp_00._M_comp.layout_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier) = (call_expression "(Compare_segments)(__first._M_current + local_38)" (parenthesized_expression "(Compare_segments)" ( identifier )) (argument_list "(__first._M_current + local_38)" ( (binary_expression "__first._M_current + local_38" (field_expression "__first._M_current" identifier . field_identifier) + identifier) )))) ;) (expression_statement "__lower_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Iter_comp_val<gold::Layout::Compare_segments>_>\n                ((__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__middle,__last._M_current,__comp_00);" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Iter_comp_val<gold::Layout::Compare_segments>_>\n                ((__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__middle,__last._M_current,__comp_00)" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Iter_comp_val<gold::Layout::Compare_segments>_" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Iter_comp_val<gold" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold" (binary_expression "__lower_bound<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_comp_val" : : identifier : : identifier) < identifier) (ERROR "::Layout::Compare_segments" : : identifier : : identifier) > identifier) > (parenthesized_expression "((__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__middle,__last._M_current,__comp_00)" ( (parenthesized_expression "(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__middle,__last._M_current,__comp_00)" ( (comma_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__middle,__last._M_current,__comp_00" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Output_segment**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Output_segment" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) > identifier) > (ERROR ")" )) identifier) , (comma_expression "__middle,__last._M_current,__comp_00" identifier , (comma_expression "__last._M_current,__comp_00" (field_expression "__last._M_current" identifier . field_identifier) , identifier))) )) ))) ;) (expression_statement "local_3c.layout_ = local_20[0];" (assignment_expression "local_3c.layout_ = local_20[0]" (field_expression "local_3c.layout_" identifier . field_identifier) = (subscript_expression "local_20[0]" identifier [ number_literal ])) ;) (expression_statement "local_34 = (int)local_20[0] - (int)__middle._M_current >> 2;" (assignment_expression "local_34 = (int)local_20[0] - (int)__middle._M_current >> 2" identifier = (binary_expression "(int)local_20[0] - (int)__middle._M_current >> 2" (binary_expression "(int)local_20[0] - (int)__middle._M_current" (cast_expression "(int)local_20[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_20[0]" identifier [ number_literal ])) - (cast_expression "(int)__middle._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__middle._M_current" identifier . field_identifier))) >> number_literal)) ;) }) (else_clause "else {\n      local_34 = __len2 / 2;\n      local_3c.layout_ = (Layout *)(__middle._M_current + local_34);\n      __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Val_comp_iter<gold::Layout::Compare_segments>_>\n                ((__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__first,__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_);\n      local_38 = (int)local_20[0] - (int)__first._M_current >> 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(Compare_segments)local_20[0];\n    }\n    __len1 = __len1 - local_38;\n    if ((local_34 < __len1) && (local_34 <= __buffer_size)) {\n      __last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_;\n      if (local_34 != 0) {\n        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;\n        if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n      }\n    }\n    else if (__buffer_size < __len1) {\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>_>\n                (local_20,__comp_00._M_comp.layout_,__middle._M_current,local_3c.layout_,0);\n      __last_00._M_current =\n           (Output_segment **)\n           (((int)local_3c.layout_ - (int)__middle._M_current) + (int)__comp_00._M_comp.layout_);\n    }" else (compound_statement "{\n      local_34 = __len2 / 2;\n      local_3c.layout_ = (Layout *)(__middle._M_current + local_34);\n      __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Val_comp_iter<gold::Layout::Compare_segments>_>\n                ((__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__first,__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_);\n      local_38 = (int)local_20[0] - (int)__first._M_current >> 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(Compare_segments)local_20[0];\n    }\n    __len1 = __len1 - local_38;\n    if ((local_34 < __len1) && (local_34 <= __buffer_size)) {\n      __last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_;\n      if (local_34 != 0) {\n        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;\n        if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n      }\n    }\n    else if (__buffer_size < __len1) {\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>_>\n                (local_20,__comp_00._M_comp.layout_,__middle._M_current,local_3c.layout_,0);\n      __last_00._M_current =\n           (Output_segment **)\n           (((int)local_3c.layout_ - (int)__middle._M_current) + (int)__comp_00._M_comp.layout_);\n    }" { (expression_statement "local_34 = __len2 / 2;" (assignment_expression "local_34 = __len2 / 2" identifier = (binary_expression "__len2 / 2" identifier / number_literal)) ;) (expression_statement "local_3c.layout_ = (Layout *)(__middle._M_current + local_34);" (assignment_expression "local_3c.layout_ = (Layout *)(__middle._M_current + local_34)" (field_expression "local_3c.layout_" identifier . field_identifier) = (cast_expression "(Layout *)(__middle._M_current + local_34)" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__middle._M_current + local_34)" ( (binary_expression "__middle._M_current + local_34" (field_expression "__middle._M_current" identifier . field_identifier) + identifier) )))) ;) (expression_statement "__upper_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Val_comp_iter<gold::Layout::Compare_segments>_>\n                ((__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__first,__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_);\n      local_38 = (int)local_20[0] - (int)__first._M_current >> 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(Compare_segments)local_20[0];\n    }\n    __len1 = __len1 - local_38;\n    if ((local_34 < __len1) && (local_34 <= __buffer_size)) {\n      __last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_;\n      if (local_34 != 0) {\n        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;\n        if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n      }\n    }\n    else if (__buffer_size < __len1) {\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>_>\n                (local_20,__comp_00._M_comp.layout_,__middle._M_current,local_3c.layout_,0);" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Val_comp_iter<gold::Layout::Compare_segments>_>\n                ((__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__first,__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_);\n      local_38 = (int)local_20[0] - (int)__first._M_current >> 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(Compare_segments)local_20[0];\n    }\n    __len1 = __len1 - local_38;\n    if ((local_34 < __len1) && (local_34 <= __buffer_size)) {\n      __last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_;\n      if (local_34 != 0) {\n        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;\n        if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n      }\n    }\n    else if (__buffer_size < __len1) {\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>_>\n                (local_20,__comp_00._M_comp.layout_,__middle._M_current,local_3c.layout_,0)" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Val_comp_iter<gold::Layout::Compare_segments>_" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx::__ops::_Val_comp_iter<gold" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment*,___gnu_cxx" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold" (binary_expression "__upper_bound<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::__ops::_Val_comp_iter" : : identifier : : identifier) < identifier) (ERROR "::Layout::Compare_segments" : : identifier : : identifier) > identifier) > (parenthesized_expression "((__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__first,__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_);\n      local_38 = (int)local_20[0] - (int)__first._M_current >> 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(Compare_segments)local_20[0];\n    }\n    __len1 = __len1 - local_38;\n    if ((local_34 < __len1) && (local_34 <= __buffer_size)) {\n      __last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_;\n      if (local_34 != 0) {\n        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;\n        if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n      }\n    }\n    else if (__buffer_size < __len1) {\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>_>\n                (local_20,__comp_00._M_comp.layout_,__middle._M_current,local_3c.layout_,0)" ( (binary_expression "(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__first,__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_);\n      local_38 = (int)local_20[0] - (int)__first._M_current >> 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(Compare_segments)local_20[0];\n    }\n    __len1 = __len1 - local_38;\n    if ((local_34 < __len1) && (local_34 <= __buffer_size)) {\n      __last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_;\n      if (local_34 != 0) {\n        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;\n        if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n      }\n    }\n    else if (__buffer_size < __len1) {\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>_>\n                (local_20,__comp_00._M_comp.layout_,__middle._M_current,local_3c.layout_,0)" (binary_expression "(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__first,__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_);\n      local_38 = (int)local_20[0] - (int)__first._M_current >> 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(Compare_segments)local_20[0];\n    }\n    __len1 = __len1 - local_38;\n    if ((local_34 < __len1) && (local_34 <= __buffer_size)) {\n      __last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_;\n      if (local_34 != 0) {\n        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;\n        if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n      }\n    }\n    else if (__buffer_size < __len1) {\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>_" (binary_expression "(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__first,__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_);\n      local_38 = (int)local_20[0] - (int)__first._M_current >> 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(Compare_segments)local_20[0];\n    }\n    __len1 = __len1 - local_38;\n    if ((local_34 < __len1) && (local_34 <= __buffer_size)) {\n      __last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_;\n      if (local_34 != 0) {\n        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;\n        if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n      }\n    }\n    else if (__buffer_size < __len1) {\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_" (binary_expression "(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__first,__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_);\n      local_38 = (int)local_20[0] - (int)__first._M_current >> 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(Compare_segments)local_20[0];\n    }\n    __len1 = __len1 - local_38;\n    if ((local_34 < __len1) && (local_34 <= __buffer_size)) {\n      __last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_;\n      if (local_34 != 0) {\n        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;\n        if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n      }\n    }\n    else if (__buffer_size < __len1) {\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold" (binary_expression "(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__first,__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_);\n      local_38 = (int)local_20[0] - (int)__first._M_current >> 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(Compare_segments)local_20[0];\n    }\n    __len1 = __len1 - local_38;\n    if ((local_34 < __len1) && (local_34 <= __buffer_size)) {\n      __last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_;\n      if (local_34 != 0) {\n        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;\n        if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n      }\n    }\n    else if (__buffer_size < __len1) {\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std" (binary_expression "(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__first,__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_);\n      local_38 = (int)local_20[0] - (int)__first._M_current >> 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(Compare_segments)local_20[0];\n    }\n    __len1 = __len1 - local_38;\n    if ((local_34 < __len1) && (local_34 <= __buffer_size)) {\n      __last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_;\n      if (local_34 != 0) {\n        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;\n        if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n      }\n    }\n    else if (__buffer_size < __len1) {\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold" (binary_expression "(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__first,__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_);\n      local_38 = (int)local_20[0] - (int)__first._M_current >> 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(Compare_segments)local_20[0];\n    }\n    __len1 = __len1 - local_38;\n    if ((local_34 < __len1) && (local_34 <= __buffer_size)) {\n      __last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_;\n      if (local_34 != 0) {\n        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;\n        if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n      }\n    }\n    else if (__buffer_size < __len1) {\n      _V2::\n      __rotate<__gnu_cxx" (parenthesized_expression "(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__first,__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_);\n      local_38 = (int)local_20[0] - (int)__first._M_current >> 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(Compare_segments)local_20[0];\n    }\n    __len1 = __len1 - local_38;\n    if ((local_34 < __len1) && (local_34 <= __buffer_size)) {\n      __last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_;\n      if (local_34 != 0) {\n        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;\n        if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n      }\n    }\n    else if (__buffer_size < __len1)" ( (ERROR "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__first,__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_);\n      local_38 = (int)local_20[0] - (int)__first._M_current >> 2;\n      __comp_00._M_comp.layout_ = (Compare_segments)(Compare_segments)local_20[0];\n    }\n    __len1 = __len1 - local_38;\n    if ((local_34 < __len1) && (local_34 <= __buffer_size))" (comma_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20,__first,__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_)" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                  )local_20" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Output_segment**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Output_segment" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) > identifier) > (ERROR ")" )) identifier) , (comma_expression "__first,__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_)" identifier , (comma_expression "__middle._M_current,\n                 (_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_)" (field_expression "__middle._M_current" identifier . field_identifier) , (parenthesized_expression "(_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_)" ( (binary_expression "_Val_comp_iter<gold::Layout::Compare_segments>)local_3c.layout_" (binary_expression "_Val_comp_iter<gold" identifier < identifier) (ERROR "::Layout::Compare_segments" : : identifier : : identifier) > (ERROR ")" )) (field_expression "local_3c.layout_" identifier . field_identifier)) ))))) ; (assignment_expression "local_38 = (int)local_20[0] - (int)__first._M_current >> 2" identifier = (binary_expression "(int)local_20[0] - (int)__first._M_current >> 2" (binary_expression "(int)local_20[0] - (int)__first._M_current" (cast_expression "(int)local_20[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_20[0]" identifier [ number_literal ])) - (cast_expression "(int)__first._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__first._M_current" identifier . field_identifier))) >> number_literal)) ; (assignment_expression "__comp_00._M_comp.layout_ = (Compare_segments)(Compare_segments)local_20[0]" (field_expression "__comp_00._M_comp.layout_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier) = (cast_expression "(Compare_segments)(Compare_segments)local_20[0]" ( (type_descriptor "Compare_segments" type_identifier) ) (cast_expression "(Compare_segments)local_20[0]" ( (type_descriptor "Compare_segments" type_identifier) ) (subscript_expression "local_20[0]" identifier [ number_literal ])))) ; } (call_expression "__len1 = __len1 - local_38;\n    if ((local_34 < __len1) && (local_34 <= __buffer_size))" (assignment_expression "__len1 = __len1 - local_38" identifier = (binary_expression "__len1 - local_38" identifier - identifier)) (ERROR ";\n    if" ; if) (argument_list "((local_34 < __len1) && (local_34 <= __buffer_size))" ( (binary_expression "(local_34 < __len1) && (local_34 <= __buffer_size)" (parenthesized_expression "(local_34 < __len1)" ( (binary_expression "local_34 < __len1" identifier < identifier) )) && (parenthesized_expression "(local_34 <= __buffer_size)" ( (binary_expression "local_34 <= __buffer_size" identifier <= identifier) ))) )))) (compound_statement "{\n      __last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_;\n      if (local_34 != 0) {\n        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;\n        if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n      }\n    }" { (expression_statement "__last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_;" (assignment_expression "__last_00._M_current = (Output_segment **)__comp_00._M_comp.layout_" (field_expression "__last_00._M_current" identifier . field_identifier) = (cast_expression "(Output_segment **)__comp_00._M_comp.layout_" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "__comp_00._M_comp.layout_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier))) ;) (if_statement "if (local_34 != 0) {\n        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;\n        if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n      }" if (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) (compound_statement "{\n        sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;\n        if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n      }" { (expression_statement "sVar4 = (int)local_3c.layout_ - (int)__middle._M_current;" (assignment_expression "sVar4 = (int)local_3c.layout_ - (int)__middle._M_current" identifier = (binary_expression "(int)local_3c.layout_ - (int)__middle._M_current" (cast_expression "(int)local_3c.layout_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_3c.layout_" identifier . field_identifier)) - (cast_expression "(int)__middle._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__middle._M_current" identifier . field_identifier)))) ;) (if_statement "if (local_3c.layout_ == (Layout *)__middle._M_current) {\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }\n        else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }" if (parenthesized_expression "(local_3c.layout_ == (Layout *)__middle._M_current)" ( (binary_expression "local_3c.layout_ == (Layout *)__middle._M_current" (field_expression "local_3c.layout_" identifier . field_identifier) == (cast_expression "(Layout *)__middle._M_current" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "__middle._M_current" identifier . field_identifier))) )) (compound_statement "{\n          if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }" { (if_statement "if (__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_) goto LAB_000c02b9;" if (parenthesized_expression "(__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_)" ( (binary_expression "__comp_00._M_comp.layout_ != (Compare_segments)local_3c.layout_" (field_expression "__comp_00._M_comp.layout_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier) != (cast_expression "(Compare_segments)local_3c.layout_" ( (type_descriptor "Compare_segments" type_identifier) ) (field_expression "local_3c.layout_" identifier . field_identifier))) )) (goto_statement "goto LAB_000c02b9;" goto statement_identifier ;)) (expression_statement "__last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);" (assignment_expression "__last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_)" (field_expression "__last_00._M_current" identifier . field_identifier) = (cast_expression "(Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(sVar4 + (int)__comp_00._M_comp.layout_)" ( (binary_expression "sVar4 + (int)__comp_00._M_comp.layout_" identifier + (cast_expression "(int)__comp_00._M_comp.layout_" ( (type_descriptor "int" primitive_type) ) (field_expression "__comp_00._M_comp.layout_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier))) )))) ;) }) (else_clause "else {\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }" else (compound_statement "{\n          memmove(__buffer,__middle._M_current,sVar4);\n          if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }\n          if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }\n          __last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);\n        }" { (expression_statement "memmove(__buffer,__middle._M_current,sVar4);" (call_expression "memmove(__buffer,__middle._M_current,sVar4)" identifier (argument_list "(__buffer,__middle._M_current,sVar4)" ( identifier , (field_expression "__middle._M_current" identifier . field_identifier) , identifier ))) ;) (if_statement "if (__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current) {\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }" if (parenthesized_expression "(__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current)" ( (binary_expression "__comp_00._M_comp.layout_ != (Compare_segments)__middle._M_current" (field_expression "__comp_00._M_comp.layout_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier) != (cast_expression "(Compare_segments)__middle._M_current" ( (type_descriptor "Compare_segments" type_identifier) ) (field_expression "__middle._M_current" identifier . field_identifier))) )) (compound_statement "{\nLAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);\n          }" { (labeled_statement "LAB_000c02b9:\n            memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);" statement_identifier : (expression_statement "memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_);" (call_expression "memmove((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_)" identifier (argument_list "((void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)),\n                    (void *)__comp_00._M_comp.layout_,\n                    (int)__middle._M_current - (int)__comp_00._M_comp.layout_)" ( (cast_expression "(void *)((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_))" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_))" ( (binary_expression "(int)local_3c.layout_ -\n                            ((int)__middle._M_current - (int)__comp_00._M_comp.layout_)" (cast_expression "(int)local_3c.layout_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_3c.layout_" identifier . field_identifier)) - (parenthesized_expression "((int)__middle._M_current - (int)__comp_00._M_comp.layout_)" ( (binary_expression "(int)__middle._M_current - (int)__comp_00._M_comp.layout_" (cast_expression "(int)__middle._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__middle._M_current" identifier . field_identifier)) - (cast_expression "(int)__comp_00._M_comp.layout_" ( (type_descriptor "int" primitive_type) ) (field_expression "__comp_00._M_comp.layout_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier))) ))) ))) , (cast_expression "(void *)__comp_00._M_comp.layout_" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "__comp_00._M_comp.layout_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier)) , (binary_expression "(int)__middle._M_current - (int)__comp_00._M_comp.layout_" (cast_expression "(int)__middle._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__middle._M_current" identifier . field_identifier)) - (cast_expression "(int)__comp_00._M_comp.layout_" ( (type_descriptor "int" primitive_type) ) (field_expression "__comp_00._M_comp.layout_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier))) ))) ;)) })) (if_statement "if (sVar4 != 0) {\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }" if (parenthesized_expression "(sVar4 != 0)" ( (binary_expression "sVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);\n          }" { (expression_statement "memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4);" (call_expression "memmove((void *)__comp_00._M_comp.layout_,__buffer,sVar4)" identifier (argument_list "((void *)__comp_00._M_comp.layout_,__buffer,sVar4)" ( (cast_expression "(void *)__comp_00._M_comp.layout_" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "__comp_00._M_comp.layout_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier)) , identifier , identifier ))) ;) })) (expression_statement "__last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_);" (assignment_expression "__last_00._M_current = (Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_)" (field_expression "__last_00._M_current" identifier . field_identifier) = (cast_expression "(Output_segment **)(sVar4 + (int)__comp_00._M_comp.layout_)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(sVar4 + (int)__comp_00._M_comp.layout_)" ( (binary_expression "sVar4 + (int)__comp_00._M_comp.layout_" identifier + (cast_expression "(int)__comp_00._M_comp.layout_" ( (type_descriptor "int" primitive_type) ) (field_expression "__comp_00._M_comp.layout_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier))) )))) ;) }))) })) }) (ERROR "else if (__buffer_size < __len1" else if ( identifier < identifier) )) (ERROR "{\n      _V2::\n      __rotate" { identifier : : identifier) < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) > identifier) > (parenthesized_expression "(local_20,__comp_00._M_comp.layout_,__middle._M_current,local_3c.layout_,0)" ( (comma_expression "local_20,__comp_00._M_comp.layout_,__middle._M_current,local_3c.layout_,0" identifier , (comma_expression "__comp_00._M_comp.layout_,__middle._M_current,local_3c.layout_,0" (field_expression "__comp_00._M_comp.layout_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier) , (comma_expression "__middle._M_current,local_3c.layout_,0" (field_expression "__middle._M_current" identifier . field_identifier) , (comma_expression "local_3c.layout_,0" (field_expression "local_3c.layout_" identifier . field_identifier) , number_literal)))) ))) ))) ;) (expression_statement "__last_00._M_current =\n           (Output_segment **)\n           (((int)local_3c.layout_ - (int)__middle._M_current) + (int)__comp_00._M_comp.layout_);" (assignment_expression "__last_00._M_current =\n           (Output_segment **)\n           (((int)local_3c.layout_ - (int)__middle._M_current) + (int)__comp_00._M_comp.layout_)" (field_expression "__last_00._M_current" identifier . field_identifier) = (cast_expression "(Output_segment **)\n           (((int)local_3c.layout_ - (int)__middle._M_current) + (int)__comp_00._M_comp.layout_)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(((int)local_3c.layout_ - (int)__middle._M_current) + (int)__comp_00._M_comp.layout_)" ( (binary_expression "((int)local_3c.layout_ - (int)__middle._M_current) + (int)__comp_00._M_comp.layout_" (parenthesized_expression "((int)local_3c.layout_ - (int)__middle._M_current)" ( (binary_expression "(int)local_3c.layout_ - (int)__middle._M_current" (cast_expression "(int)local_3c.layout_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_3c.layout_" identifier . field_identifier)) - (cast_expression "(int)__middle._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__middle._M_current" identifier . field_identifier))) )) + (cast_expression "(int)__comp_00._M_comp.layout_" ( (type_descriptor "int" primitive_type) ) (field_expression "__comp_00._M_comp.layout_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier))) )))) ;) }))) type_identifier ; (compound_statement "{\n      __last_00._M_current = (Output_segment **)local_3c.layout_;\n      if (__len1 != 0) {\n        sVar4 = (int)__middle._M_current - (int)__comp_00._M_comp.layout_;\n        __last_00._M_current = (Output_segment **)((int)local_3c.layout_ - sVar4);\n        if (__comp_00._M_comp.layout_ == (Compare_segments)__middle._M_current) {\n          if ((Compare_segments)local_3c.layout_ != __comp_00._M_comp.layout_) goto LAB_000c0476;\n        }\n        else {\n          memmove(__buffer,(void *)__comp_00._M_comp.layout_,sVar4);\n          if (local_3c.layout_ != (Layout *)__middle._M_current) {\nLAB_000c0476:\n            memmove((void *)__comp_00._M_comp.layout_,__middle._M_current,\n                    (int)local_3c.layout_ - (int)__middle._M_current);\n          }\n          if (sVar4 != 0) {\n            memmove(__last_00._M_current,__buffer,sVar4);\n          }\n        }\n      }\n    }" { (expression_statement "__last_00._M_current = (Output_segment **)local_3c.layout_;" (assignment_expression "__last_00._M_current = (Output_segment **)local_3c.layout_" (field_expression "__last_00._M_current" identifier . field_identifier) = (cast_expression "(Output_segment **)local_3c.layout_" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "local_3c.layout_" identifier . field_identifier))) ;) (if_statement "if (__len1 != 0) {\n        sVar4 = (int)__middle._M_current - (int)__comp_00._M_comp.layout_;\n        __last_00._M_current = (Output_segment **)((int)local_3c.layout_ - sVar4);\n        if (__comp_00._M_comp.layout_ == (Compare_segments)__middle._M_current) {\n          if ((Compare_segments)local_3c.layout_ != __comp_00._M_comp.layout_) goto LAB_000c0476;\n        }\n        else {\n          memmove(__buffer,(void *)__comp_00._M_comp.layout_,sVar4);\n          if (local_3c.layout_ != (Layout *)__middle._M_current) {\nLAB_000c0476:\n            memmove((void *)__comp_00._M_comp.layout_,__middle._M_current,\n                    (int)local_3c.layout_ - (int)__middle._M_current);\n          }\n          if (sVar4 != 0) {\n            memmove(__last_00._M_current,__buffer,sVar4);\n          }\n        }\n      }" if (parenthesized_expression "(__len1 != 0)" ( (binary_expression "__len1 != 0" identifier != number_literal) )) (compound_statement "{\n        sVar4 = (int)__middle._M_current - (int)__comp_00._M_comp.layout_;\n        __last_00._M_current = (Output_segment **)((int)local_3c.layout_ - sVar4);\n        if (__comp_00._M_comp.layout_ == (Compare_segments)__middle._M_current) {\n          if ((Compare_segments)local_3c.layout_ != __comp_00._M_comp.layout_) goto LAB_000c0476;\n        }\n        else {\n          memmove(__buffer,(void *)__comp_00._M_comp.layout_,sVar4);\n          if (local_3c.layout_ != (Layout *)__middle._M_current) {\nLAB_000c0476:\n            memmove((void *)__comp_00._M_comp.layout_,__middle._M_current,\n                    (int)local_3c.layout_ - (int)__middle._M_current);\n          }\n          if (sVar4 != 0) {\n            memmove(__last_00._M_current,__buffer,sVar4);\n          }\n        }\n      }" { (expression_statement "sVar4 = (int)__middle._M_current - (int)__comp_00._M_comp.layout_;" (assignment_expression "sVar4 = (int)__middle._M_current - (int)__comp_00._M_comp.layout_" identifier = (binary_expression "(int)__middle._M_current - (int)__comp_00._M_comp.layout_" (cast_expression "(int)__middle._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__middle._M_current" identifier . field_identifier)) - (cast_expression "(int)__comp_00._M_comp.layout_" ( (type_descriptor "int" primitive_type) ) (field_expression "__comp_00._M_comp.layout_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier)))) ;) (expression_statement "__last_00._M_current = (Output_segment **)((int)local_3c.layout_ - sVar4);" (assignment_expression "__last_00._M_current = (Output_segment **)((int)local_3c.layout_ - sVar4)" (field_expression "__last_00._M_current" identifier . field_identifier) = (cast_expression "(Output_segment **)((int)local_3c.layout_ - sVar4)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_3c.layout_ - sVar4)" ( (binary_expression "(int)local_3c.layout_ - sVar4" (cast_expression "(int)local_3c.layout_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_3c.layout_" identifier . field_identifier)) - identifier) )))) ;) (if_statement "if (__comp_00._M_comp.layout_ == (Compare_segments)__middle._M_current) {\n          if ((Compare_segments)local_3c.layout_ != __comp_00._M_comp.layout_) goto LAB_000c0476;\n        }\n        else {\n          memmove(__buffer,(void *)__comp_00._M_comp.layout_,sVar4);\n          if (local_3c.layout_ != (Layout *)__middle._M_current) {\nLAB_000c0476:\n            memmove((void *)__comp_00._M_comp.layout_,__middle._M_current,\n                    (int)local_3c.layout_ - (int)__middle._M_current);\n          }\n          if (sVar4 != 0) {\n            memmove(__last_00._M_current,__buffer,sVar4);\n          }\n        }" if (parenthesized_expression "(__comp_00._M_comp.layout_ == (Compare_segments)__middle._M_current)" ( (binary_expression "__comp_00._M_comp.layout_ == (Compare_segments)__middle._M_current" (field_expression "__comp_00._M_comp.layout_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier) == (cast_expression "(Compare_segments)__middle._M_current" ( (type_descriptor "Compare_segments" type_identifier) ) (field_expression "__middle._M_current" identifier . field_identifier))) )) (compound_statement "{\n          if ((Compare_segments)local_3c.layout_ != __comp_00._M_comp.layout_) goto LAB_000c0476;\n        }" { (if_statement "if ((Compare_segments)local_3c.layout_ != __comp_00._M_comp.layout_) goto LAB_000c0476;" if (parenthesized_expression "((Compare_segments)local_3c.layout_ != __comp_00._M_comp.layout_)" ( (binary_expression "(Compare_segments)local_3c.layout_ != __comp_00._M_comp.layout_" (cast_expression "(Compare_segments)local_3c.layout_" ( (type_descriptor "Compare_segments" type_identifier) ) (field_expression "local_3c.layout_" identifier . field_identifier)) != (field_expression "__comp_00._M_comp.layout_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier)) )) (goto_statement "goto LAB_000c0476;" goto statement_identifier ;)) }) (else_clause "else {\n          memmove(__buffer,(void *)__comp_00._M_comp.layout_,sVar4);\n          if (local_3c.layout_ != (Layout *)__middle._M_current) {\nLAB_000c0476:\n            memmove((void *)__comp_00._M_comp.layout_,__middle._M_current,\n                    (int)local_3c.layout_ - (int)__middle._M_current);\n          }\n          if (sVar4 != 0) {\n            memmove(__last_00._M_current,__buffer,sVar4);\n          }\n        }" else (compound_statement "{\n          memmove(__buffer,(void *)__comp_00._M_comp.layout_,sVar4);\n          if (local_3c.layout_ != (Layout *)__middle._M_current) {\nLAB_000c0476:\n            memmove((void *)__comp_00._M_comp.layout_,__middle._M_current,\n                    (int)local_3c.layout_ - (int)__middle._M_current);\n          }\n          if (sVar4 != 0) {\n            memmove(__last_00._M_current,__buffer,sVar4);\n          }\n        }" { (expression_statement "memmove(__buffer,(void *)__comp_00._M_comp.layout_,sVar4);" (call_expression "memmove(__buffer,(void *)__comp_00._M_comp.layout_,sVar4)" identifier (argument_list "(__buffer,(void *)__comp_00._M_comp.layout_,sVar4)" ( identifier , (cast_expression "(void *)__comp_00._M_comp.layout_" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "__comp_00._M_comp.layout_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier)) , identifier ))) ;) (if_statement "if (local_3c.layout_ != (Layout *)__middle._M_current) {\nLAB_000c0476:\n            memmove((void *)__comp_00._M_comp.layout_,__middle._M_current,\n                    (int)local_3c.layout_ - (int)__middle._M_current);\n          }" if (parenthesized_expression "(local_3c.layout_ != (Layout *)__middle._M_current)" ( (binary_expression "local_3c.layout_ != (Layout *)__middle._M_current" (field_expression "local_3c.layout_" identifier . field_identifier) != (cast_expression "(Layout *)__middle._M_current" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "__middle._M_current" identifier . field_identifier))) )) (compound_statement "{\nLAB_000c0476:\n            memmove((void *)__comp_00._M_comp.layout_,__middle._M_current,\n                    (int)local_3c.layout_ - (int)__middle._M_current);\n          }" { (labeled_statement "LAB_000c0476:\n            memmove((void *)__comp_00._M_comp.layout_,__middle._M_current,\n                    (int)local_3c.layout_ - (int)__middle._M_current);" statement_identifier : (expression_statement "memmove((void *)__comp_00._M_comp.layout_,__middle._M_current,\n                    (int)local_3c.layout_ - (int)__middle._M_current);" (call_expression "memmove((void *)__comp_00._M_comp.layout_,__middle._M_current,\n                    (int)local_3c.layout_ - (int)__middle._M_current)" identifier (argument_list "((void *)__comp_00._M_comp.layout_,__middle._M_current,\n                    (int)local_3c.layout_ - (int)__middle._M_current)" ( (cast_expression "(void *)__comp_00._M_comp.layout_" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "__comp_00._M_comp.layout_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier)) , (field_expression "__middle._M_current" identifier . field_identifier) , (binary_expression "(int)local_3c.layout_ - (int)__middle._M_current" (cast_expression "(int)local_3c.layout_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_3c.layout_" identifier . field_identifier)) - (cast_expression "(int)__middle._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__middle._M_current" identifier . field_identifier))) ))) ;)) })) (if_statement "if (sVar4 != 0) {\n            memmove(__last_00._M_current,__buffer,sVar4);\n          }" if (parenthesized_expression "(sVar4 != 0)" ( (binary_expression "sVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            memmove(__last_00._M_current,__buffer,sVar4);\n          }" { (expression_statement "memmove(__last_00._M_current,__buffer,sVar4);" (call_expression "memmove(__last_00._M_current,__buffer,sVar4)" identifier (argument_list "(__last_00._M_current,__buffer,sVar4)" ( (field_expression "__last_00._M_current" identifier . field_identifier) , identifier , identifier ))) ;) })) }))) })) }) (ERROR "__merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_int,_gold::Output_segment**,___gnu_cxx::" (comma_expression "__merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_int,_gold" (binary_expression "__merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_int" (binary_expression "__merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_" (binary_expression "__merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold" (binary_expression "__merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std" (binary_expression "__merge_adaptive<__gnu_cxx::__normal_iterator<gold" (binary_expression "__merge_adaptive<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) , identifier) : : (binary_expression "Output_segment**,___gnu_cxx" identifier * (pointer_expression "*,___gnu_cxx" * (ERROR "," ,) identifier)) : :) (labeled_statement "__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n              (__first,(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                        )__comp_00._M_comp.layout_,__last_00,local_38,local_34,__buffer,\n               __buffer_size,__comp);" statement_identifier (ERROR "::_Iter_comp_iter<gold:" : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) :) : (labeled_statement "Layout::Compare_segments>_>\n              (__first,(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                        )__comp_00._M_comp.layout_,__last_00,local_38,local_34,__buffer,\n               __buffer_size,__comp);" statement_identifier : (ERROR ":" :) (expression_statement "Compare_segments>_>\n              (__first,(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                        )__comp_00._M_comp.layout_,__last_00,local_38,local_34,__buffer,\n               __buffer_size,__comp);" (binary_expression "Compare_segments>_>\n              (__first,(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                        )__comp_00._M_comp.layout_,__last_00,local_38,local_34,__buffer,\n               __buffer_size,__comp)" (binary_expression "Compare_segments>_" identifier > identifier) > (parenthesized_expression "(__first,(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                        )__comp_00._M_comp.layout_,__last_00,local_38,local_34,__buffer,\n               __buffer_size,__comp)" ( (comma_expression "__first,(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                        )__comp_00._M_comp.layout_,__last_00,local_38,local_34,__buffer,\n               __buffer_size,__comp)" identifier , (parenthesized_expression "(__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                        )__comp_00._M_comp.layout_,__last_00,local_38,local_34,__buffer,\n               __buffer_size,__comp)" ( (comma_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                        )__comp_00._M_comp.layout_,__last_00,local_38,local_34,__buffer,\n               __buffer_size,__comp" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n                        )__comp_00._M_comp.layout_" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Output_segment**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Output_segment" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) > identifier) > (ERROR ")" )) (field_expression "__comp_00._M_comp.layout_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier)) , (comma_expression "__last_00,local_38,local_34,__buffer,\n               __buffer_size,__comp" identifier , (comma_expression "local_38,local_34,__buffer,\n               __buffer_size,__comp" identifier , (comma_expression "local_34,__buffer,\n               __buffer_size,__comp" identifier , (comma_expression "__buffer,\n               __buffer_size,__comp" identifier , (comma_expression "__buffer_size,__comp" identifier , identifier)))))) ))) ))) ;))) (expression_statement "__len2 = __len2 - local_34;" (assignment_expression "__len2 = __len2 - local_34" identifier = (binary_expression "__len2 - local_34" identifier - identifier)) ;) (expression_statement "__middle._M_current = (Output_segment **)local_3c.layout_;" (assignment_expression "__middle._M_current = (Output_segment **)local_3c.layout_" (field_expression "__middle._M_current" identifier . field_identifier) = (cast_expression "(Output_segment **)local_3c.layout_" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "local_3c.layout_" identifier . field_identifier))) ;) (expression_statement "__first._M_current = __last_00._M_current;" (assignment_expression "__first._M_current = __last_00._M_current" (field_expression "__first._M_current" identifier . field_identifier) = (field_expression "__last_00._M_current" identifier . field_identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) (ERROR "}" }))
(translation_unit "void FUN_000c00a0(void)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  char cVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 unaff_EBX;\n  undefined4 *puVar6;\n  undefined1 *puVar7;\n  undefined4 unaff_EBP;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 unaff_ESI;\n  undefined4 unaff_EDI;\n  undefined4 *puVar11;\n  \n  do {\n    *(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5;\n    iVar5 = *(int *)((int)register0x00000010 + -4);\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    puVar4 = *(undefined4 **)((int)register0x00000010 + 4);\n    *(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b;\n    iVar5 = *(int *)((int)register0x00000010 + 0x14);\n    iVar9 = *(int *)((int)register0x00000010 + 0x10);\n    puVar8 = *(undefined4 **)((int)register0x00000010 + 8);\n    *(undefined4 *)((int)register0x00000010 + -0x4c) =\n         *(undefined4 *)((int)register0x00000010 + 0xc);\n    iVar1 = *(int *)((int)register0x00000010 + 0x1c);\n    puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18);\n    *(int *)((int)register0x00000010 + -0x44) = iVar5;\n    *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x50) =\n         *(undefined4 *)((int)register0x00000010 + 0x20);\n    if (iVar1 < iVar5) {\n      iVar5 = iVar1;\n    }\n    if (iVar9 <= iVar5) {\n      iVar5 = (int)puVar8 - (int)puVar4;\n      if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar11 == puVar10) {\n        return;\n      }\n      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }\n      *(int *)((int)register0x00000010 + -100) = iVar5;\n      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;\n      memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) <= iVar1) {\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);\n      iVar5 = (int)puVar4 - (int)puVar8;\n      if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) < iVar9) {\n      *(int *)((int)register0x00000010 + -0x2c) = iVar1;\n      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(int *)((int)register0x00000010 + -0x70) = iVar5;\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;\n      FUN_000bfba0();\n      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);\n      iVar5 = *(int *)((int)register0x00000010 + -0x30);\n    }\n    else {\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }\n    iVar1 = *(int *)((int)register0x00000010 + -0x38);\n    *(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c);\n    if ((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)) {\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      puVar10 = puVar4;\n      if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }\n    }\n    else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }\n    uVar2 = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + -4) = uVar2;\n    *(int *)(puVar7 + -8) = iVar5;\n    *(int *)(puVar7 + 0xc) = iVar5;\n    *(undefined4 **)(puVar7 + -0xc) = puVar11;\n    iVar5 = *(int *)(puVar7 + 0x28);\n    *(int *)(puVar7 + -0x10) = iVar5;\n    *(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24);\n    *(undefined4 **)(puVar7 + -0x18) = puVar10;\n    *(undefined4 **)(puVar7 + -0x1c) = puVar4;\n    *(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14);\n    *(undefined4 *)(puVar7 + -0x24) = 0xc032a;\n    FUN_000c00a0();\n    *(undefined4 *)(puVar7 + 0x7c) = uVar2;\n    *(undefined4 **)(puVar7 + 0x74) = puVar11;\n    *(undefined4 **)(puVar7 + 0x60) = puVar10;\n    *(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5;\n    *(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10);\n    *(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20);\n    unaff_EBX = *(undefined4 *)(puVar7 + 0x4c);\n    unaff_ESI = *(undefined4 *)(puVar7 + 0x50);\n    unaff_EDI = *(undefined4 *)(puVar7 + 0x54);\n    unaff_EBP = *(undefined4 *)(puVar7 + 0x58);\n    register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c);\n  } while( true );\n}\n\n" (function_definition "void FUN_000c00a0(void)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  char cVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 unaff_EBX;\n  undefined4 *puVar6;\n  undefined1 *puVar7;\n  undefined4 unaff_EBP;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 unaff_ESI;\n  undefined4 unaff_EDI;\n  undefined4 *puVar11;\n  \n  do {\n    *(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5;\n    iVar5 = *(int *)((int)register0x00000010 + -4);\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    puVar4 = *(undefined4 **)((int)register0x00000010 + 4);\n    *(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b;\n    iVar5 = *(int *)((int)register0x00000010 + 0x14);\n    iVar9 = *(int *)((int)register0x00000010 + 0x10);\n    puVar8 = *(undefined4 **)((int)register0x00000010 + 8);\n    *(undefined4 *)((int)register0x00000010 + -0x4c) =\n         *(undefined4 *)((int)register0x00000010 + 0xc);\n    iVar1 = *(int *)((int)register0x00000010 + 0x1c);\n    puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18);\n    *(int *)((int)register0x00000010 + -0x44) = iVar5;\n    *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x50) =\n         *(undefined4 *)((int)register0x00000010 + 0x20);\n    if (iVar1 < iVar5) {\n      iVar5 = iVar1;\n    }\n    if (iVar9 <= iVar5) {\n      iVar5 = (int)puVar8 - (int)puVar4;\n      if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar11 == puVar10) {\n        return;\n      }\n      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }\n      *(int *)((int)register0x00000010 + -100) = iVar5;\n      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;\n      memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) <= iVar1) {\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);\n      iVar5 = (int)puVar4 - (int)puVar8;\n      if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) < iVar9) {\n      *(int *)((int)register0x00000010 + -0x2c) = iVar1;\n      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(int *)((int)register0x00000010 + -0x70) = iVar5;\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;\n      FUN_000bfba0();\n      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);\n      iVar5 = *(int *)((int)register0x00000010 + -0x30);\n    }\n    else {\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }\n    iVar1 = *(int *)((int)register0x00000010 + -0x38);\n    *(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c);\n    if ((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)) {\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      puVar10 = puVar4;\n      if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }\n    }\n    else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }\n    uVar2 = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + -4) = uVar2;\n    *(int *)(puVar7 + -8) = iVar5;\n    *(int *)(puVar7 + 0xc) = iVar5;\n    *(undefined4 **)(puVar7 + -0xc) = puVar11;\n    iVar5 = *(int *)(puVar7 + 0x28);\n    *(int *)(puVar7 + -0x10) = iVar5;\n    *(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24);\n    *(undefined4 **)(puVar7 + -0x18) = puVar10;\n    *(undefined4 **)(puVar7 + -0x1c) = puVar4;\n    *(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14);\n    *(undefined4 *)(puVar7 + -0x24) = 0xc032a;\n    FUN_000c00a0();\n    *(undefined4 *)(puVar7 + 0x7c) = uVar2;\n    *(undefined4 **)(puVar7 + 0x74) = puVar11;\n    *(undefined4 **)(puVar7 + 0x60) = puVar10;\n    *(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5;\n    *(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10);\n    *(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20);\n    unaff_EBX = *(undefined4 *)(puVar7 + 0x4c);\n    unaff_ESI = *(undefined4 *)(puVar7 + 0x50);\n    unaff_EDI = *(undefined4 *)(puVar7 + 0x54);\n    unaff_EBP = *(undefined4 *)(puVar7 + 0x58);\n    register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c);\n  } while( true );\n}" primitive_type (function_declarator "FUN_000c00a0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  char cVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 unaff_EBX;\n  undefined4 *puVar6;\n  undefined1 *puVar7;\n  undefined4 unaff_EBP;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 unaff_ESI;\n  undefined4 unaff_EDI;\n  undefined4 *puVar11;\n  \n  do {\n    *(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5;\n    iVar5 = *(int *)((int)register0x00000010 + -4);\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    puVar4 = *(undefined4 **)((int)register0x00000010 + 4);\n    *(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b;\n    iVar5 = *(int *)((int)register0x00000010 + 0x14);\n    iVar9 = *(int *)((int)register0x00000010 + 0x10);\n    puVar8 = *(undefined4 **)((int)register0x00000010 + 8);\n    *(undefined4 *)((int)register0x00000010 + -0x4c) =\n         *(undefined4 *)((int)register0x00000010 + 0xc);\n    iVar1 = *(int *)((int)register0x00000010 + 0x1c);\n    puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18);\n    *(int *)((int)register0x00000010 + -0x44) = iVar5;\n    *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x50) =\n         *(undefined4 *)((int)register0x00000010 + 0x20);\n    if (iVar1 < iVar5) {\n      iVar5 = iVar1;\n    }\n    if (iVar9 <= iVar5) {\n      iVar5 = (int)puVar8 - (int)puVar4;\n      if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar11 == puVar10) {\n        return;\n      }\n      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }\n      *(int *)((int)register0x00000010 + -100) = iVar5;\n      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;\n      memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) <= iVar1) {\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);\n      iVar5 = (int)puVar4 - (int)puVar8;\n      if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) < iVar9) {\n      *(int *)((int)register0x00000010 + -0x2c) = iVar1;\n      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(int *)((int)register0x00000010 + -0x70) = iVar5;\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;\n      FUN_000bfba0();\n      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);\n      iVar5 = *(int *)((int)register0x00000010 + -0x30);\n    }\n    else {\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }\n    iVar1 = *(int *)((int)register0x00000010 + -0x38);\n    *(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c);\n    if ((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)) {\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      puVar10 = puVar4;\n      if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }\n    }\n    else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }\n    uVar2 = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + -4) = uVar2;\n    *(int *)(puVar7 + -8) = iVar5;\n    *(int *)(puVar7 + 0xc) = iVar5;\n    *(undefined4 **)(puVar7 + -0xc) = puVar11;\n    iVar5 = *(int *)(puVar7 + 0x28);\n    *(int *)(puVar7 + -0x10) = iVar5;\n    *(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24);\n    *(undefined4 **)(puVar7 + -0x18) = puVar10;\n    *(undefined4 **)(puVar7 + -0x1c) = puVar4;\n    *(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14);\n    *(undefined4 *)(puVar7 + -0x24) = 0xc032a;\n    FUN_000c00a0();\n    *(undefined4 *)(puVar7 + 0x7c) = uVar2;\n    *(undefined4 **)(puVar7 + 0x74) = puVar11;\n    *(undefined4 **)(puVar7 + 0x60) = puVar10;\n    *(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5;\n    *(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10);\n    *(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20);\n    unaff_EBX = *(undefined4 *)(puVar7 + 0x4c);\n    unaff_ESI = *(undefined4 *)(puVar7 + 0x50);\n    unaff_EDI = *(undefined4 *)(puVar7 + 0x54);\n    unaff_EBP = *(undefined4 *)(puVar7 + 0x58);\n    register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c);\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 unaff_EBX;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 unaff_EBP;" type_identifier identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 unaff_ESI;" type_identifier identifier ;) (declaration "undefined4 unaff_EDI;" type_identifier identifier ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (do_statement "do {\n    *(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5;\n    iVar5 = *(int *)((int)register0x00000010 + -4);\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    puVar4 = *(undefined4 **)((int)register0x00000010 + 4);\n    *(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b;\n    iVar5 = *(int *)((int)register0x00000010 + 0x14);\n    iVar9 = *(int *)((int)register0x00000010 + 0x10);\n    puVar8 = *(undefined4 **)((int)register0x00000010 + 8);\n    *(undefined4 *)((int)register0x00000010 + -0x4c) =\n         *(undefined4 *)((int)register0x00000010 + 0xc);\n    iVar1 = *(int *)((int)register0x00000010 + 0x1c);\n    puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18);\n    *(int *)((int)register0x00000010 + -0x44) = iVar5;\n    *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x50) =\n         *(undefined4 *)((int)register0x00000010 + 0x20);\n    if (iVar1 < iVar5) {\n      iVar5 = iVar1;\n    }\n    if (iVar9 <= iVar5) {\n      iVar5 = (int)puVar8 - (int)puVar4;\n      if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar11 == puVar10) {\n        return;\n      }\n      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }\n      *(int *)((int)register0x00000010 + -100) = iVar5;\n      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;\n      memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) <= iVar1) {\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);\n      iVar5 = (int)puVar4 - (int)puVar8;\n      if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) < iVar9) {\n      *(int *)((int)register0x00000010 + -0x2c) = iVar1;\n      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(int *)((int)register0x00000010 + -0x70) = iVar5;\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;\n      FUN_000bfba0();\n      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);\n      iVar5 = *(int *)((int)register0x00000010 + -0x30);\n    }\n    else {\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }\n    iVar1 = *(int *)((int)register0x00000010 + -0x38);\n    *(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c);\n    if ((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)) {\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      puVar10 = puVar4;\n      if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }\n    }\n    else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }\n    uVar2 = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + -4) = uVar2;\n    *(int *)(puVar7 + -8) = iVar5;\n    *(int *)(puVar7 + 0xc) = iVar5;\n    *(undefined4 **)(puVar7 + -0xc) = puVar11;\n    iVar5 = *(int *)(puVar7 + 0x28);\n    *(int *)(puVar7 + -0x10) = iVar5;\n    *(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24);\n    *(undefined4 **)(puVar7 + -0x18) = puVar10;\n    *(undefined4 **)(puVar7 + -0x1c) = puVar4;\n    *(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14);\n    *(undefined4 *)(puVar7 + -0x24) = 0xc032a;\n    FUN_000c00a0();\n    *(undefined4 *)(puVar7 + 0x7c) = uVar2;\n    *(undefined4 **)(puVar7 + 0x74) = puVar11;\n    *(undefined4 **)(puVar7 + 0x60) = puVar10;\n    *(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5;\n    *(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10);\n    *(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20);\n    unaff_EBX = *(undefined4 *)(puVar7 + 0x4c);\n    unaff_ESI = *(undefined4 *)(puVar7 + 0x50);\n    unaff_EDI = *(undefined4 *)(puVar7 + 0x54);\n    unaff_EBP = *(undefined4 *)(puVar7 + 0x58);\n    register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c);\n  } while( true );" do (compound_statement "{\n    *(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5;\n    iVar5 = *(int *)((int)register0x00000010 + -4);\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    puVar4 = *(undefined4 **)((int)register0x00000010 + 4);\n    *(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b;\n    iVar5 = *(int *)((int)register0x00000010 + 0x14);\n    iVar9 = *(int *)((int)register0x00000010 + 0x10);\n    puVar8 = *(undefined4 **)((int)register0x00000010 + 8);\n    *(undefined4 *)((int)register0x00000010 + -0x4c) =\n         *(undefined4 *)((int)register0x00000010 + 0xc);\n    iVar1 = *(int *)((int)register0x00000010 + 0x1c);\n    puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18);\n    *(int *)((int)register0x00000010 + -0x44) = iVar5;\n    *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x50) =\n         *(undefined4 *)((int)register0x00000010 + 0x20);\n    if (iVar1 < iVar5) {\n      iVar5 = iVar1;\n    }\n    if (iVar9 <= iVar5) {\n      iVar5 = (int)puVar8 - (int)puVar4;\n      if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar11 == puVar10) {\n        return;\n      }\n      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }\n      *(int *)((int)register0x00000010 + -100) = iVar5;\n      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;\n      memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) <= iVar1) {\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);\n      iVar5 = (int)puVar4 - (int)puVar8;\n      if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) < iVar9) {\n      *(int *)((int)register0x00000010 + -0x2c) = iVar1;\n      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(int *)((int)register0x00000010 + -0x70) = iVar5;\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;\n      FUN_000bfba0();\n      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);\n      iVar5 = *(int *)((int)register0x00000010 + -0x30);\n    }\n    else {\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }\n    iVar1 = *(int *)((int)register0x00000010 + -0x38);\n    *(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c);\n    if ((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)) {\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      puVar10 = puVar4;\n      if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }\n    }\n    else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }\n    uVar2 = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + -4) = uVar2;\n    *(int *)(puVar7 + -8) = iVar5;\n    *(int *)(puVar7 + 0xc) = iVar5;\n    *(undefined4 **)(puVar7 + -0xc) = puVar11;\n    iVar5 = *(int *)(puVar7 + 0x28);\n    *(int *)(puVar7 + -0x10) = iVar5;\n    *(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24);\n    *(undefined4 **)(puVar7 + -0x18) = puVar10;\n    *(undefined4 **)(puVar7 + -0x1c) = puVar4;\n    *(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14);\n    *(undefined4 *)(puVar7 + -0x24) = 0xc032a;\n    FUN_000c00a0();\n    *(undefined4 *)(puVar7 + 0x7c) = uVar2;\n    *(undefined4 **)(puVar7 + 0x74) = puVar11;\n    *(undefined4 **)(puVar7 + 0x60) = puVar10;\n    *(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5;\n    *(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10);\n    *(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20);\n    unaff_EBX = *(undefined4 *)(puVar7 + 0x4c);\n    unaff_ESI = *(undefined4 *)(puVar7 + 0x50);\n    unaff_EDI = *(undefined4 *)(puVar7 + 0x54);\n    unaff_EBP = *(undefined4 *)(puVar7 + 0x58);\n    register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c);\n  }" { (expression_statement "*(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -4)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -4)" ( (binary_expression "(int)register0x00000010 + -4" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -4);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -4)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -4)" * (cast_expression "(int *)((int)register0x00000010 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -4)" ( (binary_expression "(int)register0x00000010 + -4" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -4)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -4)" ( (binary_expression "(int)register0x00000010 + -4" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -8)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -8)" ( (binary_expression "(int)register0x00000010 + -8" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0xc)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0xc)" ( (binary_expression "(int)register0x00000010 + -0xc" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x10)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x10)" ( (binary_expression "(int)register0x00000010 + -0x10" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + 4);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + 4)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + 4)" * (cast_expression "(undefined4 **)((int)register0x00000010 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + 4)" ( (binary_expression "(int)register0x00000010 + 4" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b;" (assignment_expression "*(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b" (pointer_expression "*(int *)((int)register0x00000010 + -0x40)" * (cast_expression "(int *)((int)register0x00000010 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "iVar5 + 0x2e9f5b" identifier + number_literal)) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + 0x14);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + 0x14)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + 0x14)" * (cast_expression "(int *)((int)register0x00000010 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + 0x14)" ( (binary_expression "(int)register0x00000010 + 0x14" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)((int)register0x00000010 + 0x10);" (assignment_expression "iVar9 = *(int *)((int)register0x00000010 + 0x10)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + 0x10)" * (cast_expression "(int *)((int)register0x00000010 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + 0x10)" ( (binary_expression "(int)register0x00000010 + 0x10" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar8 = *(undefined4 **)((int)register0x00000010 + 8);" (assignment_expression "puVar8 = *(undefined4 **)((int)register0x00000010 + 8)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + 8)" * (cast_expression "(undefined4 **)((int)register0x00000010 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + 8)" ( (binary_expression "(int)register0x00000010 + 8" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x4c) =\n         *(undefined4 *)((int)register0x00000010 + 0xc);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x4c) =\n         *(undefined4 *)((int)register0x00000010 + 0xc)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x4c)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x4c)" ( (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + 0xc)" * (cast_expression "(undefined4 *)((int)register0x00000010 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + 0xc)" ( (binary_expression "(int)register0x00000010 + 0xc" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar1 = *(int *)((int)register0x00000010 + 0x1c);" (assignment_expression "iVar1 = *(int *)((int)register0x00000010 + 0x1c)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + 0x1c)" * (cast_expression "(int *)((int)register0x00000010 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + 0x1c)" ( (binary_expression "(int)register0x00000010 + 0x1c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18);" (assignment_expression "puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + 0x18)" * (cast_expression "(undefined4 **)((int)register0x00000010 + 0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + 0x18)" ( (binary_expression "(int)register0x00000010 + 0x18" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x44) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x44) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" * (cast_expression "(int *)((int)register0x00000010 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x48) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x48)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x48)" ( (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x50) =\n         *(undefined4 *)((int)register0x00000010 + 0x20);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x50) =\n         *(undefined4 *)((int)register0x00000010 + 0x20)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x50)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x50)" ( (binary_expression "(int)register0x00000010 + -0x50" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + 0x20)" * (cast_expression "(undefined4 *)((int)register0x00000010 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + 0x20)" ( (binary_expression "(int)register0x00000010 + 0x20" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (iVar1 < iVar5) {\n      iVar5 = iVar1;\n    }" if (parenthesized_expression "(iVar1 < iVar5)" ( (binary_expression "iVar1 < iVar5" identifier < identifier) )) (compound_statement "{\n      iVar5 = iVar1;\n    }" { (expression_statement "iVar5 = iVar1;" (assignment_expression "iVar5 = iVar1" identifier = identifier) ;) })) (if_statement "if (iVar9 <= iVar5) {\n      iVar5 = (int)puVar8 - (int)puVar4;\n      if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar11 == puVar10) {\n        return;\n      }\n      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }\n      *(int *)((int)register0x00000010 + -100) = iVar5;\n      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;\n      memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));\n      return;\n    }" if (parenthesized_expression "(iVar9 <= iVar5)" ( (binary_expression "iVar9 <= iVar5" identifier <= identifier) )) (compound_statement "{\n      iVar5 = (int)puVar8 - (int)puVar4;\n      if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar11 == puVar10) {\n        return;\n      }\n      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }\n      *(int *)((int)register0x00000010 + -100) = iVar5;\n      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;\n      memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));\n      return;\n    }" { (expression_statement "iVar5 = (int)puVar8 - (int)puVar4;" (assignment_expression "iVar5 = (int)puVar8 - (int)puVar4" identifier = (binary_expression "(int)puVar8 - (int)puVar4" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }" if (parenthesized_expression "(puVar8 != puVar4)" ( (binary_expression "puVar8 != puVar4" identifier != identifier) )) (compound_statement "{\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }" { (expression_statement "*(int *)((int)register0x00000010 + -100) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -100) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -100)" * (cast_expression "(int *)((int)register0x00000010 + -100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x44) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x44) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" * (cast_expression "(int *)((int)register0x00000010 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x68)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x68)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x48) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x48)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x48)" ( (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x68)" * (cast_expression "(void **)((int)register0x00000010 + -0x68)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -100)" * (cast_expression "(size_t *)((int)register0x00000010 + -100)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x44);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x44)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" * (cast_expression "(int *)((int)register0x00000010 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x48)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x48)" ( (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "puVar10 = (undefined4 *)((int)puVar11 + iVar5);" (assignment_expression "puVar10 = (undefined4 *)((int)puVar11 + iVar5)" identifier = (cast_expression "(undefined4 *)((int)puVar11 + iVar5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + iVar5)" ( (binary_expression "(int)puVar11 + iVar5" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (puVar11 == puVar10) {\n        return;\n      }" if (parenthesized_expression "(puVar11 == puVar10)" ( (binary_expression "puVar11 == puVar10" identifier == identifier) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (if_statement "if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }" if (parenthesized_expression "(*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8)" ( (binary_expression "*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x4c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x4c)" ( (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }" { (do_statement "do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);" do (compound_statement "{\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        }" { (expression_statement "*(undefined4 *)((int)register0x00000010 + -100) = *puVar11;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -100) = *puVar11" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -100)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x68)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x50)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x50)" ( (binary_expression "(int)register0x00000010 + -0x50" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "cVar3 = FUN_000aa8c0();" (assignment_expression "cVar3 = FUN_000aa8c0()" identifier = (call_expression "FUN_000aa8c0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }" { (expression_statement "uVar2 = *puVar11;" (assignment_expression "uVar2 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) (expression_statement "*puVar4 = uVar2;" (assignment_expression "*puVar4 = uVar2" (pointer_expression "*puVar4" * identifier) = identifier) ;) }) (else_clause "else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }" else (compound_statement "{\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }" { (expression_statement "uVar2 = *puVar8;" (assignment_expression "uVar2 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar8 = puVar8 + 1;" (assignment_expression "puVar8 = puVar8 + 1" identifier = (binary_expression "puVar8 + 1" identifier + number_literal)) ;) (expression_statement "*puVar4 = uVar2;" (assignment_expression "*puVar4 = uVar2" (pointer_expression "*puVar4" * identifier) = identifier) ;) }))) (if_statement "if (puVar10 == puVar11) {\n            return;\n          }" if (parenthesized_expression "(puVar10 == puVar11)" ( (binary_expression "puVar10 == puVar11" identifier == identifier) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8)" ( (binary_expression "*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x4c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x4c)" ( (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != identifier) )) ;) (expression_statement "iVar5 = (int)puVar10 - (int)puVar11;" (assignment_expression "iVar5 = (int)puVar10 - (int)puVar11" identifier = (binary_expression "(int)puVar10 - (int)puVar11" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (expression_statement "*(int *)((int)register0x00000010 + -100) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -100) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -100)" * (cast_expression "(int *)((int)register0x00000010 + -100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x68)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x68)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x68)" * (cast_expression "(void **)((int)register0x00000010 + -0x68)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -100)" * (cast_expression "(size_t *)((int)register0x00000010 + -100)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (*(int *)((int)register0x00000010 + -0x44) <= iVar1) {\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);\n      iVar5 = (int)puVar4 - (int)puVar8;\n      if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }\n      return;\n    }" if (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x44) <= iVar1)" ( (binary_expression "*(int *)((int)register0x00000010 + -0x44) <= iVar1" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" * (cast_expression "(int *)((int)register0x00000010 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) <= identifier) )) (compound_statement "{\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);\n      iVar5 = (int)puVar4 - (int)puVar8;\n      if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }\n      return;\n    }" { (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x4c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x4c)" ( (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar5 = (int)puVar4 - (int)puVar8;" (assignment_expression "iVar5 = (int)puVar4 - (int)puVar8" identifier = (binary_expression "(int)puVar4 - (int)puVar8" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }" if (parenthesized_expression "(puVar4 != puVar8)" ( (binary_expression "puVar4 != puVar8" identifier != identifier) )) (compound_statement "{\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }" { (expression_statement "*(int *)((int)register0x00000010 + -100) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -100) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -100)" * (cast_expression "(int *)((int)register0x00000010 + -100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x44) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x44) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" * (cast_expression "(int *)((int)register0x00000010 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x68)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x68)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x68)" * (cast_expression "(void **)((int)register0x00000010 + -0x68)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -100)" * (cast_expression "(size_t *)((int)register0x00000010 + -100)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x44);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x44)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" * (cast_expression "(int *)((int)register0x00000010 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "puVar10 = (undefined4 *)((int)puVar11 + iVar5);" (assignment_expression "puVar10 = (undefined4 *)((int)puVar11 + iVar5)" identifier = (cast_expression "(undefined4 *)((int)puVar11 + iVar5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + iVar5)" ( (binary_expression "(int)puVar11 + iVar5" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }" if (parenthesized_expression "(puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48))" ( (binary_expression "puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)" identifier == (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x48)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x48)" ( (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }" { (if_statement "if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }" if (parenthesized_expression "(puVar11 != puVar10)" ( (binary_expression "puVar11 != puVar10" identifier != identifier) )) (compound_statement "{\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }" { (expression_statement "*(int *)((int)register0x00000010 + -100) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -100) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -100)" * (cast_expression "(int *)((int)register0x00000010 + -100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x68)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x68)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x6c)" * (cast_expression "(int *)((int)register0x00000010 + -0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x4c) - iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x4c)" * (cast_expression "(int *)((int)register0x00000010 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x4c)" ( (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - identifier)) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x68)" * (cast_expression "(void **)((int)register0x00000010 + -0x68)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -100)" * (cast_expression "(size_t *)((int)register0x00000010 + -100)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) }) (else_clause "else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }" else (if_statement "if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }" if (parenthesized_expression "(puVar11 != puVar10)" ( (binary_expression "puVar11 != puVar10" identifier != identifier) )) (compound_statement "{\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }" { (expression_statement "puVar8 = puVar8 + -1;" (assignment_expression "puVar8 = puVar8 + -1" identifier = (binary_expression "puVar8 + -1" identifier + number_literal)) ;) (do_statement "do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);" do (compound_statement "{\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        }" { (expression_statement "puVar6 = puVar10 + -1;" (assignment_expression "puVar6 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;) (while_statement "while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }" { (expression_statement "*(undefined4 *)((int)register0x00000010 + -100) = *puVar8;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -100) = *puVar8" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -100)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar4 = puVar4 + -1;" (assignment_expression "puVar4 = puVar4 + -1" identifier = (binary_expression "puVar4 + -1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x68)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x50)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x50)" ( (binary_expression "(int)register0x00000010 + -0x50" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "cVar3 = FUN_000aa8c0();" (assignment_expression "cVar3 = FUN_000aa8c0()" identifier = (call_expression "FUN_000aa8c0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar3 == '\0') break;" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "*puVar4 = *puVar8;" (assignment_expression "*puVar4 = *puVar8" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar8" * identifier)) ;) (if_statement "if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }" if (parenthesized_expression "(puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48))" ( (binary_expression "puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)" identifier == (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x48)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x48)" ( (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }" { (if_statement "if (puVar11 == puVar10) {\n                return;\n              }" if (parenthesized_expression "(puVar11 == puVar10)" ( (binary_expression "puVar11 == puVar10" identifier == identifier) )) (compound_statement "{\n                return;\n              }" { (return_statement "return;" return ;) })) (expression_statement "*(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;" (assignment_expression "*(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11" (pointer_expression "*(int *)((int)register0x00000010 + -100)" * (cast_expression "(int *)((int)register0x00000010 + -100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)puVar10 - (int)puVar11" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x68)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x68)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);" (assignment_expression "*(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11)" (pointer_expression "*(int *)((int)register0x00000010 + -0x6c)" * (cast_expression "(int *)((int)register0x00000010 + -0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)puVar4 - ((int)puVar10 - (int)puVar11)" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (parenthesized_expression "((int)puVar10 - (int)puVar11)" ( (binary_expression "(int)puVar10 - (int)puVar11" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x68)" * (cast_expression "(void **)((int)register0x00000010 + -0x68)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -100)" * (cast_expression "(size_t *)((int)register0x00000010 + -100)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (return_statement "return;" return ;) })) (expression_statement "puVar8 = puVar8 + -1;" (assignment_expression "puVar8 = puVar8 + -1" identifier = (binary_expression "puVar8 + -1" identifier + number_literal)) ;) })) (expression_statement "*puVar4 = *puVar6;" (assignment_expression "*puVar4 = *puVar6" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar10 = puVar6;" (assignment_expression "puVar10 = puVar6" identifier = identifier) ;) }) while (parenthesized_expression "(puVar11 != puVar6)" ( (binary_expression "puVar11 != puVar6" identifier != identifier) )) ;) })))) (return_statement "return;" return ;) })) (if_statement "if (*(int *)((int)register0x00000010 + -0x44) < iVar9) {\n      *(int *)((int)register0x00000010 + -0x2c) = iVar1;\n      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(int *)((int)register0x00000010 + -0x70) = iVar5;\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;\n      FUN_000bfba0();\n      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);\n      iVar5 = *(int *)((int)register0x00000010 + -0x30);\n    }\n    else {\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }" if (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x44) < iVar9)" ( (binary_expression "*(int *)((int)register0x00000010 + -0x44) < iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" * (cast_expression "(int *)((int)register0x00000010 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) < identifier) )) (compound_statement "{\n      *(int *)((int)register0x00000010 + -0x2c) = iVar1;\n      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(int *)((int)register0x00000010 + -0x70) = iVar5;\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;\n      FUN_000bfba0();\n      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);\n      iVar5 = *(int *)((int)register0x00000010 + -0x30);\n    }" { (expression_statement "*(int *)((int)register0x00000010 + -0x2c) = iVar1;" (assignment_expression "*(int *)((int)register0x00000010 + -0x2c) = iVar1" (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" * (cast_expression "(int *)((int)register0x00000010 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;" (assignment_expression "*(int *)((int)register0x00000010 + -0x38) = iVar9 / 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x38)" * (cast_expression "(int *)((int)register0x00000010 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x38)" ( (binary_expression "(int)register0x00000010 + -0x38" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "iVar9 / 2" identifier / number_literal)) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4" identifier = (binary_expression "*(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4" (pointer_expression "*(int *)((int)register0x00000010 + -0x48)" * (cast_expression "(int *)((int)register0x00000010 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x48)" ( (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + (binary_expression "(iVar9 / 2) * 4" (parenthesized_expression "(iVar9 / 2)" ( (binary_expression "iVar9 / 2" identifier / number_literal) )) * number_literal))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x50)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x50)" ( (binary_expression "(int)register0x00000010 + -0x50" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x70) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x70) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x70)" * (cast_expression "(int *)((int)register0x00000010 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x30) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x30) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x30)" * (cast_expression "(int *)((int)register0x00000010 + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x74)" ( (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x4c)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x4c)" ( (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x78) = puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x78)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x78)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x78)" ( (binary_expression "(int)register0x00000010 + -0x78" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);" (assignment_expression "*(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20)" (pointer_expression "*(undefined1 **)((int)register0x00000010 + -0x7c)" * (cast_expression "(undefined1 **)((int)register0x00000010 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x7c)" ( (binary_expression "(int)register0x00000010 + -0x7c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(undefined1 *)((int)register0x00000010 + -0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x20)" ( (binary_expression "(int)register0x00000010 + -0x20" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x80)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x80)" ( (binary_expression "(int)register0x00000010 + -0x80" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000bfba0();" (call_expression "FUN_000bfba0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);" (assignment_expression "*(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24)" (pointer_expression "*(int *)((int)register0x00000010 + -0x40)" * (cast_expression "(int *)((int)register0x00000010 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(int *)((int)register0x00000010 + -0x24)" * (cast_expression "(int *)((int)register0x00000010 + -0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x24)" ( (binary_expression "(int)register0x00000010 + -0x24" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;" (assignment_expression "*(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x38)" * (cast_expression "(int *)((int)register0x00000010 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x38)" ( (binary_expression "(int)register0x00000010 + -0x38" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2" (binary_expression "*(int *)((int)register0x00000010 + -0x24) - (int)puVar8" (pointer_expression "*(int *)((int)register0x00000010 + -0x24)" * (cast_expression "(int *)((int)register0x00000010 + -0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x24)" ( (binary_expression "(int)register0x00000010 + -0x24" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x34)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x34)" ( (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x30);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x30)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x30)" * (cast_expression "(int *)((int)register0x00000010 + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }" else (compound_statement "{\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }" { (expression_statement "*(int *)((int)register0x00000010 + -0x30) = iVar1;" (assignment_expression "*(int *)((int)register0x00000010 + -0x30) = iVar1" (pointer_expression "*(int *)((int)register0x00000010 + -0x30)" * (cast_expression "(int *)((int)register0x00000010 + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;" (assignment_expression "*(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x34)" * (cast_expression "(int *)((int)register0x00000010 + -0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x34)" ( (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x44) / 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" * (cast_expression "(int *)((int)register0x00000010 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) / number_literal)) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x3c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x3c)" ( (binary_expression "(int)register0x00000010 + -0x3c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2" identifier + (binary_expression "*(int *)((int)register0x00000010 + -0x44) / 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" * (cast_expression "(int *)((int)register0x00000010 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) / number_literal))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x50)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x50)" ( (binary_expression "(int)register0x00000010 + -0x50" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2" identifier + (binary_expression "*(int *)((int)register0x00000010 + -0x44) / 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" * (cast_expression "(int *)((int)register0x00000010 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) / number_literal))) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x74) = puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x74)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x74)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x74)" ( (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x78)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x78)" ( (binary_expression "(int)register0x00000010 + -0x78" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x48)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x48)" ( (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);" (assignment_expression "*(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20)" (pointer_expression "*(undefined1 **)((int)register0x00000010 + -0x7c)" * (cast_expression "(undefined1 **)((int)register0x00000010 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x7c)" ( (binary_expression "(int)register0x00000010 + -0x7c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(undefined1 *)((int)register0x00000010 + -0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x20)" ( (binary_expression "(int)register0x00000010 + -0x20" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x80)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x80)" ( (binary_expression "(int)register0x00000010 + -0x80" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000bfc10();" (call_expression "FUN_000bfc10()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x24)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x24)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x24)" ( (binary_expression "(int)register0x00000010 + -0x24" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;" (assignment_expression "*(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x3c)" * (cast_expression "(int *)((int)register0x00000010 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x3c)" ( (binary_expression "(int)register0x00000010 + -0x3c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2" (binary_expression "(int)puVar4 - *(int *)((int)register0x00000010 + -0x4c)" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)((int)register0x00000010 + -0x4c)" * (cast_expression "(int *)((int)register0x00000010 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x4c)" ( (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) >> number_literal)) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x34);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x34)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x34)" * (cast_expression "(int *)((int)register0x00000010 + -0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x34)" ( (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (expression_statement "iVar1 = *(int *)((int)register0x00000010 + -0x38);" (assignment_expression "iVar1 = *(int *)((int)register0x00000010 + -0x38)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x38)" * (cast_expression "(int *)((int)register0x00000010 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x38)" ( (binary_expression "(int)register0x00000010 + -0x38" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c);" (assignment_expression "*(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c)" (pointer_expression "*(int *)((int)register0x00000010 + -0x34)" * (cast_expression "(int *)((int)register0x00000010 + -0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x34)" ( (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "iVar9 - *(int *)((int)register0x00000010 + -0x3c)" identifier - (pointer_expression "*(int *)((int)register0x00000010 + -0x3c)" * (cast_expression "(int *)((int)register0x00000010 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x3c)" ( (binary_expression "(int)register0x00000010 + -0x3c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if ((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)) {\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      puVar10 = puVar4;\n      if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }\n    }\n    else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }" if (parenthesized_expression "((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5))" ( (binary_expression "(iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)" (parenthesized_expression "(iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c))" ( (binary_expression "iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)" identifier < (binary_expression "iVar9 - *(int *)((int)register0x00000010 + -0x3c)" identifier - (pointer_expression "*(int *)((int)register0x00000010 + -0x3c)" * (cast_expression "(int *)((int)register0x00000010 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x3c)" ( (binary_expression "(int)register0x00000010 + -0x3c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) )) && (parenthesized_expression "(iVar1 <= iVar5)" ( (binary_expression "iVar1 <= iVar5" identifier <= identifier) ))) )) (compound_statement "{\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      puVar10 = puVar4;\n      if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }\n    }" { (expression_statement "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);" (assignment_expression "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60)" identifier = (cast_expression "(undefined1 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x60)" ( (binary_expression "(int)register0x00000010 + -0x60" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar10 = puVar4;" (assignment_expression "puVar10 = puVar4" identifier = identifier) ;) (if_statement "if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }" { (expression_statement "iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;" (assignment_expression "iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8" identifier = (binary_expression "(int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8" (cast_expression "(int)*(undefined4 **)((int)register0x00000010 + -0x40)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x40)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }" if (parenthesized_expression "(*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8)" ( (binary_expression "*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x40)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }" { (if_statement "if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;" if (parenthesized_expression "(puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40))" ( (binary_expression "puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)" identifier != (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x40)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (goto_statement "goto LAB_000c02b9;" goto statement_identifier ;)) (expression_statement "puVar10 = (undefined4 *)(iVar9 + (int)puVar4);" (assignment_expression "puVar10 = (undefined4 *)(iVar9 + (int)puVar4)" identifier = (cast_expression "(undefined4 *)(iVar9 + (int)puVar4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + (int)puVar4)" ( (binary_expression "iVar9 + (int)puVar4" identifier + (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);" (assignment_expression "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60)" identifier = (cast_expression "(undefined1 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x60)" ( (binary_expression "(int)register0x00000010 + -0x60" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }" else (compound_statement "{\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }" { (expression_statement "*(int *)((int)register0x00000010 + -0x2c) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x2c) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" * (cast_expression "(int *)((int)register0x00000010 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x30) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x68) = iVar9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x68) = iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x68)" * (cast_expression "(int *)((int)register0x00000010 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x74)" ( (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x70)" * (cast_expression "(void **)((int)register0x00000010 + -0x70)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x68)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x68)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x2c);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x2c)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" * (cast_expression "(int *)((int)register0x00000010 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }" if (parenthesized_expression "(puVar4 != puVar8)" ( (binary_expression "puVar4 != puVar8" identifier != identifier) )) (compound_statement "{\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }" { (labeled_statement "LAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;" statement_identifier : (expression_statement "*(int *)((int)register0x00000010 + -0x2c) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x2c) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" * (cast_expression "(int *)((int)register0x00000010 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;" (assignment_expression "*(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4" (pointer_expression "*(int *)((int)register0x00000010 + -0x68)" * (cast_expression "(int *)((int)register0x00000010 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)puVar8 - (int)puVar4" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x30) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);" (assignment_expression "*(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4)" (pointer_expression "*(int *)((int)register0x00000010 + -0x70)" * (cast_expression "(int *)((int)register0x00000010 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4)" (pointer_expression "*(int *)((int)register0x00000010 + -0x40)" * (cast_expression "(int *)((int)register0x00000010 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - (parenthesized_expression "((int)puVar8 - (int)puVar4)" ( (binary_expression "(int)puVar8 - (int)puVar4" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x74)" ( (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x70)" * (cast_expression "(void **)((int)register0x00000010 + -0x70)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x68)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x68)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x2c);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x2c)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" * (cast_expression "(int *)((int)register0x00000010 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (if_statement "if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }" { (expression_statement "*(int *)((int)register0x00000010 + -0x2c) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x2c) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" * (cast_expression "(int *)((int)register0x00000010 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x68) = iVar9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x68) = iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x68)" * (cast_expression "(int *)((int)register0x00000010 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x30) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x74)" ( (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x70)" * (cast_expression "(void **)((int)register0x00000010 + -0x70)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x68)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x68)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x2c);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x2c)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" * (cast_expression "(int *)((int)register0x00000010 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "puVar10 = (undefined4 *)(iVar9 + (int)puVar4);" (assignment_expression "puVar10 = (undefined4 *)(iVar9 + (int)puVar4)" identifier = (cast_expression "(undefined4 *)(iVar9 + (int)puVar4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + (int)puVar4)" ( (binary_expression "iVar9 + (int)puVar4" identifier + (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);" (assignment_expression "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60)" identifier = (cast_expression "(undefined1 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x60)" ( (binary_expression "(int)register0x00000010 + -0x60" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) })) }) (else_clause "else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }" else (if_statement "if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }" if (parenthesized_expression "(iVar5 < *(int *)((int)register0x00000010 + -0x34))" ( (binary_expression "iVar5 < *(int *)((int)register0x00000010 + -0x34)" identifier < (pointer_expression "*(int *)((int)register0x00000010 + -0x34)" * (cast_expression "(int *)((int)register0x00000010 + -0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x34)" ( (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }" { (expression_statement "*(int *)((int)register0x00000010 + -0x30) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x30) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x30)" * (cast_expression "(int *)((int)register0x00000010 + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = *(int *)((int)register0x00000010 + -0x40);" (assignment_expression "iVar9 = *(int *)((int)register0x00000010 + -0x40)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x40)" * (cast_expression "(int *)((int)register0x00000010 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x74) = iVar9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x74) = iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x74)" * (cast_expression "(int *)((int)register0x00000010 + -0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x74)" ( (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x78) = puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x78)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x78)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x78)" ( (binary_expression "(int)register0x00000010 + -0x78" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x7c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x7c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x7c)" ( (binary_expression "(int)register0x00000010 + -0x7c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x44) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x44)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x44)" ( (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);" (assignment_expression "*(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20)" (pointer_expression "*(undefined1 **)((int)register0x00000010 + -0x80)" * (cast_expression "(undefined1 **)((int)register0x00000010 + -0x80)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x80)" ( (binary_expression "(int)register0x00000010 + -0x80" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(undefined1 *)((int)register0x00000010 + -0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x20)" ( (binary_expression "(int)register0x00000010 + -0x20" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x84)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x84)" ( (binary_expression "(int)register0x00000010 + -0x84" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000bfc80();" (call_expression "FUN_000bfc80()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x48)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x48)" ( (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar7 = (undefined1 *)((int)register0x00000010 + -100);" (assignment_expression "puVar7 = (undefined1 *)((int)register0x00000010 + -100)" identifier = (cast_expression "(undefined1 *)((int)register0x00000010 + -100)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -100)" ( (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x34);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x34)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x34)" * (cast_expression "(int *)((int)register0x00000010 + -0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x34)" ( (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);" (assignment_expression "puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4)" identifier = (cast_expression "(undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar9 - (int)puVar8) + (int)puVar4)" ( (binary_expression "(iVar9 - (int)puVar8) + (int)puVar4" (parenthesized_expression "(iVar9 - (int)puVar8)" ( (binary_expression "iVar9 - (int)puVar8" identifier - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) + (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) (else_clause "else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }" else (compound_statement "{\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }" { (expression_statement "puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);" (assignment_expression "puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x40)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);" (assignment_expression "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60)" identifier = (cast_expression "(undefined1 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x60)" ( (binary_expression "(int)register0x00000010 + -0x60" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }" if (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x34) != 0)" ( (binary_expression "*(int *)((int)register0x00000010 + -0x34) != 0" (pointer_expression "*(int *)((int)register0x00000010 + -0x34)" * (cast_expression "(int *)((int)register0x00000010 + -0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x34)" ( (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }" { (expression_statement "iVar9 = (int)puVar8 - (int)puVar4;" (assignment_expression "iVar9 = (int)puVar8 - (int)puVar4" identifier = (binary_expression "(int)puVar8 - (int)puVar4" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x30)" * (cast_expression "(int *)((int)register0x00000010 + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)puVar10 - iVar9" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (if_statement "if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }" if (parenthesized_expression "(puVar4 == puVar8)" ( (binary_expression "puVar4 == puVar8" identifier == identifier) )) (compound_statement "{\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }" { (if_statement "if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;" if (parenthesized_expression "(*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4)" ( (binary_expression "*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x40)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != identifier) )) (goto_statement "goto LAB_000c0476;" goto statement_identifier ;)) }) (else_clause "else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }" else (compound_statement "{\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }" { (expression_statement "*(int *)((int)register0x00000010 + -0x28) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x28) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x28)" * (cast_expression "(int *)((int)register0x00000010 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x28)" ( (binary_expression "(int)register0x00000010 + -0x28" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x68) = iVar9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x68) = iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x68)" * (cast_expression "(int *)((int)register0x00000010 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x2c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x2c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x74)" ( (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x70)" * (cast_expression "(void **)((int)register0x00000010 + -0x70)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x68)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x68)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x2c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x2c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x28);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x28)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x28)" * (cast_expression "(int *)((int)register0x00000010 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x28)" ( (binary_expression "(int)register0x00000010 + -0x28" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }" if (parenthesized_expression "(*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8)" ( (binary_expression "*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x40)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != identifier) )) (compound_statement "{\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }" { (labeled_statement "LAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;" statement_identifier : (expression_statement "*(int *)((int)register0x00000010 + -0x28) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x28) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x28)" * (cast_expression "(int *)((int)register0x00000010 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x28)" ( (binary_expression "(int)register0x00000010 + -0x28" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;" (assignment_expression "*(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8" (pointer_expression "*(int *)((int)register0x00000010 + -0x68)" * (cast_expression "(int *)((int)register0x00000010 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x40) - (int)puVar8" (pointer_expression "*(int *)((int)register0x00000010 + -0x40)" * (cast_expression "(int *)((int)register0x00000010 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x40)" ( (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x2c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x2c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x74)" ( (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x70)" * (cast_expression "(void **)((int)register0x00000010 + -0x70)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x68)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x68)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x28);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x28)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x28)" * (cast_expression "(int *)((int)register0x00000010 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x28)" ( (binary_expression "(int)register0x00000010 + -0x28" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x2c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x2c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (if_statement "if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }" { (expression_statement "*(int *)((int)register0x00000010 + -0x28) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x28) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x28)" * (cast_expression "(int *)((int)register0x00000010 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x28)" ( (binary_expression "(int)register0x00000010 + -0x28" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x2c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x2c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x68) = iVar9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x68) = iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x68)" * (cast_expression "(int *)((int)register0x00000010 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x30)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x74)" ( (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x70)" * (cast_expression "(void **)((int)register0x00000010 + -0x70)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x70)" ( (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" * (cast_expression "(void **)((int)register0x00000010 + -0x6c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x6c)" ( (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x68)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x68)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x68)" ( (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x28);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x28)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0x28)" * (cast_expression "(int *)((int)register0x00000010 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x28)" ( (binary_expression "(int)register0x00000010 + -0x28" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x2c)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x2c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x2c)" ( (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) }))) (expression_statement "puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);" (assignment_expression "puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30)" identifier = (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" * (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x30)" ( (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);" (assignment_expression "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60)" identifier = (cast_expression "(undefined1 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x60)" ( (binary_expression "(int)register0x00000010 + -0x60" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) }))))) (expression_statement "uVar2 = *(undefined4 *)(puVar7 + 0xc);" (assignment_expression "uVar2 = *(undefined4 *)(puVar7 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(puVar7 + 0xc)" * (cast_expression "(undefined4 *)(puVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0xc)" ( (binary_expression "puVar7 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + -4) = uVar2;" (assignment_expression "*(undefined4 *)(puVar7 + -4) = uVar2" (pointer_expression "*(undefined4 *)(puVar7 + -4)" * (cast_expression "(undefined4 *)(puVar7 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -4)" ( (binary_expression "puVar7 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar7 + -8) = iVar5;" (assignment_expression "*(int *)(puVar7 + -8) = iVar5" (pointer_expression "*(int *)(puVar7 + -8)" * (cast_expression "(int *)(puVar7 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -8)" ( (binary_expression "puVar7 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar7 + 0xc) = iVar5;" (assignment_expression "*(int *)(puVar7 + 0xc) = iVar5" (pointer_expression "*(int *)(puVar7 + 0xc)" * (cast_expression "(int *)(puVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0xc)" ( (binary_expression "puVar7 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar7 + -0xc) = puVar11;" (assignment_expression "*(undefined4 **)(puVar7 + -0xc) = puVar11" (pointer_expression "*(undefined4 **)(puVar7 + -0xc)" * (cast_expression "(undefined4 **)(puVar7 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0xc)" ( (binary_expression "puVar7 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar5 = *(int *)(puVar7 + 0x28);" (assignment_expression "iVar5 = *(int *)(puVar7 + 0x28)" identifier = (pointer_expression "*(int *)(puVar7 + 0x28)" * (cast_expression "(int *)(puVar7 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x28)" ( (binary_expression "puVar7 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar7 + -0x10) = iVar5;" (assignment_expression "*(int *)(puVar7 + -0x10) = iVar5" (pointer_expression "*(int *)(puVar7 + -0x10)" * (cast_expression "(int *)(puVar7 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24);" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24)" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar7 + 0x24)" * (cast_expression "(undefined4 *)(puVar7 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x24)" ( (binary_expression "puVar7 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(puVar7 + -0x18) = puVar10;" (assignment_expression "*(undefined4 **)(puVar7 + -0x18) = puVar10" (pointer_expression "*(undefined4 **)(puVar7 + -0x18)" * (cast_expression "(undefined4 **)(puVar7 + -0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x18)" ( (binary_expression "puVar7 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar7 + -0x1c) = puVar4;" (assignment_expression "*(undefined4 **)(puVar7 + -0x1c) = puVar4" (pointer_expression "*(undefined4 **)(puVar7 + -0x1c)" * (cast_expression "(undefined4 **)(puVar7 + -0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x1c)" ( (binary_expression "puVar7 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14);" (assignment_expression "*(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14)" (pointer_expression "*(undefined4 *)(puVar7 + -0x20)" * (cast_expression "(undefined4 *)(puVar7 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x20)" ( (binary_expression "puVar7 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar7 + 0x14)" * (cast_expression "(undefined4 *)(puVar7 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x14)" ( (binary_expression "puVar7 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x24) = 0xc032a;" (assignment_expression "*(undefined4 *)(puVar7 + -0x24) = 0xc032a" (pointer_expression "*(undefined4 *)(puVar7 + -0x24)" * (cast_expression "(undefined4 *)(puVar7 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x24)" ( (binary_expression "puVar7 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000c00a0();" (call_expression "FUN_000c00a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x7c) = uVar2;" (assignment_expression "*(undefined4 *)(puVar7 + 0x7c) = uVar2" (pointer_expression "*(undefined4 *)(puVar7 + 0x7c)" * (cast_expression "(undefined4 *)(puVar7 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x7c)" ( (binary_expression "puVar7 + 0x7c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar7 + 0x74) = puVar11;" (assignment_expression "*(undefined4 **)(puVar7 + 0x74) = puVar11" (pointer_expression "*(undefined4 **)(puVar7 + 0x74)" * (cast_expression "(undefined4 **)(puVar7 + 0x74)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x74)" ( (binary_expression "puVar7 + 0x74" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar7 + 0x60) = puVar10;" (assignment_expression "*(undefined4 **)(puVar7 + 0x60) = puVar10" (pointer_expression "*(undefined4 **)(puVar7 + 0x60)" * (cast_expression "(undefined4 **)(puVar7 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x60)" ( (binary_expression "puVar7 + 0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5;" (assignment_expression "*(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5" (pointer_expression "*(int *)(puVar7 + 0x70)" * (cast_expression "(int *)(puVar7 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x70)" ( (binary_expression "puVar7 + 0x70" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar7 + 0x18) - iVar5" (pointer_expression "*(int *)(puVar7 + 0x18)" * (cast_expression "(int *)(puVar7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x18)" ( (binary_expression "puVar7 + 0x18" identifier + number_literal) )))) - identifier)) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc);" (assignment_expression "*(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc)" (pointer_expression "*(undefined4 *)(puVar7 + 0x78)" * (cast_expression "(undefined4 *)(puVar7 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x78)" ( (binary_expression "puVar7 + 0x78" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar7 + 0xc)" * (cast_expression "(undefined4 *)(puVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0xc)" ( (binary_expression "puVar7 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c);" (assignment_expression "*(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c)" (pointer_expression "*(undefined4 *)(puVar7 + 0x6c)" * (cast_expression "(undefined4 *)(puVar7 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x6c)" ( (binary_expression "puVar7 + 0x6c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar7 + 0x2c)" * (cast_expression "(undefined4 *)(puVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x2c)" ( (binary_expression "puVar7 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10);" (assignment_expression "*(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10)" (pointer_expression "*(undefined4 *)(puVar7 + 0x68)" * (cast_expression "(undefined4 *)(puVar7 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x68)" ( (binary_expression "puVar7 + 0x68" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar7 + 0x10)" * (cast_expression "(undefined4 *)(puVar7 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x10)" ( (binary_expression "puVar7 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20);" (assignment_expression "*(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20)" (pointer_expression "*(undefined4 *)(puVar7 + 100)" * (cast_expression "(undefined4 *)(puVar7 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 100)" ( (binary_expression "puVar7 + 100" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar7 + 0x20)" * (cast_expression "(undefined4 *)(puVar7 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x20)" ( (binary_expression "puVar7 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "unaff_EBX = *(undefined4 *)(puVar7 + 0x4c);" (assignment_expression "unaff_EBX = *(undefined4 *)(puVar7 + 0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar7 + 0x4c)" * (cast_expression "(undefined4 *)(puVar7 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x4c)" ( (binary_expression "puVar7 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "unaff_ESI = *(undefined4 *)(puVar7 + 0x50);" (assignment_expression "unaff_ESI = *(undefined4 *)(puVar7 + 0x50)" identifier = (pointer_expression "*(undefined4 *)(puVar7 + 0x50)" * (cast_expression "(undefined4 *)(puVar7 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x50)" ( (binary_expression "puVar7 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "unaff_EDI = *(undefined4 *)(puVar7 + 0x54);" (assignment_expression "unaff_EDI = *(undefined4 *)(puVar7 + 0x54)" identifier = (pointer_expression "*(undefined4 *)(puVar7 + 0x54)" * (cast_expression "(undefined4 *)(puVar7 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x54)" ( (binary_expression "puVar7 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "unaff_EBP = *(undefined4 *)(puVar7 + 0x58);" (assignment_expression "unaff_EBP = *(undefined4 *)(puVar7 + 0x58)" identifier = (pointer_expression "*(undefined4 *)(puVar7 + 0x58)" * (cast_expression "(undefined4 *)(puVar7 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x58)" ( (binary_expression "puVar7 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c);" (assignment_expression "register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c)" identifier = (cast_expression "(BADSPACEBASE *)(puVar7 + 0x5c)" ( (type_descriptor "BADSPACEBASE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x5c)" ( (binary_expression "puVar7 + 0x5c" identifier + number_literal) )))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) - IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })))) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT / LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT / LIT) )) * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) / LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) / LIT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) / LIT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) )) && (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) })) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }))) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) })) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) }))))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (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 (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "void FUN_000c00a0(void)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  char cVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 unaff_EBX;\n  undefined4 *puVar6;\n  undefined1 *puVar7;\n  undefined4 unaff_EBP;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 unaff_ESI;\n  undefined4 unaff_EDI;\n  undefined4 *puVar11;\n  \n  do {\n    *(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5;\n    iVar5 = *(int *)((int)register0x00000010 + -4);\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    puVar4 = *(undefined4 **)((int)register0x00000010 + 4);\n    *(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b;\n    iVar5 = *(int *)((int)register0x00000010 + 0x14);\n    iVar9 = *(int *)((int)register0x00000010 + 0x10);\n    puVar8 = *(undefined4 **)((int)register0x00000010 + 8);\n    *(undefined4 *)((int)register0x00000010 + -0x4c) =\n         *(undefined4 *)((int)register0x00000010 + 0xc);\n    iVar1 = *(int *)((int)register0x00000010 + 0x1c);\n    puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18);\n    *(int *)((int)register0x00000010 + -0x44) = iVar5;\n    *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x50) =\n         *(undefined4 *)((int)register0x00000010 + 0x20);\n    if (iVar1 < iVar5) {\n      iVar5 = iVar1;\n    }\n    if (iVar9 <= iVar5) {\n      iVar5 = (int)puVar8 - (int)puVar4;\n      if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar11 == puVar10) {\n        return;\n      }\n      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }\n      *(int *)((int)register0x00000010 + -100) = iVar5;\n      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;\n      memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) <= iVar1) {\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);\n      iVar5 = (int)puVar4 - (int)puVar8;\n      if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) < iVar9) {\n      *(int *)((int)register0x00000010 + -0x2c) = iVar1;\n      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(int *)((int)register0x00000010 + -0x70) = iVar5;\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;\n      FUN_000bfba0();\n      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);\n      iVar5 = *(int *)((int)register0x00000010 + -0x30);\n    }\n    else {\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }\n    iVar1 = *(int *)((int)register0x00000010 + -0x38);\n    *(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c);\n    if ((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)) {\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      puVar10 = puVar4;\n      if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }\n    }\n    else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }\n    uVar2 = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + -4) = uVar2;\n    *(int *)(puVar7 + -8) = iVar5;\n    *(int *)(puVar7 + 0xc) = iVar5;\n    *(undefined4 **)(puVar7 + -0xc) = puVar11;\n    iVar5 = *(int *)(puVar7 + 0x28);\n    *(int *)(puVar7 + -0x10) = iVar5;\n    *(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24);\n    *(undefined4 **)(puVar7 + -0x18) = puVar10;\n    *(undefined4 **)(puVar7 + -0x1c) = puVar4;\n    *(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14);\n    *(undefined4 *)(puVar7 + -0x24) = 0xc032a;\n    FUN_000c00a0();\n    *(undefined4 *)(puVar7 + 0x7c) = uVar2;\n    *(undefined4 **)(puVar7 + 0x74) = puVar11;\n    *(undefined4 **)(puVar7 + 0x60) = puVar10;\n    *(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5;\n    *(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10);\n    *(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20);\n    unaff_EBX = *(undefined4 *)(puVar7 + 0x4c);\n    unaff_ESI = *(undefined4 *)(puVar7 + 0x50);\n    unaff_EDI = *(undefined4 *)(puVar7 + 0x54);\n    unaff_EBP = *(undefined4 *)(puVar7 + 0x58);\n    register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c);\n  } while( true );\n}" (primitive_type "void") (function_declarator "FUN_000c00a0(void)" (identifier "FUN_000c00a0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  char cVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 unaff_EBX;\n  undefined4 *puVar6;\n  undefined1 *puVar7;\n  undefined4 unaff_EBP;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 unaff_ESI;\n  undefined4 unaff_EDI;\n  undefined4 *puVar11;\n  \n  do {\n    *(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5;\n    iVar5 = *(int *)((int)register0x00000010 + -4);\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    puVar4 = *(undefined4 **)((int)register0x00000010 + 4);\n    *(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b;\n    iVar5 = *(int *)((int)register0x00000010 + 0x14);\n    iVar9 = *(int *)((int)register0x00000010 + 0x10);\n    puVar8 = *(undefined4 **)((int)register0x00000010 + 8);\n    *(undefined4 *)((int)register0x00000010 + -0x4c) =\n         *(undefined4 *)((int)register0x00000010 + 0xc);\n    iVar1 = *(int *)((int)register0x00000010 + 0x1c);\n    puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18);\n    *(int *)((int)register0x00000010 + -0x44) = iVar5;\n    *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x50) =\n         *(undefined4 *)((int)register0x00000010 + 0x20);\n    if (iVar1 < iVar5) {\n      iVar5 = iVar1;\n    }\n    if (iVar9 <= iVar5) {\n      iVar5 = (int)puVar8 - (int)puVar4;\n      if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar11 == puVar10) {\n        return;\n      }\n      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }\n      *(int *)((int)register0x00000010 + -100) = iVar5;\n      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;\n      memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) <= iVar1) {\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);\n      iVar5 = (int)puVar4 - (int)puVar8;\n      if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) < iVar9) {\n      *(int *)((int)register0x00000010 + -0x2c) = iVar1;\n      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(int *)((int)register0x00000010 + -0x70) = iVar5;\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;\n      FUN_000bfba0();\n      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);\n      iVar5 = *(int *)((int)register0x00000010 + -0x30);\n    }\n    else {\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }\n    iVar1 = *(int *)((int)register0x00000010 + -0x38);\n    *(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c);\n    if ((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)) {\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      puVar10 = puVar4;\n      if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }\n    }\n    else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }\n    uVar2 = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + -4) = uVar2;\n    *(int *)(puVar7 + -8) = iVar5;\n    *(int *)(puVar7 + 0xc) = iVar5;\n    *(undefined4 **)(puVar7 + -0xc) = puVar11;\n    iVar5 = *(int *)(puVar7 + 0x28);\n    *(int *)(puVar7 + -0x10) = iVar5;\n    *(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24);\n    *(undefined4 **)(puVar7 + -0x18) = puVar10;\n    *(undefined4 **)(puVar7 + -0x1c) = puVar4;\n    *(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14);\n    *(undefined4 *)(puVar7 + -0x24) = 0xc032a;\n    FUN_000c00a0();\n    *(undefined4 *)(puVar7 + 0x7c) = uVar2;\n    *(undefined4 **)(puVar7 + 0x74) = puVar11;\n    *(undefined4 **)(puVar7 + 0x60) = puVar10;\n    *(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5;\n    *(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10);\n    *(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20);\n    unaff_EBX = *(undefined4 *)(puVar7 + 0x4c);\n    unaff_ESI = *(undefined4 *)(puVar7 + 0x50);\n    unaff_EDI = *(undefined4 *)(puVar7 + 0x54);\n    unaff_EBP = *(undefined4 *)(puVar7 + 0x58);\n    register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c);\n  } while( true );\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (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 "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 unaff_EBX;" (type_identifier "undefined4") (identifier "unaff_EBX") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined1 *puVar7;" (type_identifier "undefined1") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 unaff_EBP;" (type_identifier "undefined4") (identifier "unaff_EBP") (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined4 unaff_ESI;" (type_identifier "undefined4") (identifier "unaff_ESI") (; ";")) (declaration "undefined4 unaff_EDI;" (type_identifier "undefined4") (identifier "unaff_EDI") (; ";")) (declaration "undefined4 *puVar11;" (type_identifier "undefined4") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (do_statement "do {\n    *(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5;\n    iVar5 = *(int *)((int)register0x00000010 + -4);\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    puVar4 = *(undefined4 **)((int)register0x00000010 + 4);\n    *(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b;\n    iVar5 = *(int *)((int)register0x00000010 + 0x14);\n    iVar9 = *(int *)((int)register0x00000010 + 0x10);\n    puVar8 = *(undefined4 **)((int)register0x00000010 + 8);\n    *(undefined4 *)((int)register0x00000010 + -0x4c) =\n         *(undefined4 *)((int)register0x00000010 + 0xc);\n    iVar1 = *(int *)((int)register0x00000010 + 0x1c);\n    puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18);\n    *(int *)((int)register0x00000010 + -0x44) = iVar5;\n    *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x50) =\n         *(undefined4 *)((int)register0x00000010 + 0x20);\n    if (iVar1 < iVar5) {\n      iVar5 = iVar1;\n    }\n    if (iVar9 <= iVar5) {\n      iVar5 = (int)puVar8 - (int)puVar4;\n      if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar11 == puVar10) {\n        return;\n      }\n      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }\n      *(int *)((int)register0x00000010 + -100) = iVar5;\n      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;\n      memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) <= iVar1) {\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);\n      iVar5 = (int)puVar4 - (int)puVar8;\n      if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) < iVar9) {\n      *(int *)((int)register0x00000010 + -0x2c) = iVar1;\n      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(int *)((int)register0x00000010 + -0x70) = iVar5;\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;\n      FUN_000bfba0();\n      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);\n      iVar5 = *(int *)((int)register0x00000010 + -0x30);\n    }\n    else {\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }\n    iVar1 = *(int *)((int)register0x00000010 + -0x38);\n    *(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c);\n    if ((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)) {\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      puVar10 = puVar4;\n      if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }\n    }\n    else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }\n    uVar2 = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + -4) = uVar2;\n    *(int *)(puVar7 + -8) = iVar5;\n    *(int *)(puVar7 + 0xc) = iVar5;\n    *(undefined4 **)(puVar7 + -0xc) = puVar11;\n    iVar5 = *(int *)(puVar7 + 0x28);\n    *(int *)(puVar7 + -0x10) = iVar5;\n    *(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24);\n    *(undefined4 **)(puVar7 + -0x18) = puVar10;\n    *(undefined4 **)(puVar7 + -0x1c) = puVar4;\n    *(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14);\n    *(undefined4 *)(puVar7 + -0x24) = 0xc032a;\n    FUN_000c00a0();\n    *(undefined4 *)(puVar7 + 0x7c) = uVar2;\n    *(undefined4 **)(puVar7 + 0x74) = puVar11;\n    *(undefined4 **)(puVar7 + 0x60) = puVar10;\n    *(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5;\n    *(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10);\n    *(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20);\n    unaff_EBX = *(undefined4 *)(puVar7 + 0x4c);\n    unaff_ESI = *(undefined4 *)(puVar7 + 0x50);\n    unaff_EDI = *(undefined4 *)(puVar7 + 0x54);\n    unaff_EBP = *(undefined4 *)(puVar7 + 0x58);\n    register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c);\n  } while( true );" (do "do") (compound_statement "{\n    *(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5;\n    iVar5 = *(int *)((int)register0x00000010 + -4);\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    puVar4 = *(undefined4 **)((int)register0x00000010 + 4);\n    *(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b;\n    iVar5 = *(int *)((int)register0x00000010 + 0x14);\n    iVar9 = *(int *)((int)register0x00000010 + 0x10);\n    puVar8 = *(undefined4 **)((int)register0x00000010 + 8);\n    *(undefined4 *)((int)register0x00000010 + -0x4c) =\n         *(undefined4 *)((int)register0x00000010 + 0xc);\n    iVar1 = *(int *)((int)register0x00000010 + 0x1c);\n    puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18);\n    *(int *)((int)register0x00000010 + -0x44) = iVar5;\n    *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x50) =\n         *(undefined4 *)((int)register0x00000010 + 0x20);\n    if (iVar1 < iVar5) {\n      iVar5 = iVar1;\n    }\n    if (iVar9 <= iVar5) {\n      iVar5 = (int)puVar8 - (int)puVar4;\n      if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar11 == puVar10) {\n        return;\n      }\n      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }\n      *(int *)((int)register0x00000010 + -100) = iVar5;\n      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;\n      memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) <= iVar1) {\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);\n      iVar5 = (int)puVar4 - (int)puVar8;\n      if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }\n      return;\n    }\n    if (*(int *)((int)register0x00000010 + -0x44) < iVar9) {\n      *(int *)((int)register0x00000010 + -0x2c) = iVar1;\n      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(int *)((int)register0x00000010 + -0x70) = iVar5;\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;\n      FUN_000bfba0();\n      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);\n      iVar5 = *(int *)((int)register0x00000010 + -0x30);\n    }\n    else {\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }\n    iVar1 = *(int *)((int)register0x00000010 + -0x38);\n    *(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c);\n    if ((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)) {\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      puVar10 = puVar4;\n      if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }\n    }\n    else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }\n    uVar2 = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + -4) = uVar2;\n    *(int *)(puVar7 + -8) = iVar5;\n    *(int *)(puVar7 + 0xc) = iVar5;\n    *(undefined4 **)(puVar7 + -0xc) = puVar11;\n    iVar5 = *(int *)(puVar7 + 0x28);\n    *(int *)(puVar7 + -0x10) = iVar5;\n    *(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24);\n    *(undefined4 **)(puVar7 + -0x18) = puVar10;\n    *(undefined4 **)(puVar7 + -0x1c) = puVar4;\n    *(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14);\n    *(undefined4 *)(puVar7 + -0x24) = 0xc032a;\n    FUN_000c00a0();\n    *(undefined4 *)(puVar7 + 0x7c) = uVar2;\n    *(undefined4 **)(puVar7 + 0x74) = puVar11;\n    *(undefined4 **)(puVar7 + 0x60) = puVar10;\n    *(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5;\n    *(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc);\n    *(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10);\n    *(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20);\n    unaff_EBX = *(undefined4 *)(puVar7 + 0x4c);\n    unaff_ESI = *(undefined4 *)(puVar7 + 0x50);\n    unaff_EDI = *(undefined4 *)(puVar7 + 0x54);\n    unaff_EBP = *(undefined4 *)(puVar7 + 0x58);\n    register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c);\n  }" ({ "{") (expression_statement "*(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -4)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -4)" (( "(") (binary_expression "(int)register0x00000010 + -4" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0xc00a5")) (; ";")) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -4);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -4)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)((int)register0x00000010 + -4)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -4)" (( "(") (binary_expression "(int)register0x00000010 + -4" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -4)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -4)" (( "(") (binary_expression "(int)register0x00000010 + -4" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "unaff_EBP")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -8)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -8)" (( "(") (binary_expression "(int)register0x00000010 + -8" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "unaff_EDI")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0xc)" (( "(") (binary_expression "(int)register0x00000010 + -0xc" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "unaff_ESI")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x10)" (( "(") (binary_expression "(int)register0x00000010 + -0x10" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "unaff_EBX")) (; ";")) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + 4);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + 4)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)((int)register0x00000010 + 4)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + 4)" (( "(") (binary_expression "(int)register0x00000010 + 4" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b;" (assignment_expression "*(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b" (pointer_expression "*(int *)((int)register0x00000010 + -0x40)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x40)" (( "(") (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x40")) () ")")))) (= "=") (binary_expression "iVar5 + 0x2e9f5b" (identifier "iVar5") (+ "+") (number_literal "0x2e9f5b"))) (; ";")) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + 0x14);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + 0x14)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)((int)register0x00000010 + 0x14)" (* "*") (cast_expression "(int *)((int)register0x00000010 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + 0x14)" (( "(") (binary_expression "(int)register0x00000010 + 0x14" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar9 = *(int *)((int)register0x00000010 + 0x10);" (assignment_expression "iVar9 = *(int *)((int)register0x00000010 + 0x10)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)((int)register0x00000010 + 0x10)" (* "*") (cast_expression "(int *)((int)register0x00000010 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + 0x10)" (( "(") (binary_expression "(int)register0x00000010 + 0x10" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "puVar8 = *(undefined4 **)((int)register0x00000010 + 8);" (assignment_expression "puVar8 = *(undefined4 **)((int)register0x00000010 + 8)" (identifier "puVar8") (= "=") (pointer_expression "*(undefined4 **)((int)register0x00000010 + 8)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + 8)" (( "(") (binary_expression "(int)register0x00000010 + 8" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x4c) =\n         *(undefined4 *)((int)register0x00000010 + 0xc);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x4c) =\n         *(undefined4 *)((int)register0x00000010 + 0xc)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x4c)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x4c)" (( "(") (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x4c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)register0x00000010 + 0xc)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + 0xc)" (( "(") (binary_expression "(int)register0x00000010 + 0xc" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar1 = *(int *)((int)register0x00000010 + 0x1c);" (assignment_expression "iVar1 = *(int *)((int)register0x00000010 + 0x1c)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)((int)register0x00000010 + 0x1c)" (* "*") (cast_expression "(int *)((int)register0x00000010 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + 0x1c)" (( "(") (binary_expression "(int)register0x00000010 + 0x1c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18);" (assignment_expression "puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined4 **)((int)register0x00000010 + 0x18)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + 0x18)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + 0x18)" (( "(") (binary_expression "(int)register0x00000010 + 0x18" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x44) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x44) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x44)" (( "(") (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x44")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x48) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x48)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x48)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x48)" (( "(") (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x48")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x50) =\n         *(undefined4 *)((int)register0x00000010 + 0x20);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x50) =\n         *(undefined4 *)((int)register0x00000010 + 0x20)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x50)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x50)" (( "(") (binary_expression "(int)register0x00000010 + -0x50" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x50")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)register0x00000010 + 0x20)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + 0x20)" (( "(") (binary_expression "(int)register0x00000010 + 0x20" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (iVar1 < iVar5) {\n      iVar5 = iVar1;\n    }" (if "if") (parenthesized_expression "(iVar1 < iVar5)" (( "(") (binary_expression "iVar1 < iVar5" (identifier "iVar1") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n      iVar5 = iVar1;\n    }" ({ "{") (expression_statement "iVar5 = iVar1;" (assignment_expression "iVar5 = iVar1" (identifier "iVar5") (= "=") (identifier "iVar1")) (; ";")) (} "}"))) (if_statement "if (iVar9 <= iVar5) {\n      iVar5 = (int)puVar8 - (int)puVar4;\n      if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar11 == puVar10) {\n        return;\n      }\n      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }\n      *(int *)((int)register0x00000010 + -100) = iVar5;\n      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;\n      memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));\n      return;\n    }" (if "if") (parenthesized_expression "(iVar9 <= iVar5)" (( "(") (binary_expression "iVar9 <= iVar5" (identifier "iVar9") (<= "<=") (identifier "iVar5")) () ")")) (compound_statement "{\n      iVar5 = (int)puVar8 - (int)puVar4;\n      if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar11 == puVar10) {\n        return;\n      }\n      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }\n      *(int *)((int)register0x00000010 + -100) = iVar5;\n      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;\n      memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));\n      return;\n    }" ({ "{") (expression_statement "iVar5 = (int)puVar8 - (int)puVar4;" (assignment_expression "iVar5 = (int)puVar8 - (int)puVar4" (identifier "iVar5") (= "=") (binary_expression "(int)puVar8 - (int)puVar4" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (- "-") (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")))) (; ";")) (if_statement "if (puVar8 != puVar4) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }" (if "if") (parenthesized_expression "(puVar8 != puVar4)" (( "(") (binary_expression "puVar8 != puVar4" (identifier "puVar8") (!= "!=") (identifier "puVar4")) () ")")) (compound_statement "{\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      }" ({ "{") (expression_statement "*(int *)((int)register0x00000010 + -100) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -100) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -100)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -100)" (( "(") (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-100")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x44) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x44) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x44)" (( "(") (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x44")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x48) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x48)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x48)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x48)" (( "(") (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x48")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (number_literal "0xc0113")) (; ";")) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100))" (identifier "memmove") (argument_list "(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100))" (( "(") (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (, ",") (pointer_expression "*(void **)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) (, ",") (pointer_expression "*(size_t *)((int)register0x00000010 + -100)" (* "*") (cast_expression "(size_t *)((int)register0x00000010 + -100)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -100)" (( "(") (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-100")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x44);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x44)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x44)" (( "(") (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x44")) () ")"))))) (; ";")) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x48)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x48)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x48)" (( "(") (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x48")) () ")"))))) (; ";")) (} "}"))) (expression_statement "puVar10 = (undefined4 *)((int)puVar11 + iVar5);" (assignment_expression "puVar10 = (undefined4 *)((int)puVar11 + iVar5)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)((int)puVar11 + iVar5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + iVar5)" (( "(") (binary_expression "(int)puVar11 + iVar5" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (identifier "iVar5")) () ")")))) (; ";")) (if_statement "if (puVar11 == puVar10) {\n        return;\n      }" (if "if") (parenthesized_expression "(puVar11 == puVar10)" (( "(") (binary_expression "puVar11 == puVar10" (identifier "puVar11") (== "==") (identifier "puVar10")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }" (if "if") (parenthesized_expression "(*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8)" (( "(") (binary_expression "*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x4c)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x4c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x4c)" (( "(") (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x4c")) () ")")))) (!= "!=") (identifier "puVar8")) () ")")) (compound_statement "{\n        do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);\n        iVar5 = (int)puVar10 - (int)puVar11;\n      }" ({ "{") (do_statement "do {\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);" (do "do") (compound_statement "{\n          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;\n          *(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;\n          cVar3 = FUN_000aa8c0();\n          if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }\n          if (puVar10 == puVar11) {\n            return;\n          }\n          puVar4 = puVar4 + 1;\n        }" ({ "{") (expression_statement "*(undefined4 *)((int)register0x00000010 + -100) = *puVar11;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -100) = *puVar11" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -100)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -100)" (( "(") (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-100")) () ")")))) (= "=") (pointer_expression "*puVar11" (* "*") (identifier "puVar11"))) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n               *(undefined4 *)((int)register0x00000010 + -0x50)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x50)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x50)" (( "(") (binary_expression "(int)register0x00000010 + -0x50" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (number_literal "0xc0163")) (; ";")) (expression_statement "cVar3 = FUN_000aa8c0();" (assignment_expression "cVar3 = FUN_000aa8c0()" (identifier "cVar3") (= "=") (call_expression "FUN_000aa8c0()" (identifier "FUN_000aa8c0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar3 == '\0') {\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }\n          else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            uVar2 = *puVar11;\n            puVar11 = puVar11 + 1;\n            *puVar4 = uVar2;\n          }" ({ "{") (expression_statement "uVar2 = *puVar11;" (assignment_expression "uVar2 = *puVar11" (identifier "uVar2") (= "=") (pointer_expression "*puVar11" (* "*") (identifier "puVar11"))) (; ";")) (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 1" (identifier "puVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar4 = uVar2;" (assignment_expression "*puVar4 = uVar2" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (identifier "uVar2")) (; ";")) (} "}")) (else_clause "else {\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }" (else "else") (compound_statement "{\n            uVar2 = *puVar8;\n            puVar8 = puVar8 + 1;\n            *puVar4 = uVar2;\n          }" ({ "{") (expression_statement "uVar2 = *puVar8;" (assignment_expression "uVar2 = *puVar8" (identifier "uVar2") (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (expression_statement "puVar8 = puVar8 + 1;" (assignment_expression "puVar8 = puVar8 + 1" (identifier "puVar8") (= "=") (binary_expression "puVar8 + 1" (identifier "puVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar4 = uVar2;" (assignment_expression "*puVar4 = uVar2" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (identifier "uVar2")) (; ";")) (} "}")))) (if_statement "if (puVar10 == puVar11) {\n            return;\n          }" (if "if") (parenthesized_expression "(puVar10 == puVar11)" (( "(") (binary_expression "puVar10 == puVar11" (identifier "puVar10") (== "==") (identifier "puVar11")) () ")")) (compound_statement "{\n            return;\n          }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" (identifier "puVar4") (= "=") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8)" (( "(") (binary_expression "*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x4c)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x4c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x4c)" (( "(") (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x4c")) () ")")))) (!= "!=") (identifier "puVar8")) () ")")) (; ";")) (expression_statement "iVar5 = (int)puVar10 - (int)puVar11;" (assignment_expression "iVar5 = (int)puVar10 - (int)puVar11" (identifier "iVar5") (= "=") (binary_expression "(int)puVar10 - (int)puVar11" (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10")) (- "-") (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")))) (; ";")) (} "}"))) (expression_statement "*(int *)((int)register0x00000010 + -100) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -100) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -100)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -100)" (( "(") (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-100")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (number_literal "0xc039d")) (; ";")) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100))" (identifier "memmove") (argument_list "(*(void **)((int)register0x00000010 + -0x6c),\n              *(void **)((int)register0x00000010 + -0x68),\n              *(size_t *)((int)register0x00000010 + -100))" (( "(") (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (, ",") (pointer_expression "*(void **)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) (, ",") (pointer_expression "*(size_t *)((int)register0x00000010 + -100)" (* "*") (cast_expression "(size_t *)((int)register0x00000010 + -100)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -100)" (( "(") (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-100")) () ")")))) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(int *)((int)register0x00000010 + -0x44) <= iVar1) {\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);\n      iVar5 = (int)puVar4 - (int)puVar8;\n      if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }\n      return;\n    }" (if "if") (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x44) <= iVar1)" (( "(") (binary_expression "*(int *)((int)register0x00000010 + -0x44) <= iVar1" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x44)" (( "(") (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x44")) () ")")))) (<= "<=") (identifier "iVar1")) () ")")) (compound_statement "{\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);\n      iVar5 = (int)puVar4 - (int)puVar8;\n      if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }\n      puVar10 = (undefined4 *)((int)puVar11 + iVar5);\n      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }\n      return;\n    }" ({ "{") (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x4c)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x4c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x4c)" (( "(") (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x4c")) () ")"))))) (; ";")) (expression_statement "iVar5 = (int)puVar4 - (int)puVar8;" (assignment_expression "iVar5 = (int)puVar4 - (int)puVar8" (identifier "iVar5") (= "=") (binary_expression "(int)puVar4 - (int)puVar8" (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")) (- "-") (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")))) (; ";")) (if_statement "if (puVar4 != puVar8) {\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }" (if "if") (parenthesized_expression "(puVar4 != puVar8)" (( "(") (binary_expression "puVar4 != puVar8" (identifier "puVar4") (!= "!=") (identifier "puVar8")) () ")")) (compound_statement "{\n        *(int *)((int)register0x00000010 + -100) = iVar5;\n        *(int *)((int)register0x00000010 + -0x44) = iVar5;\n        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;\n        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;\n        memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));\n        iVar5 = *(int *)((int)register0x00000010 + -0x44);\n      }" ({ "{") (expression_statement "*(int *)((int)register0x00000010 + -100) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -100) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -100)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -100)" (( "(") (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-100")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x44) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x44) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x44)" (( "(") (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x44")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (identifier "puVar8")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (number_literal "0xc01af")) (; ";")) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100))" (identifier "memmove") (argument_list "(*(void **)((int)register0x00000010 + -0x6c),\n                *(void **)((int)register0x00000010 + -0x68),\n                *(size_t *)((int)register0x00000010 + -100))" (( "(") (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (, ",") (pointer_expression "*(void **)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) (, ",") (pointer_expression "*(size_t *)((int)register0x00000010 + -100)" (* "*") (cast_expression "(size_t *)((int)register0x00000010 + -100)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -100)" (( "(") (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-100")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x44);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x44)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x44)" (( "(") (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x44")) () ")"))))) (; ";")) (} "}"))) (expression_statement "puVar10 = (undefined4 *)((int)puVar11 + iVar5);" (assignment_expression "puVar10 = (undefined4 *)((int)puVar11 + iVar5)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)((int)puVar11 + iVar5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + iVar5)" (( "(") (binary_expression "(int)puVar11 + iVar5" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (identifier "iVar5")) () ")")))) (; ";")) (if_statement "if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }\n      else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }" (if "if") (parenthesized_expression "(puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48))" (( "(") (binary_expression "puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)" (identifier "puVar8") (== "==") (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x48)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x48)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x48)" (( "(") (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x48")) () ")"))))) () ")")) (compound_statement "{\n        if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }\n      }" ({ "{") (if_statement "if (puVar11 != puVar10) {\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }" (if "if") (parenthesized_expression "(puVar11 != puVar10)" (( "(") (binary_expression "puVar11 != puVar10" (identifier "puVar11") (!= "!=") (identifier "puVar10")) () ")")) (compound_statement "{\n          *(int *)((int)register0x00000010 + -100) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n          *(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;\n          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;\n          memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));\n        }" ({ "{") (expression_statement "*(int *)((int)register0x00000010 + -100) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -100) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -100)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -100)" (( "(") (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-100")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x6c) =\n               *(int *)((int)register0x00000010 + -0x4c) - iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (binary_expression "*(int *)((int)register0x00000010 + -0x4c) - iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x4c)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x4c)" (( "(") (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x4c")) () ")")))) (- "-") (identifier "iVar5"))) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (number_literal "0xc0535")) (; ";")) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100))" (identifier "memmove") (argument_list "(*(void **)((int)register0x00000010 + -0x6c),\n                  *(void **)((int)register0x00000010 + -0x68),\n                  *(size_t *)((int)register0x00000010 + -100))" (( "(") (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (, ",") (pointer_expression "*(void **)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) (, ",") (pointer_expression "*(size_t *)((int)register0x00000010 + -100)" (* "*") (cast_expression "(size_t *)((int)register0x00000010 + -100)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -100)" (( "(") (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-100")) () ")")))) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }" (else "else") (if_statement "if (puVar11 != puVar10) {\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }" (if "if") (parenthesized_expression "(puVar11 != puVar10)" (( "(") (binary_expression "puVar11 != puVar10" (identifier "puVar11") (!= "!=") (identifier "puVar10")) () ")")) (compound_statement "{\n        puVar8 = puVar8 + -1;\n        do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);\n      }" ({ "{") (expression_statement "puVar8 = puVar8 + -1;" (assignment_expression "puVar8 = puVar8 + -1" (identifier "puVar8") (= "=") (binary_expression "puVar8 + -1" (identifier "puVar8") (+ "+") (number_literal "-1"))) (; ";")) (do_statement "do {\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        } while (puVar11 != puVar6);" (do "do") (compound_statement "{\n          puVar6 = puVar10 + -1;\n          while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }\n          *puVar4 = *puVar6;\n          puVar10 = puVar6;\n        }" ({ "{") (expression_statement "puVar6 = puVar10 + -1;" (assignment_expression "puVar6 = puVar10 + -1" (identifier "puVar6") (= "=") (binary_expression "puVar10 + -1" (identifier "puVar10") (+ "+") (number_literal "-1"))) (; ";")) (while_statement "while( true ) {\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;\n            puVar4 = puVar4 + -1;\n            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);\n            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;\n            cVar3 = FUN_000aa8c0();\n            if (cVar3 == '\0') break;\n            *puVar4 = *puVar8;\n            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }\n            puVar8 = puVar8 + -1;\n          }" ({ "{") (expression_statement "*(undefined4 *)((int)register0x00000010 + -100) = *puVar8;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -100) = *puVar8" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -100)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -100)" (( "(") (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-100")) () ")")))) (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (expression_statement "puVar4 = puVar4 + -1;" (assignment_expression "puVar4 = puVar4 + -1" (identifier "puVar4") (= "=") (binary_expression "puVar4 + -1" (identifier "puVar4") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n                 *(undefined4 *)((int)register0x00000010 + -0x50)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x50)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x50)" (( "(") (binary_expression "(int)register0x00000010 + -0x50" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (number_literal "0xc01e6")) (; ";")) (expression_statement "cVar3 = FUN_000aa8c0();" (assignment_expression "cVar3 = FUN_000aa8c0()" (identifier "cVar3") (= "=") (call_expression "FUN_000aa8c0()" (identifier "FUN_000aa8c0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar3 == '\0') break;" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*puVar4 = *puVar8;" (assignment_expression "*puVar4 = *puVar8" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (if_statement "if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }" (if "if") (parenthesized_expression "(puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48))" (( "(") (binary_expression "puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)" (identifier "puVar8") (== "==") (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x48)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x48)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x48)" (( "(") (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x48")) () ")"))))) () ")")) (compound_statement "{\n              if (puVar11 == puVar10) {\n                return;\n              }\n              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;\n              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;\n              *(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);\n              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;\n              memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));\n              return;\n            }" ({ "{") (if_statement "if (puVar11 == puVar10) {\n                return;\n              }" (if "if") (parenthesized_expression "(puVar11 == puVar10)" (( "(") (binary_expression "puVar11 == puVar10" (identifier "puVar11") (== "==") (identifier "puVar10")) () ")")) (compound_statement "{\n                return;\n              }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "*(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;" (assignment_expression "*(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11" (pointer_expression "*(int *)((int)register0x00000010 + -100)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -100)" (( "(") (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-100")) () ")")))) (= "=") (binary_expression "(int)puVar10 - (int)puVar11" (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10")) (- "-") (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")))) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x68) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11);" (assignment_expression "*(int *)((int)register0x00000010 + -0x6c) =\n                   (int)puVar4 - ((int)puVar10 - (int)puVar11)" (pointer_expression "*(int *)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (binary_expression "(int)puVar4 - ((int)puVar10 - (int)puVar11)" (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")) (- "-") (parenthesized_expression "((int)puVar10 - (int)puVar11)" (( "(") (binary_expression "(int)puVar10 - (int)puVar11" (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10")) (- "-") (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11"))) () ")")))) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (number_literal "0xc04ee")) (; ";")) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100))" (identifier "memmove") (argument_list "(*(void **)((int)register0x00000010 + -0x6c),\n                      *(void **)((int)register0x00000010 + -0x68),\n                      *(size_t *)((int)register0x00000010 + -100))" (( "(") (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (, ",") (pointer_expression "*(void **)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) (, ",") (pointer_expression "*(size_t *)((int)register0x00000010 + -100)" (* "*") (cast_expression "(size_t *)((int)register0x00000010 + -100)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -100)" (( "(") (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-100")) () ")")))) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar8 = puVar8 + -1;" (assignment_expression "puVar8 = puVar8 + -1" (identifier "puVar8") (= "=") (binary_expression "puVar8 + -1" (identifier "puVar8") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "*puVar4 = *puVar6;" (assignment_expression "*puVar4 = *puVar6" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "puVar10 = puVar6;" (assignment_expression "puVar10 = puVar6" (identifier "puVar10") (= "=") (identifier "puVar6")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != puVar6)" (( "(") (binary_expression "puVar11 != puVar6" (identifier "puVar11") (!= "!=") (identifier "puVar6")) () ")")) (; ";")) (} "}"))))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(int *)((int)register0x00000010 + -0x44) < iVar9) {\n      *(int *)((int)register0x00000010 + -0x2c) = iVar1;\n      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(int *)((int)register0x00000010 + -0x70) = iVar5;\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;\n      FUN_000bfba0();\n      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);\n      iVar5 = *(int *)((int)register0x00000010 + -0x30);\n    }\n    else {\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }" (if "if") (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x44) < iVar9)" (( "(") (binary_expression "*(int *)((int)register0x00000010 + -0x44) < iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x44)" (( "(") (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x44")) () ")")))) (< "<") (identifier "iVar9")) () ")")) (compound_statement "{\n      *(int *)((int)register0x00000010 + -0x2c) = iVar1;\n      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(int *)((int)register0x00000010 + -0x70) = iVar5;\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;\n      FUN_000bfba0();\n      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);\n      iVar5 = *(int *)((int)register0x00000010 + -0x30);\n    }" ({ "{") (expression_statement "*(int *)((int)register0x00000010 + -0x2c) = iVar1;" (assignment_expression "*(int *)((int)register0x00000010 + -0x2c) = iVar1" (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x2c)" (( "(") (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (identifier "iVar1")) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;" (assignment_expression "*(int *)((int)register0x00000010 + -0x38) = iVar9 / 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x38)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x38)" (( "(") (binary_expression "(int)register0x00000010 + -0x38" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x38")) () ")")))) (= "=") (binary_expression "iVar9 / 2" (identifier "iVar9") (/ "/") (number_literal "2"))) (; ";")) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4" (identifier "iVar5") (= "=") (binary_expression "*(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4" (pointer_expression "*(int *)((int)register0x00000010 + -0x48)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x48)" (( "(") (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x48")) () ")")))) (+ "+") (binary_expression "(iVar9 / 2) * 4" (parenthesized_expression "(iVar9 / 2)" (( "(") (binary_expression "iVar9 / 2" (identifier "iVar9") (/ "/") (number_literal "2")) () ")")) (* "*") (number_literal "4")))) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x50)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x50)" (( "(") (binary_expression "(int)register0x00000010 + -0x50" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x70) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x70) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x30) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x30) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x30)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x30)" (( "(") (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) =\n           *(undefined4 *)((int)register0x00000010 + -0x4c)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x74)" (( "(") (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x74")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x4c)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x4c)" (( "(") (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x4c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x78) = puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x78)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x78)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x78)" (( "(") (binary_expression "(int)register0x00000010 + -0x78" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x78")) () ")")))) (= "=") (identifier "puVar8")) (; ";")) (expression_statement "*(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);" (assignment_expression "*(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20)" (pointer_expression "*(undefined1 **)((int)register0x00000010 + -0x7c)" (* "*") (cast_expression "(undefined1 **)((int)register0x00000010 + -0x7c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x7c)" (( "(") (binary_expression "(int)register0x00000010 + -0x7c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x7c")) () ")")))) (= "=") (cast_expression "(undefined1 *)((int)register0x00000010 + -0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x20)" (( "(") (binary_expression "(int)register0x00000010 + -0x20" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x20")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x80)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x80)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x80)" (( "(") (binary_expression "(int)register0x00000010 + -0x80" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x80")) () ")")))) (= "=") (number_literal "0xc03e3")) (; ";")) (expression_statement "FUN_000bfba0();" (call_expression "FUN_000bfba0()" (identifier "FUN_000bfba0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);" (assignment_expression "*(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24)" (pointer_expression "*(int *)((int)register0x00000010 + -0x40)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x40)" (( "(") (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x40")) () ")")))) (= "=") (pointer_expression "*(int *)((int)register0x00000010 + -0x24)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x24)" (( "(") (binary_expression "(int)register0x00000010 + -0x24" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x24")) () ")"))))) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;" (assignment_expression "*(int *)((int)register0x00000010 + -0x38) =\n           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x38)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x38)" (( "(") (binary_expression "(int)register0x00000010 + -0x38" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x38")) () ")")))) (= "=") (binary_expression "*(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2" (binary_expression "*(int *)((int)register0x00000010 + -0x24) - (int)puVar8" (pointer_expression "*(int *)((int)register0x00000010 + -0x24)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x24)" (( "(") (binary_expression "(int)register0x00000010 + -0x24" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x24")) () ")")))) (- "-") (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8"))) (>> ">>") (number_literal "2"))) (; ";")) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x34)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x34)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x34)" (( "(") (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x34")) () ")"))))) (; ";")) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x30);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x30)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)((int)register0x00000010 + -0x30)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x30)" (( "(") (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x30")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }" (else "else") (compound_statement "{\n      *(int *)((int)register0x00000010 + -0x30) = iVar1;\n      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);\n      *(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;\n      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;\n      *(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);\n      *(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;\n      FUN_000bfc10();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);\n      *(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n    }" ({ "{") (expression_statement "*(int *)((int)register0x00000010 + -0x30) = iVar1;" (assignment_expression "*(int *)((int)register0x00000010 + -0x30) = iVar1" (pointer_expression "*(int *)((int)register0x00000010 + -0x30)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x30)" (( "(") (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (identifier "iVar1")) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;" (assignment_expression "*(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x34)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x34)" (( "(") (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (binary_expression "*(int *)((int)register0x00000010 + -0x44) / 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x44)" (( "(") (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x44")) () ")")))) (/ "/") (number_literal "2"))) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x3c) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x3c)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x3c)" (( "(") (binary_expression "(int)register0x00000010 + -0x3c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x3c")) () ")")))) (= "=") (binary_expression "puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2" (identifier "puVar8") (+ "+") (binary_expression "*(int *)((int)register0x00000010 + -0x44) / 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x44)" (( "(") (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x44")) () ")")))) (/ "/") (number_literal "2")))) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n           *(undefined4 *)((int)register0x00000010 + -0x50)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x50)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x50)" (( "(") (binary_expression "(int)register0x00000010 + -0x50" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x70) =\n           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (binary_expression "puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2" (identifier "puVar8") (+ "+") (binary_expression "*(int *)((int)register0x00000010 + -0x44) / 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x44)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x44)" (( "(") (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x44")) () ")")))) (/ "/") (number_literal "2")))) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x74) = puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x74)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x74)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x74)" (( "(") (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x74")) () ")")))) (= "=") (identifier "puVar8")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x78) =\n           *(undefined4 *)((int)register0x00000010 + -0x48)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x78)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x78)" (( "(") (binary_expression "(int)register0x00000010 + -0x78" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x78")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x48)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x48)" (( "(") (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x48")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20);" (assignment_expression "*(undefined1 **)((int)register0x00000010 + -0x7c) =\n           (undefined1 *)((int)register0x00000010 + -0x20)" (pointer_expression "*(undefined1 **)((int)register0x00000010 + -0x7c)" (* "*") (cast_expression "(undefined1 **)((int)register0x00000010 + -0x7c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x7c)" (( "(") (binary_expression "(int)register0x00000010 + -0x7c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x7c")) () ")")))) (= "=") (cast_expression "(undefined1 *)((int)register0x00000010 + -0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x20)" (( "(") (binary_expression "(int)register0x00000010 + -0x20" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x20")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x80)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x80)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x80)" (( "(") (binary_expression "(int)register0x00000010 + -0x80" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x80")) () ")")))) (= "=") (number_literal "0xc0245")) (; ";")) (expression_statement "FUN_000bfc10();" (call_expression "FUN_000bfc10()" (identifier "FUN_000bfc10") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x24)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x24)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x24)" (( "(") (binary_expression "(int)register0x00000010 + -0x24" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x24")) () ")"))))) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;" (assignment_expression "*(int *)((int)register0x00000010 + -0x3c) =\n           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2" (pointer_expression "*(int *)((int)register0x00000010 + -0x3c)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x3c)" (( "(") (binary_expression "(int)register0x00000010 + -0x3c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x3c")) () ")")))) (= "=") (binary_expression "(int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2" (binary_expression "(int)puVar4 - *(int *)((int)register0x00000010 + -0x4c)" (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")) (- "-") (pointer_expression "*(int *)((int)register0x00000010 + -0x4c)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x4c)" (( "(") (binary_expression "(int)register0x00000010 + -0x4c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x4c")) () ")"))))) (>> ">>") (number_literal "2"))) (; ";")) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x34);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x34)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)((int)register0x00000010 + -0x34)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x34)" (( "(") (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x34")) () ")"))))) (; ";")) (} "}")))) (expression_statement "iVar1 = *(int *)((int)register0x00000010 + -0x38);" (assignment_expression "iVar1 = *(int *)((int)register0x00000010 + -0x38)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)((int)register0x00000010 + -0x38)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x38)" (( "(") (binary_expression "(int)register0x00000010 + -0x38" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x38")) () ")"))))) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c);" (assignment_expression "*(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c)" (pointer_expression "*(int *)((int)register0x00000010 + -0x34)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x34)" (( "(") (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (binary_expression "iVar9 - *(int *)((int)register0x00000010 + -0x3c)" (identifier "iVar9") (- "-") (pointer_expression "*(int *)((int)register0x00000010 + -0x3c)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x3c)" (( "(") (binary_expression "(int)register0x00000010 + -0x3c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x3c")) () ")")))))) (; ";")) (if_statement "if ((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)) {\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      puVar10 = puVar4;\n      if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }\n    }\n    else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }" (if "if") (parenthesized_expression "((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5))" (( "(") (binary_expression "(iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)" (parenthesized_expression "(iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c))" (( "(") (binary_expression "iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)" (identifier "iVar1") (< "<") (binary_expression "iVar9 - *(int *)((int)register0x00000010 + -0x3c)" (identifier "iVar9") (- "-") (pointer_expression "*(int *)((int)register0x00000010 + -0x3c)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x3c)" (( "(") (binary_expression "(int)register0x00000010 + -0x3c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x3c")) () ")")))))) () ")")) (&& "&&") (parenthesized_expression "(iVar1 <= iVar5)" (( "(") (binary_expression "iVar1 <= iVar5" (identifier "iVar1") (<= "<=") (identifier "iVar5")) () ")"))) () ")")) (compound_statement "{\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      puVar10 = puVar4;\n      if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }\n    }" ({ "{") (expression_statement "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);" (assignment_expression "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60)" (identifier "puVar7") (= "=") (cast_expression "(undefined1 *)((int)register0x00000010 + -0x60)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x60)" (( "(") (binary_expression "(int)register0x00000010 + -0x60" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x60")) () ")")))) (; ";")) (expression_statement "puVar10 = puVar4;" (assignment_expression "puVar10 = puVar4" (identifier "puVar10") (= "=") (identifier "puVar4")) (; ";")) (if_statement "if (iVar1 != 0) {\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;\n        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n      }" ({ "{") (expression_statement "iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;" (assignment_expression "iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8" (identifier "iVar9") (= "=") (binary_expression "(int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8" (cast_expression "(int)*(undefined4 **)((int)register0x00000010 + -0x40)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x40)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x40)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x40)" (( "(") (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x40")) () ")"))))) (- "-") (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")))) (; ";")) (if_statement "if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }" (if "if") (parenthesized_expression "(*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8)" (( "(") (binary_expression "*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x40)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x40)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x40)" (( "(") (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x40")) () ")")))) (== "==") (identifier "puVar8")) () ")")) (compound_statement "{\n          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }" ({ "{") (if_statement "if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;" (if "if") (parenthesized_expression "(puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40))" (( "(") (binary_expression "puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)" (identifier "puVar4") (!= "!=") (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x40)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x40)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x40)" (( "(") (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x40")) () ")"))))) () ")")) (goto_statement "goto LAB_000c02b9;" (goto "goto") (statement_identifier "LAB_000c02b9") (; ";"))) (expression_statement "puVar10 = (undefined4 *)(iVar9 + (int)puVar4);" (assignment_expression "puVar10 = (undefined4 *)(iVar9 + (int)puVar4)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)(iVar9 + (int)puVar4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + (int)puVar4)" (( "(") (binary_expression "iVar9 + (int)puVar4" (identifier "iVar9") (+ "+") (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4"))) () ")")))) (; ";")) (expression_statement "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);" (assignment_expression "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60)" (identifier "puVar7") (= "=") (cast_expression "(undefined1 *)((int)register0x00000010 + -0x60)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x60)" (( "(") (binary_expression "(int)register0x00000010 + -0x60" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x60")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }" (else "else") (compound_statement "{\n          *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n          if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }\n          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);\n          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n        }" ({ "{") (expression_statement "*(int *)((int)register0x00000010 + -0x2c) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x2c) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x2c)" (( "(") (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x30) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x30)" (( "(") (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x68) = iVar9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x68) = iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (identifier "puVar8")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x74)" (( "(") (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x74")) () ")")))) (= "=") (number_literal "0xc02aa")) (; ";")) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68))" (identifier "memmove") (argument_list "(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68))" (( "(") (pointer_expression "*(void **)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (, ",") (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (, ",") (pointer_expression "*(size_t *)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(size_t *)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) () ")"))) (; ";")) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x30)" (( "(") (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x30")) () ")"))))) (; ";")) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x2c);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x2c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x2c)" (( "(") (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x2c")) () ")"))))) (; ";")) (if_statement "if (puVar4 != puVar8) {\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }" (if "if") (parenthesized_expression "(puVar4 != puVar8)" (( "(") (binary_expression "puVar4 != puVar8" (identifier "puVar4") (!= "!=") (identifier "puVar8")) () ")")) (compound_statement "{\nLAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }" ({ "{") (labeled_statement "LAB_000c02b9:\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;" (statement_identifier "LAB_000c02b9") (: ":") (expression_statement "*(int *)((int)register0x00000010 + -0x2c) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x2c) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x2c)" (( "(") (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (identifier "iVar5")) (; ";"))) (expression_statement "*(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;" (assignment_expression "*(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4" (pointer_expression "*(int *)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (binary_expression "(int)puVar8 - (int)puVar4" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (- "-") (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")))) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x30) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x30)" (( "(") (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);" (assignment_expression "*(int *)((int)register0x00000010 + -0x70) =\n                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4)" (pointer_expression "*(int *)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (binary_expression "*(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4)" (pointer_expression "*(int *)((int)register0x00000010 + -0x40)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x40)" (( "(") (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x40")) () ")")))) (- "-") (parenthesized_expression "((int)puVar8 - (int)puVar4)" (( "(") (binary_expression "(int)puVar8 - (int)puVar4" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (- "-") (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4"))) () ")")))) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x74)" (( "(") (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x74")) () ")")))) (= "=") (number_literal "0xc02d8")) (; ";")) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" (identifier "memmove") (argument_list "(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" (( "(") (pointer_expression "*(void **)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (, ",") (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (, ",") (pointer_expression "*(size_t *)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(size_t *)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x2c);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x2c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x2c)" (( "(") (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x2c")) () ")"))))) (; ";")) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x30)" (( "(") (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x30")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(int *)((int)register0x00000010 + -0x2c) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x2c);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);\n          }" ({ "{") (expression_statement "*(int *)((int)register0x00000010 + -0x2c) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x2c) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x2c)" (( "(") (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x68) = iVar9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x68) = iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x30) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x30)" (( "(") (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x74)" (( "(") (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x74")) () ")")))) (= "=") (number_literal "0xc02fe")) (; ";")) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" (identifier "memmove") (argument_list "(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" (( "(") (pointer_expression "*(void **)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (, ",") (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (, ",") (pointer_expression "*(size_t *)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(size_t *)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x2c);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x2c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)((int)register0x00000010 + -0x2c)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x2c)" (( "(") (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x2c")) () ")"))))) (; ";")) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x30)" (( "(") (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x30")) () ")"))))) (; ";")) (} "}"))) (expression_statement "puVar10 = (undefined4 *)(iVar9 + (int)puVar4);" (assignment_expression "puVar10 = (undefined4 *)(iVar9 + (int)puVar4)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)(iVar9 + (int)puVar4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + (int)puVar4)" (( "(") (binary_expression "iVar9 + (int)puVar4" (identifier "iVar9") (+ "+") (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4"))) () ")")))) (; ";")) (expression_statement "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);" (assignment_expression "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60)" (identifier "puVar7") (= "=") (cast_expression "(undefined1 *)((int)register0x00000010 + -0x60)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x60)" (( "(") (binary_expression "(int)register0x00000010 + -0x60" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x60")) () ")")))) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }" (else "else") (if_statement "if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }\n    else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }" (if "if") (parenthesized_expression "(iVar5 < *(int *)((int)register0x00000010 + -0x34))" (( "(") (binary_expression "iVar5 < *(int *)((int)register0x00000010 + -0x34)" (identifier "iVar5") (< "<") (pointer_expression "*(int *)((int)register0x00000010 + -0x34)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x34)" (( "(") (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x34")) () ")"))))) () ")")) (compound_statement "{\n      *(int *)((int)register0x00000010 + -0x30) = iVar5;\n      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;\n      iVar9 = *(int *)((int)register0x00000010 + -0x40);\n      *(int *)((int)register0x00000010 + -0x74) = iVar9;\n      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;\n      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;\n      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;\n      *(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);\n      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;\n      FUN_000bfc80();\n      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -100);\n      iVar5 = *(int *)((int)register0x00000010 + -0x34);\n      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);\n    }" ({ "{") (expression_statement "*(int *)((int)register0x00000010 + -0x30) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x30) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x30)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x30)" (( "(") (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) = 0;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar9 = *(int *)((int)register0x00000010 + -0x40);" (assignment_expression "iVar9 = *(int *)((int)register0x00000010 + -0x40)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)((int)register0x00000010 + -0x40)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x40)" (( "(") (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x40")) () ")"))))) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x74) = iVar9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x74) = iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x74)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x74)" (( "(") (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x74")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x78) = puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x78)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x78)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x78)" (( "(") (binary_expression "(int)register0x00000010 + -0x78" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x78")) () ")")))) (= "=") (identifier "puVar8")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x7c)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x7c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x7c)" (( "(") (binary_expression "(int)register0x00000010 + -0x7c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x7c")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x44) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x44)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x44)" (( "(") (binary_expression "(int)register0x00000010 + -0x44" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x44")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20);" (assignment_expression "*(undefined1 **)((int)register0x00000010 + -0x80) =\n           (undefined1 *)((int)register0x00000010 + -0x20)" (pointer_expression "*(undefined1 **)((int)register0x00000010 + -0x80)" (* "*") (cast_expression "(undefined1 **)((int)register0x00000010 + -0x80)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x80)" (( "(") (binary_expression "(int)register0x00000010 + -0x80" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x80")) () ")")))) (= "=") (cast_expression "(undefined1 *)((int)register0x00000010 + -0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x20)" (( "(") (binary_expression "(int)register0x00000010 + -0x20" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x20")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x84)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x84)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x84)" (( "(") (binary_expression "(int)register0x00000010 + -0x84" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x84")) () ")")))) (= "=") (number_literal "0xc055e")) (; ";")) (expression_statement "FUN_000bfc80();" (call_expression "FUN_000bfc80()" (identifier "FUN_000bfc80") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x48)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x48)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x48)" (( "(") (binary_expression "(int)register0x00000010 + -0x48" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x48")) () ")"))))) (; ";")) (expression_statement "puVar7 = (undefined1 *)((int)register0x00000010 + -100);" (assignment_expression "puVar7 = (undefined1 *)((int)register0x00000010 + -100)" (identifier "puVar7") (= "=") (cast_expression "(undefined1 *)((int)register0x00000010 + -100)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -100)" (( "(") (binary_expression "(int)register0x00000010 + -100" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-100")) () ")")))) (; ";")) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x34);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x34)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)((int)register0x00000010 + -0x34)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x34)" (( "(") (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x34")) () ")"))))) (; ";")) (expression_statement "puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);" (assignment_expression "puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar9 - (int)puVar8) + (int)puVar4)" (( "(") (binary_expression "(iVar9 - (int)puVar8) + (int)puVar4" (parenthesized_expression "(iVar9 - (int)puVar8)" (( "(") (binary_expression "iVar9 - (int)puVar8" (identifier "iVar9") (- "-") (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8"))) () ")")) (+ "+") (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }" (else "else") (compound_statement "{\n      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);\n      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }\n    }" ({ "{") (expression_statement "puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);" (assignment_expression "puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40)" (identifier "puVar10") (= "=") (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x40)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x40)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x40)" (( "(") (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x40")) () ")"))))) (; ";")) (expression_statement "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);" (assignment_expression "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60)" (identifier "puVar7") (= "=") (cast_expression "(undefined1 *)((int)register0x00000010 + -0x60)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x60)" (( "(") (binary_expression "(int)register0x00000010 + -0x60" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x60")) () ")")))) (; ";")) (if_statement "if (*(int *)((int)register0x00000010 + -0x34) != 0) {\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }" (if "if") (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x34) != 0)" (( "(") (binary_expression "*(int *)((int)register0x00000010 + -0x34) != 0" (pointer_expression "*(int *)((int)register0x00000010 + -0x34)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x34)" (( "(") (binary_expression "(int)register0x00000010 + -0x34" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar9 = (int)puVar8 - (int)puVar4;\n        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;\n        if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }\n        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);\n        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);\n      }" ({ "{") (expression_statement "iVar9 = (int)puVar8 - (int)puVar4;" (assignment_expression "iVar9 = (int)puVar8 - (int)puVar4" (identifier "iVar9") (= "=") (binary_expression "(int)puVar8 - (int)puVar4" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (- "-") (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")))) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x30)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x30)" (( "(") (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (binary_expression "(int)puVar10 - iVar9" (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10")) (- "-") (identifier "iVar9"))) (; ";")) (if_statement "if (puVar4 == puVar8) {\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }\n        else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }" (if "if") (parenthesized_expression "(puVar4 == puVar8)" (( "(") (binary_expression "puVar4 == puVar8" (identifier "puVar4") (== "==") (identifier "puVar8")) () ")")) (compound_statement "{\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;\n        }" ({ "{") (if_statement "if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;" (if "if") (parenthesized_expression "(*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4)" (( "(") (binary_expression "*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x40)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x40)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x40)" (( "(") (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x40")) () ")")))) (!= "!=") (identifier "puVar4")) () ")")) (goto_statement "goto LAB_000c0476;" (goto "goto") (statement_identifier "LAB_000c0476") (; ";"))) (} "}")) (else_clause "else {\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }" (else "else") (compound_statement "{\n          *(int *)((int)register0x00000010 + -0x28) = iVar5;\n          *(int *)((int)register0x00000010 + -0x68) = iVar9;\n          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;\n          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;\n          memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));\n          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          iVar5 = *(int *)((int)register0x00000010 + -0x28);\n          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n          if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }\n        }" ({ "{") (expression_statement "*(int *)((int)register0x00000010 + -0x28) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x28) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x28)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x28)" (( "(") (binary_expression "(int)register0x00000010 + -0x28" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x68) = iVar9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x68) = iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x2c)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x2c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x2c)" (( "(") (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x74)" (( "(") (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x74")) () ")")))) (= "=") (number_literal "0xc0465")) (; ";")) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68))" (identifier "memmove") (argument_list "(*(void **)((int)register0x00000010 + -0x70),\n                  *(void **)((int)register0x00000010 + -0x6c),\n                  *(size_t *)((int)register0x00000010 + -0x68))" (( "(") (pointer_expression "*(void **)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (, ",") (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (, ",") (pointer_expression "*(size_t *)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(size_t *)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) () ")"))) (; ";")) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x2c)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x2c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x2c)" (( "(") (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x2c")) () ")"))))) (; ";")) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x28);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x28)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)((int)register0x00000010 + -0x28)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x28)" (( "(") (binary_expression "(int)register0x00000010 + -0x28" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x28")) () ")"))))) (; ";")) (if_statement "if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }" (if "if") (parenthesized_expression "(*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8)" (( "(") (binary_expression "*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x40)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x40)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x40)" (( "(") (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x40")) () ")")))) (!= "!=") (identifier "puVar8")) () ")")) (compound_statement "{\nLAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;\n            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }" ({ "{") (labeled_statement "LAB_000c0476:\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;" (statement_identifier "LAB_000c0476") (: ":") (expression_statement "*(int *)((int)register0x00000010 + -0x28) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x28) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x28)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x28)" (( "(") (binary_expression "(int)register0x00000010 + -0x28" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "iVar5")) (; ";"))) (expression_statement "*(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;" (assignment_expression "*(int *)((int)register0x00000010 + -0x68) =\n                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8" (pointer_expression "*(int *)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (binary_expression "*(int *)((int)register0x00000010 + -0x40) - (int)puVar8" (pointer_expression "*(int *)((int)register0x00000010 + -0x40)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x40)" (( "(") (binary_expression "(int)register0x00000010 + -0x40" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x40")) () ")")))) (- "-") (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")))) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (identifier "puVar8")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x70) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x2c)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x2c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x2c)" (( "(") (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x74)" (( "(") (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x74")) () ")")))) (= "=") (number_literal "0xc0493")) (; ";")) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" (identifier "memmove") (argument_list "(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" (( "(") (pointer_expression "*(void **)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (, ",") (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (, ",") (pointer_expression "*(size_t *)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(size_t *)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x28);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x28)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)((int)register0x00000010 + -0x28)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x28)" (( "(") (binary_expression "(int)register0x00000010 + -0x28" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x28")) () ")"))))) (; ";")) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x2c)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x2c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x2c)" (( "(") (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x2c")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (iVar9 != 0) {\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(int *)((int)register0x00000010 + -0x28) = iVar5;\n            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;\n            *(int *)((int)register0x00000010 + -0x68) = iVar9;\n            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;\n            *(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);\n            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;\n            memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));\n            iVar5 = *(int *)((int)register0x00000010 + -0x28);\n            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);\n          }" ({ "{") (expression_statement "*(int *)((int)register0x00000010 + -0x28) = iVar5;" (assignment_expression "*(int *)((int)register0x00000010 + -0x28) = iVar5" (pointer_expression "*(int *)((int)register0x00000010 + -0x28)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x28)" (( "(") (binary_expression "(int)register0x00000010 + -0x28" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x2c)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x2c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x2c)" (( "(") (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x68) = iVar9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x68) = iVar9" (pointer_expression "*(int *)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11" (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) =\n                 *(undefined4 *)((int)register0x00000010 + -0x30)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x30)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x30)" (( "(") (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x30")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x74)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x74)" (( "(") (binary_expression "(int)register0x00000010 + -0x74" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x74")) () ")")))) (= "=") (number_literal "0xc04bc")) (; ";")) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" (identifier "memmove") (argument_list "(*(void **)((int)register0x00000010 + -0x70),\n                    *(void **)((int)register0x00000010 + -0x6c),\n                    *(size_t *)((int)register0x00000010 + -0x68))" (( "(") (pointer_expression "*(void **)((int)register0x00000010 + -0x70)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x70)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x70)" (( "(") (binary_expression "(int)register0x00000010 + -0x70" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x70")) () ")")))) (, ",") (pointer_expression "*(void **)((int)register0x00000010 + -0x6c)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x6c)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x6c)" (( "(") (binary_expression "(int)register0x00000010 + -0x6c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x6c")) () ")")))) (, ",") (pointer_expression "*(size_t *)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(size_t *)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x68)" (( "(") (binary_expression "(int)register0x00000010 + -0x68" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x68")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar5 = *(int *)((int)register0x00000010 + -0x28);" (assignment_expression "iVar5 = *(int *)((int)register0x00000010 + -0x28)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)((int)register0x00000010 + -0x28)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x28)" (( "(") (binary_expression "(int)register0x00000010 + -0x28" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x28")) () ")"))))) (; ";")) (expression_statement "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);" (assignment_expression "puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x2c)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x2c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x2c)" (( "(") (binary_expression "(int)register0x00000010 + -0x2c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x2c")) () ")"))))) (; ";")) (} "}"))) (} "}")))) (expression_statement "puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);" (assignment_expression "puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30)" (identifier "puVar10") (= "=") (pointer_expression "*(undefined4 **)((int)register0x00000010 + -0x30)" (* "*") (cast_expression "(undefined4 **)((int)register0x00000010 + -0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x30)" (( "(") (binary_expression "(int)register0x00000010 + -0x30" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x30")) () ")"))))) (; ";")) (expression_statement "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);" (assignment_expression "puVar7 = (undefined1 *)((int)register0x00000010 + -0x60)" (identifier "puVar7") (= "=") (cast_expression "(undefined1 *)((int)register0x00000010 + -0x60)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x60)" (( "(") (binary_expression "(int)register0x00000010 + -0x60" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x60")) () ")")))) (; ";")) (} "}"))) (} "}")))))) (expression_statement "uVar2 = *(undefined4 *)(puVar7 + 0xc);" (assignment_expression "uVar2 = *(undefined4 *)(puVar7 + 0xc)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined4 *)(puVar7 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0xc)" (( "(") (binary_expression "puVar7 + 0xc" (identifier "puVar7") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -4) = uVar2;" (assignment_expression "*(undefined4 *)(puVar7 + -4) = uVar2" (pointer_expression "*(undefined4 *)(puVar7 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -4)" (( "(") (binary_expression "puVar7 + -4" (identifier "puVar7") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "*(int *)(puVar7 + -8) = iVar5;" (assignment_expression "*(int *)(puVar7 + -8) = iVar5" (pointer_expression "*(int *)(puVar7 + -8)" (* "*") (cast_expression "(int *)(puVar7 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -8)" (( "(") (binary_expression "puVar7 + -8" (identifier "puVar7") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int *)(puVar7 + 0xc) = iVar5;" (assignment_expression "*(int *)(puVar7 + 0xc) = iVar5" (pointer_expression "*(int *)(puVar7 + 0xc)" (* "*") (cast_expression "(int *)(puVar7 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0xc)" (( "(") (binary_expression "puVar7 + 0xc" (identifier "puVar7") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(undefined4 **)(puVar7 + -0xc) = puVar11;" (assignment_expression "*(undefined4 **)(puVar7 + -0xc) = puVar11" (pointer_expression "*(undefined4 **)(puVar7 + -0xc)" (* "*") (cast_expression "(undefined4 **)(puVar7 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -0xc)" (( "(") (binary_expression "puVar7 + -0xc" (identifier "puVar7") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "iVar5 = *(int *)(puVar7 + 0x28);" (assignment_expression "iVar5 = *(int *)(puVar7 + 0x28)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar7 + 0x28)" (* "*") (cast_expression "(int *)(puVar7 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x28)" (( "(") (binary_expression "puVar7 + 0x28" (identifier "puVar7") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar7 + -0x10) = iVar5;" (assignment_expression "*(int *)(puVar7 + -0x10) = iVar5" (pointer_expression "*(int *)(puVar7 + -0x10)" (* "*") (cast_expression "(int *)(puVar7 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x10)" (( "(") (binary_expression "puVar7 + -0x10" (identifier "puVar7") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24);" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24)" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x14)" (( "(") (binary_expression "puVar7 + -0x14" (identifier "puVar7") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar7 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x24)" (( "(") (binary_expression "puVar7 + 0x24" (identifier "puVar7") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 **)(puVar7 + -0x18) = puVar10;" (assignment_expression "*(undefined4 **)(puVar7 + -0x18) = puVar10" (pointer_expression "*(undefined4 **)(puVar7 + -0x18)" (* "*") (cast_expression "(undefined4 **)(puVar7 + -0x18)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -0x18)" (( "(") (binary_expression "puVar7 + -0x18" (identifier "puVar7") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "puVar10")) (; ";")) (expression_statement "*(undefined4 **)(puVar7 + -0x1c) = puVar4;" (assignment_expression "*(undefined4 **)(puVar7 + -0x1c) = puVar4" (pointer_expression "*(undefined4 **)(puVar7 + -0x1c)" (* "*") (cast_expression "(undefined4 **)(puVar7 + -0x1c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -0x1c)" (( "(") (binary_expression "puVar7 + -0x1c" (identifier "puVar7") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14);" (assignment_expression "*(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14)" (pointer_expression "*(undefined4 *)(puVar7 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x20)" (( "(") (binary_expression "puVar7 + -0x20" (identifier "puVar7") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar7 + 0x14)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x14)" (( "(") (binary_expression "puVar7 + 0x14" (identifier "puVar7") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x24) = 0xc032a;" (assignment_expression "*(undefined4 *)(puVar7 + -0x24) = 0xc032a" (pointer_expression "*(undefined4 *)(puVar7 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x24)" (( "(") (binary_expression "puVar7 + -0x24" (identifier "puVar7") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0xc032a")) (; ";")) (expression_statement "FUN_000c00a0();" (call_expression "FUN_000c00a0()" (identifier "FUN_000c00a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x7c) = uVar2;" (assignment_expression "*(undefined4 *)(puVar7 + 0x7c) = uVar2" (pointer_expression "*(undefined4 *)(puVar7 + 0x7c)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x7c)" (( "(") (binary_expression "puVar7 + 0x7c" (identifier "puVar7") (+ "+") (number_literal "0x7c")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "*(undefined4 **)(puVar7 + 0x74) = puVar11;" (assignment_expression "*(undefined4 **)(puVar7 + 0x74) = puVar11" (pointer_expression "*(undefined4 **)(puVar7 + 0x74)" (* "*") (cast_expression "(undefined4 **)(puVar7 + 0x74)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 0x74)" (( "(") (binary_expression "puVar7 + 0x74" (identifier "puVar7") (+ "+") (number_literal "0x74")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(undefined4 **)(puVar7 + 0x60) = puVar10;" (assignment_expression "*(undefined4 **)(puVar7 + 0x60) = puVar10" (pointer_expression "*(undefined4 **)(puVar7 + 0x60)" (* "*") (cast_expression "(undefined4 **)(puVar7 + 0x60)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 0x60)" (( "(") (binary_expression "puVar7 + 0x60" (identifier "puVar7") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (identifier "puVar10")) (; ";")) (expression_statement "*(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5;" (assignment_expression "*(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5" (pointer_expression "*(int *)(puVar7 + 0x70)" (* "*") (cast_expression "(int *)(puVar7 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x70)" (( "(") (binary_expression "puVar7 + 0x70" (identifier "puVar7") (+ "+") (number_literal "0x70")) () ")")))) (= "=") (binary_expression "*(int *)(puVar7 + 0x18) - iVar5" (pointer_expression "*(int *)(puVar7 + 0x18)" (* "*") (cast_expression "(int *)(puVar7 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x18)" (( "(") (binary_expression "puVar7 + 0x18" (identifier "puVar7") (+ "+") (number_literal "0x18")) () ")")))) (- "-") (identifier "iVar5"))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc);" (assignment_expression "*(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc)" (pointer_expression "*(undefined4 *)(puVar7 + 0x78)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x78)" (( "(") (binary_expression "puVar7 + 0x78" (identifier "puVar7") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar7 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0xc)" (( "(") (binary_expression "puVar7 + 0xc" (identifier "puVar7") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c);" (assignment_expression "*(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c)" (pointer_expression "*(undefined4 *)(puVar7 + 0x6c)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x6c)" (( "(") (binary_expression "puVar7 + 0x6c" (identifier "puVar7") (+ "+") (number_literal "0x6c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar7 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x2c)" (( "(") (binary_expression "puVar7 + 0x2c" (identifier "puVar7") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10);" (assignment_expression "*(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10)" (pointer_expression "*(undefined4 *)(puVar7 + 0x68)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x68)" (( "(") (binary_expression "puVar7 + 0x68" (identifier "puVar7") (+ "+") (number_literal "0x68")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar7 + 0x10)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x10)" (( "(") (binary_expression "puVar7 + 0x10" (identifier "puVar7") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20);" (assignment_expression "*(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20)" (pointer_expression "*(undefined4 *)(puVar7 + 100)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 100)" (( "(") (binary_expression "puVar7 + 100" (identifier "puVar7") (+ "+") (number_literal "100")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar7 + 0x20)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x20)" (( "(") (binary_expression "puVar7 + 0x20" (identifier "puVar7") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "unaff_EBX = *(undefined4 *)(puVar7 + 0x4c);" (assignment_expression "unaff_EBX = *(undefined4 *)(puVar7 + 0x4c)" (identifier "unaff_EBX") (= "=") (pointer_expression "*(undefined4 *)(puVar7 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x4c)" (( "(") (binary_expression "puVar7 + 0x4c" (identifier "puVar7") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "unaff_ESI = *(undefined4 *)(puVar7 + 0x50);" (assignment_expression "unaff_ESI = *(undefined4 *)(puVar7 + 0x50)" (identifier "unaff_ESI") (= "=") (pointer_expression "*(undefined4 *)(puVar7 + 0x50)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x50)" (( "(") (binary_expression "puVar7 + 0x50" (identifier "puVar7") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "unaff_EDI = *(undefined4 *)(puVar7 + 0x54);" (assignment_expression "unaff_EDI = *(undefined4 *)(puVar7 + 0x54)" (identifier "unaff_EDI") (= "=") (pointer_expression "*(undefined4 *)(puVar7 + 0x54)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x54)" (( "(") (binary_expression "puVar7 + 0x54" (identifier "puVar7") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "unaff_EBP = *(undefined4 *)(puVar7 + 0x58);" (assignment_expression "unaff_EBP = *(undefined4 *)(puVar7 + 0x58)" (identifier "unaff_EBP") (= "=") (pointer_expression "*(undefined4 *)(puVar7 + 0x58)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x58)" (( "(") (binary_expression "puVar7 + 0x58" (identifier "puVar7") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c);" (assignment_expression "register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c)" (identifier "register0x00000010") (= "=") (cast_expression "(BADSPACEBASE *)(puVar7 + 0x5c)" (( "(") (type_descriptor "BADSPACEBASE *" (type_identifier "BADSPACEBASE") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x5c)" (( "(") (binary_expression "puVar7 + 0x5c" (identifier "puVar7") (+ "+") (number_literal "0x5c")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original name: __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,
   std::vector<gold::Output_segment*> >, int, gold::Output_segment**,
   __gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments> > */

void std::
     __merge_adaptive<var_21::var_1<var_2::type_1**,var_3::vector<var_2::type_1*>var_4>,_int,var_22::type_1**,var_23::__ops::_Iter_comp_iter<var_2::type_2::var_6>var_4>
               (var_1<var_2::type_1**,var_3::vector<var_2::type_1*,var_3::allocator<var_2::type_1*>var_4>var_4>
                __first,var_1<var_2::type_1**,var_3::vector<var_2::type_1*,var_3::allocator<var_2::type_1*>var_4>var_4>
                        __middle,
               var_1<var_2::type_1**,var_3::vector<var_2::type_1*,var_3::allocator<var_2::type_1*>var_4>var_4>
               __last,int var_10,int var_9,type_1 **var_14,int var_8,
               _Iter_comp_iter<var_2::type_2::var_6> __comp)

{
  type_1 *pOVar1;
  bool bVar2;
  int var_11;
  var_1<var_2::type_1**,var_3::vector<var_2::type_1*,var_3::allocator<var_2::type_1*>var_4>var_4>
  var_5;
  _Iter_comp_val<var_2::Layout::var_6> var_7;
  size_t var_13;
  type_1 **var_15;
  type_1 **var_17;
  var_6 local_3c;
  int var_19;
  int var_25;
  type_2 *var_24 [8];
  type_1 **var_18;
  
  do {
    var_11 = var_9;
    if (var_8 < var_9) {
      var_11 = var_8;
    }
    if (var_10 <= var_11) {
      var_13 = (int)__middle._M_current - (int)__first._M_current;
      if (__middle._M_current != __first._M_current) {
        var_12(var_14,__first._M_current,var_13);
      }
      var_15 = (type_1 **)((int)var_14 + var_13);
      if (var_14 == var_15) {
        return;
      }
      if (__last._M_current != __middle._M_current) {
        do {
          bVar2 = var_2::Layout::var_16
                            ((type_2 *)__comp._M_comp.layout_,*__middle._M_current,*var_14);
          if (bVar2) {
            pOVar1 = *__middle._M_current;
            __middle._M_current = __middle._M_current + 1;
            *__first._M_current = pOVar1;
          }
          else {
            pOVar1 = *var_14;
            var_14 = var_14 + 1;
            *__first._M_current = pOVar1;
          }
          if (var_15 == var_14) {
            return;
          }
          __first._M_current = __first._M_current + 1;
        } while (__last._M_current != __middle._M_current);
        var_13 = (int)var_15 - (int)var_14;
      }
      var_12(__first._M_current,var_14,var_13);
      return;
    }
    if (var_9 <= var_8) {
      var_13 = (int)__last._M_current - (int)__middle._M_current;
      if (__last._M_current != __middle._M_current) {
        var_12(var_14,__middle._M_current,var_13);
      }
      var_15 = (type_1 **)((int)var_14 + var_13);
      if (__middle._M_current == __first._M_current) {
        if (var_14 != var_15) {
          var_12((void *)((int)__last._M_current - var_13),var_14,var_13);
        }
      }
      else if (var_14 != var_15) {
        var_17 = __middle._M_current + -1;
        do {
          var_18 = var_15 + -1;
          while( true ) {
            __last._M_current = __last._M_current + -1;
            bVar2 = var_2::Layout::var_16
                              ((type_2 *)__comp._M_comp.layout_,*var_18,*var_17);
            if (!bVar2) break;
            *__last._M_current = *var_17;
            if (var_17 == __first._M_current) {
              if (var_14 == var_15) {
                return;
              }
              var_12((void *)((int)__last._M_current - ((int)var_15 - (int)var_14)),var_14,
                      (int)var_15 - (int)var_14);
              return;
            }
            var_17 = var_17 + -1;
          }
          *__last._M_current = *var_18;
          var_15 = var_18;
        } while (var_14 != var_18);
      }
      return;
    }
    if (var_9 < var_10) {
      var_19 = var_10 / 2;
      var_7._M_comp.layout_ = (var_6)(__first._M_current + var_19);
      var_20<var_21::var_1<var_2::type_1**,var_3::vector<var_2::type_1*>var_4>,var_22::type_1*,var_23::__ops::_Iter_comp_val<var_2::type_2::var_6>var_4>
                ((var_1<var_2::type_1**,var_3::vector<var_2::type_1*,var_3::allocator<var_2::type_1*>var_4>var_4>
                  )var_24,__middle,__last._M_current,var_7);
      local_3c.layout_ = var_24[0];
      var_25 = (int)var_24[0] - (int)__middle._M_current >> 2;
    }
    else {
      var_25 = var_9 / 2;
      local_3c.layout_ = (type_2 *)(__middle._M_current + var_25);
      var_26<var_21::var_1<var_2::type_1**,var_3::vector<var_2::type_1*>var_4>,var_22::type_1*,var_23::__ops::_Val_comp_iter<var_2::type_2::var_6>var_4>
                ((var_1<var_2::type_1**,var_3::vector<var_2::type_1*,var_3::allocator<var_2::type_1*>var_4>var_4>
                  )var_24,__first,__middle._M_current,
                 (_Val_comp_iter<var_2::type_2::var_6>)local_3c.layout_);
      var_19 = (int)var_24[0] - (int)__first._M_current >> 2;
      var_7._M_comp.layout_ = (var_6)(var_6)var_24[0];
    }
    var_10 = var_10 - var_19;
    if ((var_25 < var_10) && (var_25 <= var_8)) {
      var_5._M_current = (type_1 **)var_7._M_comp.layout_;
      if (var_25 != 0) {
        var_13 = (int)local_3c.layout_ - (int)__middle._M_current;
        if (local_3c.layout_ == (type_2 *)__middle._M_current) {
          if (var_7._M_comp.layout_ != (var_6)local_3c.layout_) goto LAB_000c02b9;
          var_5._M_current = (type_1 **)(var_13 + (int)var_7._M_comp.layout_);
        }
        else {
          var_12(var_14,__middle._M_current,var_13);
          if (var_7._M_comp.layout_ != (var_6)__middle._M_current) {
LAB_000c02b9:
            var_12((void *)((int)local_3c.layout_ -
                            ((int)__middle._M_current - (int)var_7._M_comp.layout_)),
                    (void *)var_7._M_comp.layout_,
                    (int)__middle._M_current - (int)var_7._M_comp.layout_);
          }
          if (var_13 != 0) {
            var_12((void *)var_7._M_comp.layout_,var_14,var_13);
          }
          var_5._M_current = (type_1 **)(var_13 + (int)var_7._M_comp.layout_);
        }
      }
    }
    else if (var_8 < var_10) {
      _V2::
      __rotate<var_21::var_1<var_2::type_1**,var_3::vector<var_2::type_1*>var_4>var_4>
                (var_24,var_7._M_comp.layout_,__middle._M_current,local_3c.layout_,0);
      var_5._M_current =
           (type_1 **)
           (((int)local_3c.layout_ - (int)__middle._M_current) + (int)var_7._M_comp.layout_);
    }
    type_3 {
      var_5._M_current = (type_1 **)local_3c.layout_;
      if (var_10 != 0) {
        var_13 = (int)__middle._M_current - (int)var_7._M_comp.layout_;
        var_5._M_current = (type_1 **)((int)local_3c.layout_ - var_13);
        if (var_7._M_comp.layout_ == (var_6)__middle._M_current) {
          if ((var_6)local_3c.layout_ != var_7._M_comp.layout_) goto LAB_000c0476;
        }
        else {
          var_12(var_14,(void *)var_7._M_comp.layout_,var_13);
          if (local_3c.layout_ != (type_2 *)__middle._M_current) {
LAB_000c0476:
            var_12((void *)var_7._M_comp.layout_,__middle._M_current,
                    (int)local_3c.layout_ - (int)__middle._M_current);
          }
          if (var_13 != 0) {
            var_12(var_5._M_current,var_14,var_13);
          }
        }
      }
    }
    __merge_adaptive<var_21::var_1<var_2::type_1**,var_3::vector<var_2::type_1*>var_4>,_int,var_22::type_1**,var_23::__ops::_Iter_comp_iter<var_2::Layout::var_6>var_4>
              (__first,(var_1<var_2::type_1**,var_3::vector<var_2::type_1*,var_3::allocator<var_2::type_1*>var_4>var_4>
                        )var_7._M_comp.layout_,var_5,var_19,var_25,var_14,
               var_8,__comp);
    var_9 = var_9 - var_25;
    __middle._M_current = (type_1 **)local_3c.layout_;
    __first._M_current = var_5._M_current;
  } while( true );
}


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

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

void MASKED(void)

{
  int iVar1;
  undefined4 uVar2;
  char cVar3;
  undefined4 *puVar4;
  int iVar5;
  undefined4 unaff_EBX;
  undefined4 *puVar6;
  undefined1 *puVar7;
  undefined4 unaff_EBP;
  undefined4 *puVar8;
  int iVar9;
  undefined4 *puVar10;
  undefined4 unaff_ESI;
  undefined4 unaff_EDI;
  undefined4 *puVar11;
  
  do {
    *(undefined4 *)((int)register0x00000010 + -4) = 0xc00a5;
    iVar5 = *(int *)((int)register0x00000010 + -4);
    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;
    *(undefined4 *)((int)register0x00000010 + -8) = unaff_EDI;
    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;
    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;
    puVar4 = *(undefined4 **)((int)register0x00000010 + 4);
    *(int *)((int)register0x00000010 + -0x40) = iVar5 + 0x2e9f5b;
    iVar5 = *(int *)((int)register0x00000010 + 0x14);
    iVar9 = *(int *)((int)register0x00000010 + 0x10);
    puVar8 = *(undefined4 **)((int)register0x00000010 + 8);
    *(undefined4 *)((int)register0x00000010 + -0x4c) =
         *(undefined4 *)((int)register0x00000010 + 0xc);
    iVar1 = *(int *)((int)register0x00000010 + 0x1c);
    puVar11 = *(undefined4 **)((int)register0x00000010 + 0x18);
    *(int *)((int)register0x00000010 + -0x44) = iVar5;
    *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;
    *(undefined4 *)((int)register0x00000010 + -0x50) =
         *(undefined4 *)((int)register0x00000010 + 0x20);
    if (iVar1 < iVar5) {
      iVar5 = iVar1;
    }
    if (iVar9 <= iVar5) {
      iVar5 = (int)puVar8 - (int)puVar4;
      if (puVar8 != puVar4) {
        *(int *)((int)register0x00000010 + -100) = iVar5;
        *(int *)((int)register0x00000010 + -0x44) = iVar5;
        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar4;
        *(undefined4 **)((int)register0x00000010 + -0x48) = puVar4;
        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;
        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0113;
        memmove(*(void **)((int)register0x00000010 + -0x6c),
                *(void **)((int)register0x00000010 + -0x68),
                *(size_t *)((int)register0x00000010 + -100));
        iVar5 = *(int *)((int)register0x00000010 + -0x44);
        puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);
      }
      puVar10 = (undefined4 *)((int)puVar11 + iVar5);
      if (puVar11 == puVar10) {
        return;
      }
      if (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8) {
        do {
          *(undefined4 *)((int)register0x00000010 + -100) = *puVar11;
          *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar8;
          *(undefined4 *)((int)register0x00000010 + -0x6c) =
               *(undefined4 *)((int)register0x00000010 + -0x50);
          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0163;
          cVar3 = FUN_000aa8c0();
          if (cVar3 == '\0') {
            uVar2 = *puVar11;
            puVar11 = puVar11 + 1;
            *puVar4 = uVar2;
          }
          else {
            uVar2 = *puVar8;
            puVar8 = puVar8 + 1;
            *puVar4 = uVar2;
          }
          if (puVar10 == puVar11) {
            return;
          }
          puVar4 = puVar4 + 1;
        } while (*(undefined4 **)((int)register0x00000010 + -0x4c) != puVar8);
        iVar5 = (int)puVar10 - (int)puVar11;
      }
      *(int *)((int)register0x00000010 + -100) = iVar5;
      *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;
      *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;
      *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc039d;
      memmove(*(void **)((int)register0x00000010 + -0x6c),
              *(void **)((int)register0x00000010 + -0x68),
              *(size_t *)((int)register0x00000010 + -100));
      return;
    }
    if (*(int *)((int)register0x00000010 + -0x44) <= iVar1) {
      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x4c);
      iVar5 = (int)puVar4 - (int)puVar8;
      if (puVar4 != puVar8) {
        *(int *)((int)register0x00000010 + -100) = iVar5;
        *(int *)((int)register0x00000010 + -0x44) = iVar5;
        *(undefined4 **)((int)register0x00000010 + -0x68) = puVar8;
        *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;
        *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01af;
        memmove(*(void **)((int)register0x00000010 + -0x6c),
                *(void **)((int)register0x00000010 + -0x68),
                *(size_t *)((int)register0x00000010 + -100));
        iVar5 = *(int *)((int)register0x00000010 + -0x44);
      }
      puVar10 = (undefined4 *)((int)puVar11 + iVar5);
      if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {
        if (puVar11 != puVar10) {
          *(int *)((int)register0x00000010 + -100) = iVar5;
          *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;
          *(int *)((int)register0x00000010 + -0x6c) =
               *(int *)((int)register0x00000010 + -0x4c) - iVar5;
          *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc0535;
          memmove(*(void **)((int)register0x00000010 + -0x6c),
                  *(void **)((int)register0x00000010 + -0x68),
                  *(size_t *)((int)register0x00000010 + -100));
        }
      }
      else if (puVar11 != puVar10) {
        puVar8 = puVar8 + -1;
        do {
          puVar6 = puVar10 + -1;
          while( true ) {
            *(undefined4 *)((int)register0x00000010 + -100) = *puVar8;
            puVar4 = puVar4 + -1;
            *(undefined4 *)((int)register0x00000010 + -0x68) = *puVar6;
            *(undefined4 *)((int)register0x00000010 + -0x6c) =
                 *(undefined4 *)((int)register0x00000010 + -0x50);
            *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc01e6;
            cVar3 = FUN_000aa8c0();
            if (cVar3 == '\0') break;
            *puVar4 = *puVar8;
            if (puVar8 == *(undefined4 **)((int)register0x00000010 + -0x48)) {
              if (puVar11 == puVar10) {
                return;
              }
              *(int *)((int)register0x00000010 + -100) = (int)puVar10 - (int)puVar11;
              *(undefined4 **)((int)register0x00000010 + -0x68) = puVar11;
              *(int *)((int)register0x00000010 + -0x6c) =
                   (int)puVar4 - ((int)puVar10 - (int)puVar11);
              *(undefined4 *)((int)register0x00000010 + -0x70) = 0xc04ee;
              memmove(*(void **)((int)register0x00000010 + -0x6c),
                      *(void **)((int)register0x00000010 + -0x68),
                      *(size_t *)((int)register0x00000010 + -100));
              return;
            }
            puVar8 = puVar8 + -1;
          }
          *puVar4 = *puVar6;
          puVar10 = puVar6;
        } while (puVar11 != puVar6);
      }
      return;
    }
    if (*(int *)((int)register0x00000010 + -0x44) < iVar9) {
      *(int *)((int)register0x00000010 + -0x2c) = iVar1;
      *(int *)((int)register0x00000010 + -0x38) = iVar9 / 2;
      iVar5 = *(int *)((int)register0x00000010 + -0x48) + (iVar9 / 2) * 4;
      *(undefined4 *)((int)register0x00000010 + -0x6c) =
           *(undefined4 *)((int)register0x00000010 + -0x50);
      *(int *)((int)register0x00000010 + -0x70) = iVar5;
      *(int *)((int)register0x00000010 + -0x30) = iVar5;
      *(undefined4 *)((int)register0x00000010 + -0x74) =
           *(undefined4 *)((int)register0x00000010 + -0x4c);
      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;
      *(undefined1 **)((int)register0x00000010 + -0x7c) =
           (undefined1 *)((int)register0x00000010 + -0x20);
      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc03e3;
      FUN_000bfba0();
      *(int *)((int)register0x00000010 + -0x40) = *(int *)((int)register0x00000010 + -0x24);
      *(int *)((int)register0x00000010 + -0x38) =
           *(int *)((int)register0x00000010 + -0x24) - (int)puVar8 >> 2;
      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x34);
      iVar5 = *(int *)((int)register0x00000010 + -0x30);
    }
    else {
      *(int *)((int)register0x00000010 + -0x30) = iVar1;
      *(int *)((int)register0x00000010 + -0x34) = *(int *)((int)register0x00000010 + -0x44) / 2;
      *(undefined4 **)((int)register0x00000010 + -0x3c) =
           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;
      *(undefined4 *)((int)register0x00000010 + -0x6c) =
           *(undefined4 *)((int)register0x00000010 + -0x50);
      *(undefined4 **)((int)register0x00000010 + -0x70) =
           puVar8 + *(int *)((int)register0x00000010 + -0x44) / 2;
      *(undefined4 **)((int)register0x00000010 + -0x74) = puVar8;
      *(undefined4 *)((int)register0x00000010 + -0x78) =
           *(undefined4 *)((int)register0x00000010 + -0x48);
      *(undefined1 **)((int)register0x00000010 + -0x7c) =
           (undefined1 *)((int)register0x00000010 + -0x20);
      *(undefined4 *)((int)register0x00000010 + -0x80) = 0xc0245;
      FUN_000bfc10();
      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x24);
      *(int *)((int)register0x00000010 + -0x3c) =
           (int)puVar4 - *(int *)((int)register0x00000010 + -0x4c) >> 2;
      iVar5 = *(int *)((int)register0x00000010 + -0x34);
    }
    iVar1 = *(int *)((int)register0x00000010 + -0x38);
    *(int *)((int)register0x00000010 + -0x34) = iVar9 - *(int *)((int)register0x00000010 + -0x3c);
    if ((iVar1 < iVar9 - *(int *)((int)register0x00000010 + -0x3c)) && (iVar1 <= iVar5)) {
      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);
      puVar10 = puVar4;
      if (iVar1 != 0) {
        iVar9 = (int)*(undefined4 **)((int)register0x00000010 + -0x40) - (int)puVar8;
        if (*(undefined4 **)((int)register0x00000010 + -0x40) == puVar8) {
          if (puVar4 != *(undefined4 **)((int)register0x00000010 + -0x40)) goto LAB_000c02b9;
          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);
          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);
        }
        else {
          *(int *)((int)register0x00000010 + -0x2c) = iVar5;
          *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;
          *(int *)((int)register0x00000010 + -0x68) = iVar9;
          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;
          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;
          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02aa;
          memmove(*(void **)((int)register0x00000010 + -0x70),
                  *(void **)((int)register0x00000010 + -0x6c),
                  *(size_t *)((int)register0x00000010 + -0x68));
          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);
          iVar5 = *(int *)((int)register0x00000010 + -0x2c);
          if (puVar4 != puVar8) {
LAB_000c02b9:
            *(int *)((int)register0x00000010 + -0x2c) = iVar5;
            *(int *)((int)register0x00000010 + -0x68) = (int)puVar8 - (int)puVar4;
            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;
            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;
            *(int *)((int)register0x00000010 + -0x70) =
                 *(int *)((int)register0x00000010 + -0x40) - ((int)puVar8 - (int)puVar4);
            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02d8;
            memmove(*(void **)((int)register0x00000010 + -0x70),
                    *(void **)((int)register0x00000010 + -0x6c),
                    *(size_t *)((int)register0x00000010 + -0x68));
            iVar5 = *(int *)((int)register0x00000010 + -0x2c);
            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);
          }
          if (iVar9 != 0) {
            *(int *)((int)register0x00000010 + -0x2c) = iVar5;
            *(int *)((int)register0x00000010 + -0x68) = iVar9;
            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;
            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;
            *(undefined4 **)((int)register0x00000010 + -0x30) = puVar4;
            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc02fe;
            memmove(*(void **)((int)register0x00000010 + -0x70),
                    *(void **)((int)register0x00000010 + -0x6c),
                    *(size_t *)((int)register0x00000010 + -0x68));
            iVar5 = *(int *)((int)register0x00000010 + -0x2c);
            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x30);
          }
          puVar10 = (undefined4 *)(iVar9 + (int)puVar4);
          puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);
        }
      }
    }
    else if (iVar5 < *(int *)((int)register0x00000010 + -0x34)) {
      *(int *)((int)register0x00000010 + -0x30) = iVar5;
      *(undefined4 *)((int)register0x00000010 + -0x70) = 0;
      iVar9 = *(int *)((int)register0x00000010 + -0x40);
      *(int *)((int)register0x00000010 + -0x74) = iVar9;
      *(undefined4 **)((int)register0x00000010 + -0x78) = puVar8;
      *(undefined4 **)((int)register0x00000010 + -0x7c) = puVar4;
      *(undefined4 **)((int)register0x00000010 + -0x44) = puVar4;
      *(undefined1 **)((int)register0x00000010 + -0x80) =
           (undefined1 *)((int)register0x00000010 + -0x20);
      *(undefined4 *)((int)register0x00000010 + -0x84) = 0xc055e;
      FUN_000bfc80();
      puVar4 = *(undefined4 **)((int)register0x00000010 + -0x48);
      puVar7 = (undefined1 *)((int)register0x00000010 + -100);
      iVar5 = *(int *)((int)register0x00000010 + -0x34);
      puVar10 = (undefined4 *)((iVar9 - (int)puVar8) + (int)puVar4);
    }
    else {
      puVar10 = *(undefined4 **)((int)register0x00000010 + -0x40);
      puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);
      if (*(int *)((int)register0x00000010 + -0x34) != 0) {
        iVar9 = (int)puVar8 - (int)puVar4;
        *(int *)((int)register0x00000010 + -0x30) = (int)puVar10 - iVar9;
        if (puVar4 == puVar8) {
          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar4) goto LAB_000c0476;
        }
        else {
          *(int *)((int)register0x00000010 + -0x28) = iVar5;
          *(int *)((int)register0x00000010 + -0x68) = iVar9;
          *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar4;
          *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;
          *(undefined4 **)((int)register0x00000010 + -0x70) = puVar11;
          *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0465;
          memmove(*(void **)((int)register0x00000010 + -0x70),
                  *(void **)((int)register0x00000010 + -0x6c),
                  *(size_t *)((int)register0x00000010 + -0x68));
          puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);
          iVar5 = *(int *)((int)register0x00000010 + -0x28);
          if (*(undefined4 **)((int)register0x00000010 + -0x40) != puVar8) {
LAB_000c0476:
            *(int *)((int)register0x00000010 + -0x28) = iVar5;
            *(int *)((int)register0x00000010 + -0x68) =
                 *(int *)((int)register0x00000010 + -0x40) - (int)puVar8;
            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar8;
            *(undefined4 **)((int)register0x00000010 + -0x70) = puVar4;
            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;
            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc0493;
            memmove(*(void **)((int)register0x00000010 + -0x70),
                    *(void **)((int)register0x00000010 + -0x6c),
                    *(size_t *)((int)register0x00000010 + -0x68));
            iVar5 = *(int *)((int)register0x00000010 + -0x28);
            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);
          }
          if (iVar9 != 0) {
            *(int *)((int)register0x00000010 + -0x28) = iVar5;
            *(undefined4 **)((int)register0x00000010 + -0x2c) = puVar4;
            *(int *)((int)register0x00000010 + -0x68) = iVar9;
            *(undefined4 **)((int)register0x00000010 + -0x6c) = puVar11;
            *(undefined4 *)((int)register0x00000010 + -0x70) =
                 *(undefined4 *)((int)register0x00000010 + -0x30);
            *(undefined4 *)((int)register0x00000010 + -0x74) = 0xc04bc;
            memmove(*(void **)((int)register0x00000010 + -0x70),
                    *(void **)((int)register0x00000010 + -0x6c),
                    *(size_t *)((int)register0x00000010 + -0x68));
            iVar5 = *(int *)((int)register0x00000010 + -0x28);
            puVar4 = *(undefined4 **)((int)register0x00000010 + -0x2c);
          }
        }
        puVar10 = *(undefined4 **)((int)register0x00000010 + -0x30);
        puVar7 = (undefined1 *)((int)register0x00000010 + -0x60);
      }
    }
    uVar2 = *(undefined4 *)(puVar7 + 0xc);
    *(undefined4 *)(puVar7 + -4) = uVar2;
    *(int *)(puVar7 + -8) = iVar5;
    *(int *)(puVar7 + 0xc) = iVar5;
    *(undefined4 **)(puVar7 + -0xc) = puVar11;
    iVar5 = *(int *)(puVar7 + 0x28);
    *(int *)(puVar7 + -0x10) = iVar5;
    *(undefined4 *)(puVar7 + -0x14) = *(undefined4 *)(puVar7 + 0x24);
    *(undefined4 **)(puVar7 + -0x18) = puVar10;
    *(undefined4 **)(puVar7 + -0x1c) = puVar4;
    *(undefined4 *)(puVar7 + -0x20) = *(undefined4 *)(puVar7 + 0x14);
    *(undefined4 *)(puVar7 + -0x24) = 0xc032a;
    MASKED();
    *(undefined4 *)(puVar7 + 0x7c) = uVar2;
    *(undefined4 **)(puVar7 + 0x74) = puVar11;
    *(undefined4 **)(puVar7 + 0x60) = puVar10;
    *(int *)(puVar7 + 0x70) = *(int *)(puVar7 + 0x18) - iVar5;
    *(undefined4 *)(puVar7 + 0x78) = *(undefined4 *)(puVar7 + 0xc);
    *(undefined4 *)(puVar7 + 0x6c) = *(undefined4 *)(puVar7 + 0x2c);
    *(undefined4 *)(puVar7 + 0x68) = *(undefined4 *)(puVar7 + 0x10);
    *(undefined4 *)(puVar7 + 100) = *(undefined4 *)(puVar7 + 0x20);
    unaff_EBX = *(undefined4 *)(puVar7 + 0x4c);
    unaff_ESI = *(undefined4 *)(puVar7 + 0x50);
    unaff_EDI = *(undefined4 *)(puVar7 + 0x54);
    unaff_EBP = *(undefined4 *)(puVar7 + 0x58);
    register0x00000010 = (BADSPACEBASE *)(puVar7 + 0x5c);
  } while( true );
}

