
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* DWARF original name: __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,
   std::vector<gold::Output_section*> >, int, gold::Output_section**,
   __gnu_cxx::__ops::_Iter_comp_iter<(anonymous namespace)::Target_powerpc<32, true>::Sort_sections>
   > */

void std::
     __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_int,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>
               (void)

{
  byte bVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  undefined4 extraout_ECX;
  int *piVar5;
  int iVar6;
  int *piVar7;
  undefined4 unaff_EBX;
  undefined4 unaff_EBP;
  int *piVar8;
  undefined4 unaff_ESI;
  int unaff_EDI;
  undefined8 uVar9;
  
  while( true ) {
    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;
    *(int *)((int)register0x00000010 + -8) = unaff_EDI;
    *(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557;
    uVar9 = __x86_get_pc_thunk_di();
    piVar7 = (int *)((ulonglong)uVar9 >> 0x20);
    piVar4 = (int *)uVar9;
    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;
    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;
    iVar6 = *(int *)((int)register0x00000010 + 8);
    iVar2 = *(int *)((int)register0x00000010 + 0x10);
    *(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;
    piVar8 = *(int **)((int)register0x00000010 + 0xc);
    *(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;
    *(int **)((int)register0x00000010 + -0x40) = piVar4;
    *(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);
    iVar3 = iVar6;
    if (iVar2 < iVar6) {
      iVar3 = iVar2;
    }
    *(int *)((int)register0x00000010 + -0x38) = iVar6;
    *(undefined1 *)((int)register0x00000010 + -0x2d) =
         *(undefined1 *)((int)register0x00000010 + 0x14);
    if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {
      iVar6 = (int)piVar7 - (int)piVar4;
      piVar5 = piVar7;
      if (piVar7 != piVar4) {
        *(int **)((int)register0x00000010 + -0x3c) = piVar7;
        *(int *)((int)register0x00000010 + -0x54) = iVar6;
        *(int *)((int)register0x00000010 + -0x40) = iVar6;
        *(int **)((int)register0x00000010 + -0x58) = piVar4;
        *(int **)((int)register0x00000010 + -0x5c) = piVar8;
        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;
        memmove(*(void **)((int)register0x00000010 + -0x5c),
                *(void **)((int)register0x00000010 + -0x58),
                *(size_t *)((int)register0x00000010 + -0x54));
        piVar5 = *(int **)((int)register0x00000010 + -0x3c);
        iVar6 = *(int *)((int)register0x00000010 + -0x40);
      }
      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);
      if (piVar8 == (int *)((int)piVar8 + iVar6)) {
        return;
      }
      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;
      iVar6 = *piVar7;
      iVar2 = *piVar8;
      bVar1 = *(byte *)(iVar6 + 0x1c);
      goto joined_r0x000715ef;
    }
    if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;
    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {
      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;
      *(int *)((int)register0x00000010 + -0x34) = iVar6;
      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;
      *(int *)((int)register0x00000010 + -0x2c) = iVar6;
      *(undefined4 **)((int)register0x00000010 + -0x24) =
           (undefined4 *)((int)register0x00000010 + -0x20);
      *(int *)((int)register0x00000010 + -0x5c) = iVar6;
      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;
      __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>
                ();
      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);
      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;
    }
    else {
      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;
      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;
      *(undefined4 **)((int)register0x00000010 + -0x24) =
           (undefined4 *)((int)register0x00000010 + -0x20);
      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;
      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;
      __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>
                ();
      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);
      *(int *)((int)register0x00000010 + -0x34) =
           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>
           2;
    }
    iVar3 = *(int *)((int)register0x00000010 + -0x3c);
    *(int *)((int)register0x00000010 + -0x50) = iVar2;
    *(int **)((int)register0x00000010 + -0x54) = piVar8;
    *(int *)((int)register0x00000010 + -0x58) = iVar6;
    *(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);
    *(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);
    *(undefined4 *)((int)register0x00000010 + -0x60) =
         *(undefined4 *)((int)register0x00000010 + -0x28);
    *(int **)((int)register0x00000010 + -100) = piVar7;
    *(undefined4 *)((int)register0x00000010 + -0x68) =
         *(undefined4 *)((int)register0x00000010 + -0x2c);
    *(undefined4 *)((int)register0x00000010 + -0x6c) =
         *(undefined4 *)((int)register0x00000010 + -0x24);
    *(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;
    __rotate_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,_int>
              ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>
                )*(Output_section ***)((int)register0x00000010 + -0x6c),
               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>
                )*(Output_section ***)((int)register0x00000010 + -0x68),
               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>
                )*(Output_section ***)((int)register0x00000010 + -100),
               *(int *)((int)register0x00000010 + -0x60),*(int *)((int)register0x00000010 + -0x5c),
               *(Output_section ***)((int)register0x00000010 + -0x58),
               *(int *)((int)register0x00000010 + -0x54));
    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);
    *(int *)((int)register0x00000010 + -100) = iVar2;
    *(int **)((int)register0x00000010 + -0x68) = piVar8;
    *(int *)((int)register0x00000010 + -0x6c) = iVar6;
    *(undefined4 *)((int)register0x00000010 + -0x70) =
         *(undefined4 *)((int)register0x00000010 + -0x38);
    *(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;
    __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_int,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>
              ();
    *(int *)((int)register0x00000010 + 0xc) = iVar2;
    *(int **)((int)register0x00000010 + 8) = piVar8;
    *(undefined1 *)((int)register0x00000010 + 0x10) =
         *(undefined1 *)((int)register0x00000010 + -0x31);
    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;
    *(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);
    unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);
    unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);
    unaff_EDI = *(int *)((int)register0x00000010 + -0xc);
    unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);
    register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);
  }
  iVar6 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7;
  if (*(int **)((int)register0x00000010 + -0x44) != piVar7) {
    *(int *)((int)register0x00000010 + -0x54) = iVar6;
    *(int **)((int)register0x00000010 + -0x58) = piVar7;
    *(int **)((int)register0x00000010 + -0x5c) = piVar8;
    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;
    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),
            *(size_t *)((int)register0x00000010 + -0x54));
  }
  piVar4 = (int *)((int)piVar8 + iVar6);
  if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {
    if (piVar8 != piVar4) {
      *(int *)((int)register0x00000010 + -0x54) = iVar6;
      *(int **)((int)register0x00000010 + -0x58) = piVar8;
      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;
      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;
      memmove(*(void **)((int)register0x00000010 + -0x5c),
              *(void **)((int)register0x00000010 + -0x58),
              *(size_t *)((int)register0x00000010 + -0x54));
    }
  }
  else if (piVar8 != piVar4) {
    piVar7 = piVar7 + -1;
    piVar5 = *(int **)((int)register0x00000010 + -0x44);
    piVar4 = piVar4 + -1;
    *(int **)((int)register0x00000010 + -0x44) = piVar8;
    while( true ) {
      piVar5 = piVar5 + -1;
      iVar6 = *piVar4;
      iVar2 = *piVar7;
      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;
      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;
      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||
          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <
          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {
        *piVar5 = iVar2;
        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {
          piVar7 = *(int **)((int)register0x00000010 + -0x44);
          if (piVar7 != piVar4 + 1) {
            iVar6 = (int)(piVar4 + 1) - (int)piVar7;
            *(int *)((int)register0x00000010 + -0x54) = iVar6;
            *(int **)((int)register0x00000010 + -0x58) = piVar7;
            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;
            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;
            memmove(*(void **)((int)register0x00000010 + -0x5c),
                    *(void **)((int)register0x00000010 + -0x58),
                    *(size_t *)((int)register0x00000010 + -0x54));
            return;
          }
          return;
        }
        piVar7 = piVar7 + -1;
      }
      else {
        *piVar5 = iVar6;
        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {
          return;
        }
        piVar4 = piVar4 + -1;
      }
    }
LAB_000718a5:
    *(int *)((int)register0x00000010 + -0x54) =
         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;
    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;
    *(int *)((int)register0x00000010 + -0x5c) =
         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;
                    /* WARNING: Subroutine does not return */
    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;
    gold::do_gold_unreachable
              (*(char **)((int)register0x00000010 + -0x5c),*(int *)((int)register0x00000010 + -0x58)
               ,*(char **)((int)register0x00000010 + -0x54));
  }
  return;
joined_r0x000715ef:
  if ((bVar1 & 1) == 0) goto LAB_000718a5;
  if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_000718a5;
  if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||
      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <
      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {
    *piVar4 = iVar6;
    piVar5 = piVar5 + 1;
    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {
      return;
    }
  }
  else {
    piVar8 = piVar8 + 1;
    *piVar4 = iVar2;
    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {
      return;
    }
  }
  piVar4 = piVar4 + 1;
  if (*(int **)((int)register0x00000010 + -0x44) == piVar5) {
    iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;
LAB_000717de:
    *(int *)((int)register0x00000010 + -0x54) = iVar6;
    *(int **)((int)register0x00000010 + -0x58) = piVar8;
    *(int **)((int)register0x00000010 + -0x5c) = piVar4;
    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;
    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),
            *(size_t *)((int)register0x00000010 + -0x54));
    return;
  }
  iVar6 = *piVar5;
  iVar2 = *piVar8;
  bVar1 = *(byte *)(iVar6 + 0x1c);
  goto joined_r0x000715ef;
}



void FUN_00071550(void)

{
  byte bVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  undefined4 extraout_ECX;
  int *piVar5;
  int iVar6;
  int *piVar7;
  undefined4 unaff_EBX;
  undefined4 unaff_EBP;
  int *piVar8;
  undefined4 unaff_ESI;
  int unaff_EDI;
  undefined8 uVar9;
  
  while( true ) {
    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;
    *(int *)((int)register0x00000010 + -8) = unaff_EDI;
    *(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557;
    uVar9 = FUN_000b484e();
    piVar7 = (int *)((ulonglong)uVar9 >> 0x20);
    piVar4 = (int *)uVar9;
    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;
    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;
    iVar6 = *(int *)((int)register0x00000010 + 8);
    iVar2 = *(int *)((int)register0x00000010 + 0x10);
    *(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;
    piVar8 = *(int **)((int)register0x00000010 + 0xc);
    *(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;
    *(int **)((int)register0x00000010 + -0x40) = piVar4;
    *(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);
    iVar3 = iVar6;
    if (iVar2 < iVar6) {
      iVar3 = iVar2;
    }
    *(int *)((int)register0x00000010 + -0x38) = iVar6;
    *(undefined1 *)((int)register0x00000010 + -0x2d) =
         *(undefined1 *)((int)register0x00000010 + 0x14);
    if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {
      iVar6 = (int)piVar7 - (int)piVar4;
      piVar5 = piVar7;
      if (piVar7 != piVar4) {
        *(int **)((int)register0x00000010 + -0x3c) = piVar7;
        *(int *)((int)register0x00000010 + -0x54) = iVar6;
        *(int *)((int)register0x00000010 + -0x40) = iVar6;
        *(int **)((int)register0x00000010 + -0x58) = piVar4;
        *(int **)((int)register0x00000010 + -0x5c) = piVar8;
        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;
        memmove(*(void **)((int)register0x00000010 + -0x5c),
                *(void **)((int)register0x00000010 + -0x58),
                *(size_t *)((int)register0x00000010 + -0x54));
        piVar5 = *(int **)((int)register0x00000010 + -0x3c);
        iVar6 = *(int *)((int)register0x00000010 + -0x40);
      }
      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);
      if (piVar8 == (int *)((int)piVar8 + iVar6)) {
        return;
      }
      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;
      iVar6 = *piVar7;
      iVar2 = *piVar8;
      bVar1 = *(byte *)(iVar6 + 0x1c);
      goto joined_r0x000715ef;
    }
    if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;
    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {
      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;
      *(int *)((int)register0x00000010 + -0x34) = iVar6;
      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;
      *(int *)((int)register0x00000010 + -0x2c) = iVar6;
      *(undefined4 **)((int)register0x00000010 + -0x24) =
           (undefined4 *)((int)register0x00000010 + -0x20);
      *(int *)((int)register0x00000010 + -0x5c) = iVar6;
      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;
      FUN_0005cdd0();
      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);
      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;
    }
    else {
      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;
      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;
      *(undefined4 **)((int)register0x00000010 + -0x24) =
           (undefined4 *)((int)register0x00000010 + -0x20);
      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;
      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;
      FUN_0005cef0();
      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);
      *(int *)((int)register0x00000010 + -0x34) =
           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>
           2;
    }
    iVar3 = *(int *)((int)register0x00000010 + -0x3c);
    *(int *)((int)register0x00000010 + -0x50) = iVar2;
    *(int **)((int)register0x00000010 + -0x54) = piVar8;
    *(int *)((int)register0x00000010 + -0x58) = iVar6;
    *(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);
    *(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);
    *(undefined4 *)((int)register0x00000010 + -0x60) =
         *(undefined4 *)((int)register0x00000010 + -0x28);
    *(int **)((int)register0x00000010 + -100) = piVar7;
    *(undefined4 *)((int)register0x00000010 + -0x68) =
         *(undefined4 *)((int)register0x00000010 + -0x2c);
    *(undefined4 *)((int)register0x00000010 + -0x6c) =
         *(undefined4 *)((int)register0x00000010 + -0x24);
    *(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;
    FUN_000affe0();
    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);
    *(int *)((int)register0x00000010 + -100) = iVar2;
    *(int **)((int)register0x00000010 + -0x68) = piVar8;
    *(int *)((int)register0x00000010 + -0x6c) = iVar6;
    *(undefined4 *)((int)register0x00000010 + -0x70) =
         *(undefined4 *)((int)register0x00000010 + -0x38);
    *(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;
    FUN_00071550();
    *(int *)((int)register0x00000010 + 0xc) = iVar2;
    *(int **)((int)register0x00000010 + 8) = piVar8;
    *(undefined1 *)((int)register0x00000010 + 0x10) =
         *(undefined1 *)((int)register0x00000010 + -0x31);
    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;
    *(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);
    unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);
    unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);
    unaff_EDI = *(int *)((int)register0x00000010 + -0xc);
    unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);
    register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);
  }
  iVar6 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7;
  if (*(int **)((int)register0x00000010 + -0x44) != piVar7) {
    *(int *)((int)register0x00000010 + -0x54) = iVar6;
    *(int **)((int)register0x00000010 + -0x58) = piVar7;
    *(int **)((int)register0x00000010 + -0x5c) = piVar8;
    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;
    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),
            *(size_t *)((int)register0x00000010 + -0x54));
  }
  piVar4 = (int *)((int)piVar8 + iVar6);
  if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {
    if (piVar8 != piVar4) {
      *(int *)((int)register0x00000010 + -0x54) = iVar6;
      *(int **)((int)register0x00000010 + -0x58) = piVar8;
      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;
      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;
      memmove(*(void **)((int)register0x00000010 + -0x5c),
              *(void **)((int)register0x00000010 + -0x58),
              *(size_t *)((int)register0x00000010 + -0x54));
    }
  }
  else if (piVar8 != piVar4) {
    piVar7 = piVar7 + -1;
    piVar5 = *(int **)((int)register0x00000010 + -0x44);
    piVar4 = piVar4 + -1;
    *(int **)((int)register0x00000010 + -0x44) = piVar8;
    while( true ) {
      piVar5 = piVar5 + -1;
      iVar6 = *piVar4;
      iVar2 = *piVar7;
      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;
      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;
      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||
          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <
          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {
        *piVar5 = iVar2;
        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {
          piVar7 = *(int **)((int)register0x00000010 + -0x44);
          if (piVar7 != piVar4 + 1) {
            iVar6 = (int)(piVar4 + 1) - (int)piVar7;
            *(int *)((int)register0x00000010 + -0x54) = iVar6;
            *(int **)((int)register0x00000010 + -0x58) = piVar7;
            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;
            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;
            memmove(*(void **)((int)register0x00000010 + -0x5c),
                    *(void **)((int)register0x00000010 + -0x58),
                    *(size_t *)((int)register0x00000010 + -0x54));
            return;
          }
          return;
        }
        piVar7 = piVar7 + -1;
      }
      else {
        *piVar5 = iVar6;
        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {
          return;
        }
        piVar4 = piVar4 + -1;
      }
    }
LAB_000718a5:
    *(int *)((int)register0x00000010 + -0x54) =
         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;
    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;
    *(int *)((int)register0x00000010 + -0x5c) =
         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;
                    /* WARNING: Subroutine does not return */
    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;
    FUN_000da200();
  }
  return;
joined_r0x000715ef:
  if ((bVar1 & 1) == 0) goto LAB_000718a5;
  if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_000718a5;
  if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||
      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <
      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {
    *piVar4 = iVar6;
    piVar5 = piVar5 + 1;
    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {
      return;
    }
  }
  else {
    piVar8 = piVar8 + 1;
    *piVar4 = iVar2;
    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {
      return;
    }
  }
  piVar4 = piVar4 + 1;
  if (*(int **)((int)register0x00000010 + -0x44) == piVar5) {
    iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;
LAB_000717de:
    *(int *)((int)register0x00000010 + -0x54) = iVar6;
    *(int **)((int)register0x00000010 + -0x58) = piVar8;
    *(int **)((int)register0x00000010 + -0x5c) = piVar4;
    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;
    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),
            *(size_t *)((int)register0x00000010 + -0x54));
    return;
  }
  iVar6 = *piVar5;
  iVar2 = *piVar8;
  bVar1 = *(byte *)(iVar6 + 0x1c);
  goto joined_r0x000715ef;
}


PUSH EBP
PUSH EDI
CALL 0x000b484e
ADD EDI,0x3a2aa9
PUSH ESI
MOV ESI,EDX
PUSH EBX
SUB ESP,0x3c
MOV EDX,dword ptr [ESP + 0x54]
MOV EBX,dword ptr [ESP + 0x5c]
MOV dword ptr [ESP + 0x8],ECX
MOV ECX,dword ptr [ESP + 0x50]
MOV EBP,dword ptr [ESP + 0x58]
MOV dword ptr [ESP + 0x18],EDI
MOV EDI,EAX
MOV dword ptr [ESP + 0xc],EAX
CMP EDX,EBX
MOV EAX,EDX
MOV dword ptr [ESP + 0x10],ECX
MOVZX ECX,byte ptr [ESP + 0x60]
CMOVG EAX,EBX
MOV dword ptr [ESP + 0x14],EDX
MOV byte ptr [ESP + 0x1f],CL
CMP dword ptr [ESP + 0x10],EAX
JG 0x00071660
MOV EDX,ESI
MOV ECX,ESI
SUB EDX,EDI
CMP ESI,EDI
JZ 0x000715d0
MOV dword ptr [ESP + 0x10],ESI
SUB ESP,0x4
PUSH EDX
MOV dword ptr [ESP + 0x14],EDX
PUSH EDI
PUSH EBP
MOV EBX,dword ptr [ESP + 0x28]
CALL 0x0002ca40
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ESP + 0xc]
LEA EAX,[EBP + EDX*0x1]
MOV dword ptr [ESP + 0xc],EAX
CMP EBP,EAX
JZ 0x00071650
CMP dword ptr [ESP + 0x8],ESI
JZ 0x000717de
MOV EAX,dword ptr [ESI]
MOV EDX,dword ptr [EBP]
TEST byte ptr [EAX + 0x1c],0x1
JNZ 0x00071627
JMP 0x000718a5
MOV dword ptr [EDI],EAX
ADD ECX,0x4
ADD EDI,0x4
CMP dword ptr [ESP + 0xc],EBP
JZ 0x00071650
CMP dword ptr [ESP + 0x8],ECX
JZ 0x000717d8
MOV EAX,dword ptr [ECX]
MOV EDX,dword ptr [EBP]
TEST byte ptr [EAX + 0x1c],0x1
JZ 0x000718a5
MOV EBX,dword ptr [EAX + 0x4]
MOV ESI,dword ptr [EAX + 0x8]
TEST byte ptr [EDX + 0x1c],0x1
JZ 0x000718a5
CMP EBX,dword ptr [EDX + 0x4]
SBB ESI,dword ptr [EDX + 0x8]
JC 0x00071600
MOV EAX,EDX
ADD EBP,0x4
ADD EDI,0x4
MOV dword ptr [EDI + -0x4],EAX
CMP dword ptr [ESP + 0xc],EBP
JNZ 0x0007160e
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP dword ptr [ESP + 0x14],EBX
JG 0x00071700
MOV EAX,dword ptr [ESP + 0x8]
MOV EDI,EAX
SUB EDI,ESI
CMP EAX,ESI
JZ 0x00071688
SUB ESP,0x4
PUSH EDI
PUSH ESI
PUSH EBP
MOV EBX,dword ptr [ESP + 0x28]
CALL 0x0002ca40
ADD ESP,0x10
LEA EAX,[EBP + EDI*0x1]
CMP ESI,dword ptr [ESP + 0xc]
JZ 0x00071880
CMP EBP,EAX
JZ 0x00071650
LEA EDX,[ESI + -0x4]
MOV ESI,dword ptr [ESP + 0x8]
SUB EAX,0x4
MOV dword ptr [ESP + 0x8],EBP
SUB ESI,0x4
JMP 0x000716c2
MOV dword ptr [ESI],EBX
CMP EDX,dword ptr [ESP + 0xc]
JZ 0x00071850
SUB EDX,0x4
SUB ESI,0x4
MOV ECX,dword ptr [EAX]
MOV EBX,dword ptr [EDX]
TEST byte ptr [ECX + 0x1c],0x1
JZ 0x000718a5
MOV EBP,dword ptr [ECX + 0x4]
MOV EDI,dword ptr [ECX + 0x8]
TEST byte ptr [EBX + 0x1c],0x1
JZ 0x000718a5
CMP EBP,dword ptr [EBX + 0x4]
SBB EDI,dword ptr [EBX + 0x8]
JC 0x000716b0
MOV dword ptr [ESI],ECX
CMP dword ptr [ESP + 0x8],EAX
JZ 0x00071650
SUB EAX,0x4
JMP 0x000716bf
MOV ECX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [ESP + 0x14]
CMP ECX,EAX
JG 0x00071800
MOV EDI,dword ptr [ESP + 0x14]
MOV EAX,EDI
SHR EAX,0x1f
ADD EAX,EDI
SAR EAX,0x1
LEA ECX,[ESI + EAX*0x4]
MOV EDI,EAX
LEA EAX,[ESP + 0x2c]
SUB ESP,0xc
MOV dword ptr [ESP + 0x30],ECX
MOV dword ptr [ESP + 0x34],EAX
PUSH ECX
MOV EDX,dword ptr [ESP + 0x1c]
MOV ECX,ESI
CALL 0x0005cef0
MOV EAX,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x30],EAX
SUB EAX,dword ptr [ESP + 0x1c]
SAR EAX,0x2
MOV dword ptr [ESP + 0x28],EAX
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x10]
SUB EAX,dword ptr [ESP + 0x18]
PUSH EBX
PUSH EBP
PUSH EDI
MOV dword ptr [ESP + 0x1c],EAX
PUSH EAX
PUSH dword ptr [ESP + 0x34]
PUSH ESI
PUSH dword ptr [ESP + 0x38]
PUSH dword ptr [ESP + 0x44]
CALL 0x000affe0
MOV ESI,dword ptr [ESP + 0x48]
ADD ESP,0x10
MOVZX ECX,byte ptr [ESP + 0x2b]
PUSH ECX
MOV ECX,ESI
PUSH EBX
PUSH EBP
PUSH EDI
PUSH dword ptr [ESP + 0x34]
MOV EDX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [ESP + 0x2c]
CALL 0x00071550
MOVZX EAX,byte ptr [ESP + 0x3f]
MOV dword ptr [ESP + 0x7c],EBX
MOV EBX,dword ptr [ESP + 0x34]
MOV ECX,dword ptr [ESP + 0x28]
MOV dword ptr [ESP + 0x78],EBP
MOV byte ptr [ESP + 0x80],AL
MOV EAX,dword ptr [ESP + 0x30]
SUB EBX,EDI
MOV EDX,dword ptr [ESP + 0x44]
MOV dword ptr [ESP + 0x74],EBX
MOV dword ptr [ESP + 0x70],EAX
ADD ESP,0x5c
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
JMP 0x00071550
MOV EDX,dword ptr [ESP + 0xc]
SUB EDX,EBP
SUB ESP,0x4
PUSH EDX
PUSH EBP
PUSH EDI
MOV EBX,dword ptr [ESP + 0x28]
CALL 0x0002ca40
ADD ESP,0x10
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,ECX
MOV EDI,dword ptr [ESP + 0xc]
MOV EDX,ESI
SHR EAX,0x1f
ADD EAX,ECX
SAR EAX,0x1
MOV dword ptr [ESP + 0x18],EAX
LEA EDI,[EDI + EAX*0x4]
LEA EAX,[ESP + 0x2c]
SUB ESP,0xc
MOV dword ptr [ESP + 0x2c],EDI
MOV dword ptr [ESP + 0x34],EAX
PUSH EDI
MOV ECX,dword ptr [ESP + 0x18]
CALL 0x0005cdd0
MOV EAX,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x34],EAX
SUB EAX,ESI
ADD ESP,0x10
SAR EAX,0x2
MOV EDI,EAX
JMP 0x00071753
MOV EBP,dword ptr [ESP + 0x8]
ADD EAX,0x4
CMP EBP,EAX
JZ 0x00071650
SUB EAX,EBP
SUB ESP,0x4
SUB ESI,EAX
PUSH EAX
PUSH EBP
PUSH ESI
MOV EBX,dword ptr [ESP + 0x28]
CALL 0x0002ca40
ADD ESP,0x10
JMP 0x00071650
CMP EBP,EAX
JZ 0x00071650
SUB ESP,0x4
PUSH EDI
PUSH EBP
MOV ESI,dword ptr [ESP + 0x14]
SUB ESI,EDI
PUSH ESI
MOV EBX,dword ptr [ESP + 0x28]
CALL 0x0002ca40
ADD ESP,0x10
JMP 0x00071650
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x1c]
LEA EAX,[EBX + 0xffee22f4]
PUSH EAX
LEA EAX,[EBX + 0xffee2e5c]
PUSH 0xc5
PUSH EAX
CALL 0x000da200
(translation_unit "void FUN_00071550(void)\n\n{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 extraout_ECX;\n  int *piVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 unaff_EBX;\n  undefined4 unaff_EBP;\n  int *piVar8;\n  undefined4 unaff_ESI;\n  int unaff_EDI;\n  undefined8 uVar9;\n  \n  while( true ) {\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(int *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557;\n    uVar9 = FUN_000b484e();\n    piVar7 = (int *)((ulonglong)uVar9 >> 0x20);\n    piVar4 = (int *)uVar9;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    iVar6 = *(int *)((int)register0x00000010 + 8);\n    iVar2 = *(int *)((int)register0x00000010 + 0x10);\n    *(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;\n    piVar8 = *(int **)((int)register0x00000010 + 0xc);\n    *(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;\n    *(int **)((int)register0x00000010 + -0x40) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);\n    iVar3 = iVar6;\n    if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }\n    *(int *)((int)register0x00000010 + -0x38) = iVar6;\n    *(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);\n    if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }\n    if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;\n    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      FUN_0005cdd0();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }\n    iVar3 = *(int *)((int)register0x00000010 + -0x3c);\n    *(int *)((int)register0x00000010 + -0x50) = iVar2;\n    *(int **)((int)register0x00000010 + -0x54) = piVar8;\n    *(int *)((int)register0x00000010 + -0x58) = iVar6;\n    *(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);\n    *(int **)((int)register0x00000010 + -100) = piVar7;\n    *(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);\n    *(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);\n    *(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;\n    FUN_000affe0();\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2;\n    *(int **)((int)register0x00000010 + -0x68) = piVar8;\n    *(int *)((int)register0x00000010 + -0x6c) = iVar6;\n    *(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);\n    *(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;\n    FUN_00071550();\n    *(int *)((int)register0x00000010 + 0xc) = iVar2;\n    *(int **)((int)register0x00000010 + 8) = piVar8;\n    *(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;\n    *(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);\n    unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);\n    unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);\n    unaff_EDI = *(int *)((int)register0x00000010 + -0xc);\n    unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);\n    register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);\n  }\n  iVar6 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7;\n  if (*(int **)((int)register0x00000010 + -0x44) != piVar7) {\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar7;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n  }\n  piVar4 = (int *)((int)piVar8 + iVar6);\n  if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n    if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }\n  }\n  else if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    /* WARNING: Subroutine does not return */\n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    FUN_000da200();\n  }\n  return;\njoined_r0x000715ef:\n  if ((bVar1 & 1) == 0) goto LAB_000718a5;\n  if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_000718a5;\n  if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n    *piVar4 = iVar6;\n    piVar5 = piVar5 + 1;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  else {\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  piVar4 = piVar4 + 1;\n  if (*(int **)((int)register0x00000010 + -0x44) == piVar5) {\n    iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;\nLAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar8;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n    return;\n  }\n  iVar6 = *piVar5;\n  iVar2 = *piVar8;\n  bVar1 = *(byte *)(iVar6 + 0x1c);\n  goto joined_r0x000715ef;\n}\n\n" (function_definition "void FUN_00071550(void)\n\n{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 extraout_ECX;\n  int *piVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 unaff_EBX;\n  undefined4 unaff_EBP;\n  int *piVar8;\n  undefined4 unaff_ESI;\n  int unaff_EDI;\n  undefined8 uVar9;\n  \n  while( true ) {\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(int *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557;\n    uVar9 = FUN_000b484e();\n    piVar7 = (int *)((ulonglong)uVar9 >> 0x20);\n    piVar4 = (int *)uVar9;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    iVar6 = *(int *)((int)register0x00000010 + 8);\n    iVar2 = *(int *)((int)register0x00000010 + 0x10);\n    *(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;\n    piVar8 = *(int **)((int)register0x00000010 + 0xc);\n    *(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;\n    *(int **)((int)register0x00000010 + -0x40) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);\n    iVar3 = iVar6;\n    if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }\n    *(int *)((int)register0x00000010 + -0x38) = iVar6;\n    *(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);\n    if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }\n    if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;\n    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      FUN_0005cdd0();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }\n    iVar3 = *(int *)((int)register0x00000010 + -0x3c);\n    *(int *)((int)register0x00000010 + -0x50) = iVar2;\n    *(int **)((int)register0x00000010 + -0x54) = piVar8;\n    *(int *)((int)register0x00000010 + -0x58) = iVar6;\n    *(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);\n    *(int **)((int)register0x00000010 + -100) = piVar7;\n    *(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);\n    *(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);\n    *(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;\n    FUN_000affe0();\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2;\n    *(int **)((int)register0x00000010 + -0x68) = piVar8;\n    *(int *)((int)register0x00000010 + -0x6c) = iVar6;\n    *(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);\n    *(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;\n    FUN_00071550();\n    *(int *)((int)register0x00000010 + 0xc) = iVar2;\n    *(int **)((int)register0x00000010 + 8) = piVar8;\n    *(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;\n    *(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);\n    unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);\n    unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);\n    unaff_EDI = *(int *)((int)register0x00000010 + -0xc);\n    unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);\n    register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);\n  }\n  iVar6 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7;\n  if (*(int **)((int)register0x00000010 + -0x44) != piVar7) {\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar7;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n  }\n  piVar4 = (int *)((int)piVar8 + iVar6);\n  if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n    if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }\n  }\n  else if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    /* WARNING: Subroutine does not return */\n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    FUN_000da200();\n  }\n  return;\njoined_r0x000715ef:\n  if ((bVar1 & 1) == 0) goto LAB_000718a5;\n  if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_000718a5;\n  if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n    *piVar4 = iVar6;\n    piVar5 = piVar5 + 1;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  else {\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  piVar4 = piVar4 + 1;\n  if (*(int **)((int)register0x00000010 + -0x44) == piVar5) {\n    iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;\nLAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar8;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n    return;\n  }\n  iVar6 = *piVar5;\n  iVar2 = *piVar8;\n  bVar1 = *(byte *)(iVar6 + 0x1c);\n  goto joined_r0x000715ef;\n}" primitive_type (function_declarator "FUN_00071550(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 extraout_ECX;\n  int *piVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 unaff_EBX;\n  undefined4 unaff_EBP;\n  int *piVar8;\n  undefined4 unaff_ESI;\n  int unaff_EDI;\n  undefined8 uVar9;\n  \n  while( true ) {\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(int *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557;\n    uVar9 = FUN_000b484e();\n    piVar7 = (int *)((ulonglong)uVar9 >> 0x20);\n    piVar4 = (int *)uVar9;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    iVar6 = *(int *)((int)register0x00000010 + 8);\n    iVar2 = *(int *)((int)register0x00000010 + 0x10);\n    *(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;\n    piVar8 = *(int **)((int)register0x00000010 + 0xc);\n    *(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;\n    *(int **)((int)register0x00000010 + -0x40) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);\n    iVar3 = iVar6;\n    if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }\n    *(int *)((int)register0x00000010 + -0x38) = iVar6;\n    *(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);\n    if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }\n    if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;\n    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      FUN_0005cdd0();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }\n    iVar3 = *(int *)((int)register0x00000010 + -0x3c);\n    *(int *)((int)register0x00000010 + -0x50) = iVar2;\n    *(int **)((int)register0x00000010 + -0x54) = piVar8;\n    *(int *)((int)register0x00000010 + -0x58) = iVar6;\n    *(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);\n    *(int **)((int)register0x00000010 + -100) = piVar7;\n    *(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);\n    *(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);\n    *(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;\n    FUN_000affe0();\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2;\n    *(int **)((int)register0x00000010 + -0x68) = piVar8;\n    *(int *)((int)register0x00000010 + -0x6c) = iVar6;\n    *(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);\n    *(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;\n    FUN_00071550();\n    *(int *)((int)register0x00000010 + 0xc) = iVar2;\n    *(int **)((int)register0x00000010 + 8) = piVar8;\n    *(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;\n    *(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);\n    unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);\n    unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);\n    unaff_EDI = *(int *)((int)register0x00000010 + -0xc);\n    unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);\n    register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);\n  }\n  iVar6 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7;\n  if (*(int **)((int)register0x00000010 + -0x44) != piVar7) {\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar7;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n  }\n  piVar4 = (int *)((int)piVar8 + iVar6);\n  if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n    if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }\n  }\n  else if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    /* WARNING: Subroutine does not return */\n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    FUN_000da200();\n  }\n  return;\njoined_r0x000715ef:\n  if ((bVar1 & 1) == 0) goto LAB_000718a5;\n  if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_000718a5;\n  if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n    *piVar4 = iVar6;\n    piVar5 = piVar5 + 1;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  else {\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  piVar4 = piVar4 + 1;\n  if (*(int **)((int)register0x00000010 + -0x44) == piVar5) {\n    iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;\nLAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar8;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n    return;\n  }\n  iVar6 = *piVar5;\n  iVar2 = *piVar8;\n  bVar1 = *(byte *)(iVar6 + 0x1c);\n  goto joined_r0x000715ef;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 unaff_EBX;" type_identifier identifier ;) (declaration "undefined4 unaff_EBP;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined4 unaff_ESI;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (while_statement "while( true ) {\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(int *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557;\n    uVar9 = FUN_000b484e();\n    piVar7 = (int *)((ulonglong)uVar9 >> 0x20);\n    piVar4 = (int *)uVar9;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    iVar6 = *(int *)((int)register0x00000010 + 8);\n    iVar2 = *(int *)((int)register0x00000010 + 0x10);\n    *(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;\n    piVar8 = *(int **)((int)register0x00000010 + 0xc);\n    *(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;\n    *(int **)((int)register0x00000010 + -0x40) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);\n    iVar3 = iVar6;\n    if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }\n    *(int *)((int)register0x00000010 + -0x38) = iVar6;\n    *(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);\n    if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }\n    if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;\n    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      FUN_0005cdd0();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }\n    iVar3 = *(int *)((int)register0x00000010 + -0x3c);\n    *(int *)((int)register0x00000010 + -0x50) = iVar2;\n    *(int **)((int)register0x00000010 + -0x54) = piVar8;\n    *(int *)((int)register0x00000010 + -0x58) = iVar6;\n    *(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);\n    *(int **)((int)register0x00000010 + -100) = piVar7;\n    *(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);\n    *(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);\n    *(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;\n    FUN_000affe0();\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2;\n    *(int **)((int)register0x00000010 + -0x68) = piVar8;\n    *(int *)((int)register0x00000010 + -0x6c) = iVar6;\n    *(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);\n    *(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;\n    FUN_00071550();\n    *(int *)((int)register0x00000010 + 0xc) = iVar2;\n    *(int **)((int)register0x00000010 + 8) = piVar8;\n    *(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;\n    *(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);\n    unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);\n    unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);\n    unaff_EDI = *(int *)((int)register0x00000010 + -0xc);\n    unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);\n    register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(int *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557;\n    uVar9 = FUN_000b484e();\n    piVar7 = (int *)((ulonglong)uVar9 >> 0x20);\n    piVar4 = (int *)uVar9;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    iVar6 = *(int *)((int)register0x00000010 + 8);\n    iVar2 = *(int *)((int)register0x00000010 + 0x10);\n    *(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;\n    piVar8 = *(int **)((int)register0x00000010 + 0xc);\n    *(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;\n    *(int **)((int)register0x00000010 + -0x40) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);\n    iVar3 = iVar6;\n    if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }\n    *(int *)((int)register0x00000010 + -0x38) = iVar6;\n    *(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);\n    if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }\n    if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;\n    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      FUN_0005cdd0();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }\n    iVar3 = *(int *)((int)register0x00000010 + -0x3c);\n    *(int *)((int)register0x00000010 + -0x50) = iVar2;\n    *(int **)((int)register0x00000010 + -0x54) = piVar8;\n    *(int *)((int)register0x00000010 + -0x58) = iVar6;\n    *(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);\n    *(int **)((int)register0x00000010 + -100) = piVar7;\n    *(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);\n    *(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);\n    *(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;\n    FUN_000affe0();\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2;\n    *(int **)((int)register0x00000010 + -0x68) = piVar8;\n    *(int *)((int)register0x00000010 + -0x6c) = iVar6;\n    *(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);\n    *(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;\n    FUN_00071550();\n    *(int *)((int)register0x00000010 + 0xc) = iVar2;\n    *(int **)((int)register0x00000010 + 8) = piVar8;\n    *(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;\n    *(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);\n    unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);\n    unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);\n    unaff_EDI = *(int *)((int)register0x00000010 + -0xc);\n    unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);\n    register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);\n  }" { (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 "*(int *)((int)register0x00000010 + -8) = unaff_EDI;" (assignment_expression "*(int *)((int)register0x00000010 + -8) = unaff_EDI" (pointer_expression "*(int *)((int)register0x00000010 + -8)" * (cast_expression "(int *)((int)register0x00000010 + -8)" ( (type_descriptor "int *" primitive_type (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) = 0x71557;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557" (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) )))) = number_literal) ;) (expression_statement "uVar9 = FUN_000b484e();" (assignment_expression "uVar9 = FUN_000b484e()" identifier = (call_expression "FUN_000b484e()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar7 = (int *)((ulonglong)uVar9 >> 0x20);" (assignment_expression "piVar7 = (int *)((ulonglong)uVar9 >> 0x20)" identifier = (cast_expression "(int *)((ulonglong)uVar9 >> 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar9 >> 0x20)" ( (binary_expression "(ulonglong)uVar9 >> 0x20" (cast_expression "(ulonglong)uVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "piVar4 = (int *)uVar9;" (assignment_expression "piVar4 = (int *)uVar9" identifier = (cast_expression "(int *)uVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) 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 "iVar6 = *(int *)((int)register0x00000010 + 8);" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + 8)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + 8)" * (cast_expression "(int *)((int)register0x00000010 + 8)" ( (type_descriptor "int *" primitive_type (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 "iVar2 = *(int *)((int)register0x00000010 + 0x10);" (assignment_expression "iVar2 = *(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 "*(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x44)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (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 "piVar8 = *(int **)((int)register0x00000010 + 0xc);" (assignment_expression "piVar8 = *(int **)((int)register0x00000010 + 0xc)" identifier = (pointer_expression "*(int **)((int)register0x00000010 + 0xc)" * (cast_expression "(int **)((int)register0x00000010 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (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 "*(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9" (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 "unaff_EDI + 0x3a2aa9" identifier + number_literal)) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x40) = piVar4;" (assignment_expression "*(int **)((int)register0x00000010 + -0x40) = piVar4" (pointer_expression "*(int **)((int)register0x00000010 + -0x40)" * (cast_expression "(int **)((int)register0x00000010 + -0x40)" ( (type_descriptor "int **" primitive_type (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) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x3c)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (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) )))) = (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) ))))) ;) (expression_statement "iVar3 = iVar6;" (assignment_expression "iVar3 = iVar6" identifier = identifier) ;) (if_statement "if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }" if (parenthesized_expression "(iVar2 < iVar6)" ( (binary_expression "iVar2 < iVar6" identifier < identifier) )) (compound_statement "{\n      iVar3 = iVar2;\n    }" { (expression_statement "iVar3 = iVar2;" (assignment_expression "iVar3 = iVar2" identifier = identifier) ;) })) (expression_statement "*(int *)((int)register0x00000010 + -0x38) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x38) = iVar6" (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) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);" (assignment_expression "*(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14)" (pointer_expression "*(undefined1 *)((int)register0x00000010 + -0x2d)" * (cast_expression "(undefined1 *)((int)register0x00000010 + -0x2d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x2d)" ( (binary_expression "(int)register0x00000010 + -0x2d" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)register0x00000010 + 0x14)" * (cast_expression "(undefined1 *)((int)register0x00000010 + 0x14)" ( (type_descriptor "undefined1 *" type_identifier (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) ))))) ;) (if_statement "if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }" if (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x3c) <= iVar3)" ( (binary_expression "*(int *)((int)register0x00000010 + -0x3c) <= iVar3" (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) )))) <= identifier) )) (compound_statement "{\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }" { (expression_statement "iVar6 = (int)piVar7 - (int)piVar4;" (assignment_expression "iVar6 = (int)piVar7 - (int)piVar4" identifier = (binary_expression "(int)piVar7 - (int)piVar4" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "piVar5 = piVar7;" (assignment_expression "piVar5 = piVar7" identifier = identifier) ;) (if_statement "if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }" if (parenthesized_expression "(piVar7 != piVar4)" ( (binary_expression "piVar7 != piVar4" identifier != identifier) )) (compound_statement "{\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }" { (expression_statement "*(int **)((int)register0x00000010 + -0x3c) = piVar7;" (assignment_expression "*(int **)((int)register0x00000010 + -0x3c) = piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -0x3c)" * (cast_expression "(int **)((int)register0x00000010 + -0x3c)" ( (type_descriptor "int **" primitive_type (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) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x54) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" * (cast_expression "(int *)((int)register0x00000010 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x40) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x40) = iVar6" (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) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x58) = piVar4;" (assignment_expression "*(int **)((int)register0x00000010 + -0x58) = piVar4" (pointer_expression "*(int **)((int)register0x00000010 + -0x58)" * (cast_expression "(int **)((int)register0x00000010 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x5c) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x5c) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x5c)" * (cast_expression "(int **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x5c)" * (cast_expression "(void **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x58)" * (cast_expression "(void **)((int)register0x00000010 + -0x58)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x54)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x54)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "piVar5 = *(int **)((int)register0x00000010 + -0x3c);" (assignment_expression "piVar5 = *(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 "**" * (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) ))))) ;) (expression_statement "iVar6 = *(int *)((int)register0x00000010 + -0x40);" (assignment_expression "iVar6 = *(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 + -0x40) = (int *)((int)piVar8 + iVar6);" (assignment_expression "*(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6)" (pointer_expression "*(int **)((int)register0x00000010 + -0x40)" * (cast_expression "(int **)((int)register0x00000010 + -0x40)" ( (type_descriptor "int **" primitive_type (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 *)((int)piVar8 + iVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + iVar6)" ( (binary_expression "(int)piVar8 + iVar6" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }" if (parenthesized_expression "(piVar8 == (int *)((int)piVar8 + iVar6))" ( (binary_expression "piVar8 == (int *)((int)piVar8 + iVar6)" identifier == (cast_expression "(int *)((int)piVar8 + iVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + iVar6)" ( (binary_expression "(int)piVar8 + iVar6" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (if_statement "if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;" if (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x44) == piVar7)" ( (binary_expression "*(int **)((int)register0x00000010 + -0x44) == piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" * (cast_expression "(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int **" primitive_type (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) )) (goto_statement "goto LAB_000717de;" goto statement_identifier ;)) (expression_statement "iVar6 = *piVar7;" (assignment_expression "iVar6 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "iVar2 = *piVar8;" (assignment_expression "iVar2 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "bVar1 = *(byte *)(iVar6 + 0x1c);" (assignment_expression "bVar1 = *(byte *)(iVar6 + 0x1c)" identifier = (pointer_expression "*(byte *)(iVar6 + 0x1c)" * (cast_expression "(byte *)(iVar6 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x000715ef;" goto statement_identifier ;) })) (if_statement "if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;" if (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x38) <= iVar2)" ( (binary_expression "*(int *)((int)register0x00000010 + -0x38) <= iVar2" (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) )))) <= identifier) )) (break_statement "break;" break ;)) (if_statement "if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      FUN_0005cdd0();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }" if (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c))" ( (binary_expression "*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)" (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) )))) < (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) ))))) )) (compound_statement "{\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      FUN_0005cdd0();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }" { (expression_statement "iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2" identifier = (binary_expression "*(int *)((int)register0x00000010 + -0x3c) / 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) )))) / number_literal)) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x34) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x34) = iVar6" (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) )))) = identifier) ;) (expression_statement "iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4" identifier = (binary_expression "*(int *)((int)register0x00000010 + -0x40) + iVar6 * 4" (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 "iVar6 * 4" identifier * number_literal))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x2c) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x2c) = iVar6" (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 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20)" (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) )))) = (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) )))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x5c) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x5c) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" * (cast_expression "(int *)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "FUN_0005cdd0();" (call_expression "FUN_0005cdd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);" (assignment_expression "*(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20)" (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) )))) = (pointer_expression "*(int *)((int)register0x00000010 + -0x20)" * (cast_expression "(int *)((int)register0x00000010 + -0x20)" ( (type_descriptor "int *" primitive_type (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 "iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2" identifier = (binary_expression "*(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2" (binary_expression "*(int *)((int)register0x00000010 + -0x20) - (int)piVar7" (pointer_expression "*(int *)((int)register0x00000010 + -0x20)" * (cast_expression "(int *)((int)register0x00000010 + -0x20)" ( (type_descriptor "int *" primitive_type (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) )))) - (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) }) (else_clause "else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }" else (compound_statement "{\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }" { (expression_statement "iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2" identifier = (binary_expression "*(int *)((int)register0x00000010 + -0x38) / 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) )))) / number_literal)) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;" (assignment_expression "*(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6" (pointer_expression "*(int **)((int)register0x00000010 + -0x28)" * (cast_expression "(int **)((int)register0x00000010 + -0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (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) )))) = (binary_expression "piVar7 + iVar6" identifier + identifier)) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20)" (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) )))) = (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) )))) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;" (assignment_expression "*(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6" (pointer_expression "*(int **)((int)register0x00000010 + -0x5c)" * (cast_expression "(int **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "piVar7 + iVar6" identifier + identifier)) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "FUN_0005cef0();" (call_expression "FUN_0005cef0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);" (assignment_expression "*(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20)" (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) )))) = (pointer_expression "*(int *)((int)register0x00000010 + -0x20)" * (cast_expression "(int *)((int)register0x00000010 + -0x20)" ( (type_descriptor "int *" primitive_type (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 "*(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;" (assignment_expression "*(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           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 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2" (binary_expression "*(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40)" (pointer_expression "*(int *)((int)register0x00000010 + -0x20)" * (cast_expression "(int *)((int)register0x00000010 + -0x20)" ( (type_descriptor "int *" primitive_type (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) )))) - (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) ))))) >> number_literal)) ;) }))) (expression_statement "iVar3 = *(int *)((int)register0x00000010 + -0x3c);" (assignment_expression "iVar3 = *(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) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x50) = iVar2;" (assignment_expression "*(int *)((int)register0x00000010 + -0x50) = iVar2" (pointer_expression "*(int *)((int)register0x00000010 + -0x50)" * (cast_expression "(int *)((int)register0x00000010 + -0x50)" ( (type_descriptor "int *" primitive_type (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) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x54) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x54) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x54)" * (cast_expression "(int **)((int)register0x00000010 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x58) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x58) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x58)" * (cast_expression "(int *)((int)register0x00000010 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);" (assignment_expression "*(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34)" (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 "iVar3 - *(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 "*(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);" (assignment_expression "*(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34)" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" * (cast_expression "(int *)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "iVar3 - *(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 "*(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x28)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (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 "*(int **)((int)register0x00000010 + -100) = piVar7;" (assignment_expression "*(int **)((int)register0x00000010 + -100) = piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -100)" * (cast_expression "(int **)((int)register0x00000010 + -100)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (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) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c)" (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 "*(undefined4 *)((int)register0x00000010 + -0x2c)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (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 "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24)" (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 + -0x24)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (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 "*(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775" (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 "FUN_000affe0();" (call_expression "FUN_000affe0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);" (assignment_expression "*(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31)" (pointer_expression "*(uint *)((int)register0x00000010 + -0x60)" * (cast_expression "(uint *)((int)register0x00000010 + -0x60)" ( (type_descriptor "uint *" 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) )))) = (binary_expression "(uint)*(byte *)((int)register0x00000010 + -0x31)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)register0x00000010 + -0x31)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x31)" ( (binary_expression "(int)register0x00000010 + -0x31" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + -100) = iVar2;" (assignment_expression "*(int *)((int)register0x00000010 + -100) = iVar2" (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 + -0x68) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x68) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x68)" * (cast_expression "(int **)((int)register0x00000010 + -0x68)" ( (type_descriptor "int **" 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) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x6c) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x6c) = iVar6" (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) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38)" (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 + -0x38)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x38)" ( (type_descriptor "undefined4 *" type_identifier (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 "*(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798" (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 "FUN_00071550();" (call_expression "FUN_00071550()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(int *)((int)register0x00000010 + 0xc) = iVar2;" (assignment_expression "*(int *)((int)register0x00000010 + 0xc) = iVar2" (pointer_expression "*(int *)((int)register0x00000010 + 0xc)" * (cast_expression "(int *)((int)register0x00000010 + 0xc)" ( (type_descriptor "int *" primitive_type (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 "*(int **)((int)register0x00000010 + 8) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + 8) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + 8)" * (cast_expression "(int **)((int)register0x00000010 + 8)" ( (type_descriptor "int **" primitive_type (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) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);" (assignment_expression "*(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31)" (pointer_expression "*(undefined1 *)((int)register0x00000010 + 0x10)" * (cast_expression "(undefined1 *)((int)register0x00000010 + 0x10)" ( (type_descriptor "undefined1 *" 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) )))) = (pointer_expression "*(undefined1 *)((int)register0x00000010 + -0x31)" * (cast_expression "(undefined1 *)((int)register0x00000010 + -0x31)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x31)" ( (binary_expression "(int)register0x00000010 + -0x31" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6" (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) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x3c) - iVar6" (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) )))) - identifier)) ;) (expression_statement "*(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);" (assignment_expression "*(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40)" (pointer_expression "*(undefined4 *)register0x00000010" * (cast_expression "(undefined4 *)register0x00000010" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x40)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (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 "unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);" (assignment_expression "unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14)" identifier = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x14)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (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 "unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);" (assignment_expression "unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10)" identifier = (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) ))))) ;) (expression_statement "unaff_EDI = *(int *)((int)register0x00000010 + -0xc);" (assignment_expression "unaff_EDI = *(int *)((int)register0x00000010 + -0xc)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0xc)" * (cast_expression "(int *)((int)register0x00000010 + -0xc)" ( (type_descriptor "int *" primitive_type (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 "unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);" (assignment_expression "unaff_EBP = *(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 "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -8)" ( (binary_expression "(int)register0x00000010 + -8" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);" (assignment_expression "register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4)" identifier = (cast_expression "(BADSPACEBASE *)((int)register0x00000010 + -4)" ( (type_descriptor "BADSPACEBASE *" 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) )))) ;) })) (expression_statement "iVar6 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7;" (assignment_expression "iVar6 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7" identifier = (binary_expression "(int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7" (cast_expression "(int)*(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" * (cast_expression "(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int **" primitive_type (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) ))))) - (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (*(int **)((int)register0x00000010 + -0x44) != piVar7) {\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar7;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n  }" if (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x44) != piVar7)" ( (binary_expression "*(int **)((int)register0x00000010 + -0x44) != piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" * (cast_expression "(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int **" primitive_type (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) )) (compound_statement "{\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar7;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n  }" { (expression_statement "*(int *)((int)register0x00000010 + -0x54) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" * (cast_expression "(int *)((int)register0x00000010 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x58) = piVar7;" (assignment_expression "*(int **)((int)register0x00000010 + -0x58) = piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -0x58)" * (cast_expression "(int **)((int)register0x00000010 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x5c) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x5c) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x5c)" * (cast_expression "(int **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x5c)" * (cast_expression "(void **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x58)" * (cast_expression "(void **)((int)register0x00000010 + -0x58)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x54)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x54)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "piVar4 = (int *)((int)piVar8 + iVar6);" (assignment_expression "piVar4 = (int *)((int)piVar8 + iVar6)" identifier = (cast_expression "(int *)((int)piVar8 + iVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + iVar6)" ( (binary_expression "(int)piVar8 + iVar6" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n    if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }\n  }\n  else if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    /* WARNING: Subroutine does not return */\n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    FUN_000da200();\n  }" if (parenthesized_expression "(piVar7 == *(int **)((int)register0x00000010 + -0x40))" ( (binary_expression "piVar7 == *(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 "**" * (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) ))))) )) (compound_statement "{\n    if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }\n  }" { (if_statement "if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }" if (parenthesized_expression "(piVar8 != piVar4)" ( (binary_expression "piVar8 != piVar4" identifier != identifier) )) (compound_statement "{\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }" { (expression_statement "*(int *)((int)register0x00000010 + -0x54) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" * (cast_expression "(int *)((int)register0x00000010 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x58) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x58) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x58)" * (cast_expression "(int **)((int)register0x00000010 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" * (cast_expression "(int *)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x44) - iVar6" (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 + -0x60) = 0x7189d;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x5c)" * (cast_expression "(void **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x58)" * (cast_expression "(void **)((int)register0x00000010 + -0x58)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x54)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x54)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) }) (else_clause "else if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    /* WARNING: Subroutine does not return */\n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    FUN_000da200();\n  }" else (if_statement "if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    /* WARNING: Subroutine does not return */\n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    FUN_000da200();\n  }" if (parenthesized_expression "(piVar8 != piVar4)" ( (binary_expression "piVar8 != piVar4" identifier != identifier) )) (compound_statement "{\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    /* WARNING: Subroutine does not return */\n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    FUN_000da200();\n  }" { (expression_statement "piVar7 = piVar7 + -1;" (assignment_expression "piVar7 = piVar7 + -1" identifier = (binary_expression "piVar7 + -1" identifier + number_literal)) ;) (expression_statement "piVar5 = *(int **)((int)register0x00000010 + -0x44);" (assignment_expression "piVar5 = *(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 "**" * (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 "piVar4 = piVar4 + -1;" (assignment_expression "piVar4 = piVar4 + -1" identifier = (binary_expression "piVar4 + -1" identifier + number_literal)) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x44) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x44) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" * (cast_expression "(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int **" primitive_type (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) ;) (while_statement "while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }" { (expression_statement "piVar5 = piVar5 + -1;" (assignment_expression "piVar5 = piVar5 + -1" identifier = (binary_expression "piVar5 + -1" identifier + number_literal)) ;) (expression_statement "iVar6 = *piVar4;" (assignment_expression "iVar6 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "iVar2 = *piVar7;" (assignment_expression "iVar2 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (if_statement "if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;" if (parenthesized_expression "((*(byte *)(iVar6 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar6 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar6 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar6 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar6 + 0x1c)" * (cast_expression "(byte *)(iVar6 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;" if (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar2 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar2 + 0x1c)" * (cast_expression "(byte *)(iVar2 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }" if (parenthesized_expression "(*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4)))" ( (binary_expression "*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (binary_expression "*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8)" (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) || (binary_expression "*(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (binary_expression "*(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8)" (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) - (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) < (call_expression "(uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" ( (binary_expression "*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4)" (pointer_expression "*(uint *)(iVar6 + 4)" * (cast_expression "(uint *)(iVar6 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar2 + 4)" * (cast_expression "(uint *)(iVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ))))) )) (compound_statement "{\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }" { (expression_statement "*piVar5 = iVar2;" (assignment_expression "*piVar5 = iVar2" (pointer_expression "*piVar5" * identifier) = identifier) ;) (if_statement "if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }" if (parenthesized_expression "(piVar7 == *(int **)((int)register0x00000010 + -0x40))" ( (binary_expression "piVar7 == *(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 "**" * (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) ))))) )) (compound_statement "{\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }" { (expression_statement "piVar7 = *(int **)((int)register0x00000010 + -0x44);" (assignment_expression "piVar7 = *(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 "**" * (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) ))))) ;) (if_statement "if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }" if (parenthesized_expression "(piVar7 != piVar4 + 1)" ( (binary_expression "piVar7 != piVar4 + 1" identifier != (binary_expression "piVar4 + 1" identifier + number_literal)) )) (compound_statement "{\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }" { (expression_statement "iVar6 = (int)(piVar4 + 1) - (int)piVar7;" (assignment_expression "iVar6 = (int)(piVar4 + 1) - (int)piVar7" identifier = (binary_expression "(int)(piVar4 + 1) - (int)piVar7" (cast_expression "(int)(piVar4 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar4 + 1)" ( (binary_expression "piVar4 + 1" identifier + number_literal) ))) - (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x54) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" * (cast_expression "(int *)((int)register0x00000010 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x58) = piVar7;" (assignment_expression "*(int **)((int)register0x00000010 + -0x58) = piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -0x58)" * (cast_expression "(int **)((int)register0x00000010 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" * (cast_expression "(int *)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)piVar5 - iVar6" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x5c)" * (cast_expression "(void **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x58)" * (cast_expression "(void **)((int)register0x00000010 + -0x58)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x54)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x54)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })) (expression_statement "piVar7 = piVar7 + -1;" (assignment_expression "piVar7 = piVar7 + -1" identifier = (binary_expression "piVar7 + -1" identifier + number_literal)) ;) }) (else_clause "else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }" else (compound_statement "{\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }" { (expression_statement "*piVar5 = iVar6;" (assignment_expression "*piVar5 = iVar6" (pointer_expression "*piVar5" * identifier) = identifier) ;) (if_statement "if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }" if (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x44) == piVar4)" ( (binary_expression "*(int **)((int)register0x00000010 + -0x44) == piVar4" (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" * (cast_expression "(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int **" primitive_type (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) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "piVar4 = piVar4 + -1;" (assignment_expression "piVar4 = piVar4 + -1" identifier = (binary_expression "piVar4 + -1" identifier + number_literal)) ;) }))) })) (labeled_statement "LAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;" statement_identifier : (expression_statement "*(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" * (cast_expression "(int *)((int)register0x00000010 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x34) + -0x11dd0c" (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)) ;)) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x58)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;" (assignment_expression "*(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" * (cast_expression "(int *)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x34) + -0x11d1a4" (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)) ;) comment (expression_statement "*(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;" (assignment_expression "*(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4" (pointer_expression "*(undefined **)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined **)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (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) )))) = (pointer_expression "&UNK_000718c4" & identifier)) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })))) (return_statement "return;" return ;) (labeled_statement "joined_r0x000715ef:\n  if ((bVar1 & 1) == 0) goto LAB_000718a5;" statement_identifier : (if_statement "if ((bVar1 & 1) == 0) goto LAB_000718a5;" if (parenthesized_expression "((bVar1 & 1) == 0)" ( (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000718a5;" goto statement_identifier ;))) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_000718a5;" if (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar2 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar2 + 0x1c)" * (cast_expression "(byte *)(iVar2 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000718a5;" goto statement_identifier ;)) (if_statement "if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n    *piVar4 = iVar6;\n    piVar5 = piVar5 + 1;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  else {\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }" if (parenthesized_expression "(*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4)))" ( (binary_expression "*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (binary_expression "*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8)" (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) || (binary_expression "*(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (binary_expression "*(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8)" (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) - (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) < (call_expression "(uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" ( (binary_expression "*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4)" (pointer_expression "*(uint *)(iVar6 + 4)" * (cast_expression "(uint *)(iVar6 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar2 + 4)" * (cast_expression "(uint *)(iVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ))))) )) (compound_statement "{\n    *piVar4 = iVar6;\n    piVar5 = piVar5 + 1;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }" { (expression_statement "*piVar4 = iVar6;" (assignment_expression "*piVar4 = iVar6" (pointer_expression "*piVar4" * identifier) = identifier) ;) (expression_statement "piVar5 = piVar5 + 1;" (assignment_expression "piVar5 = piVar5 + 1" identifier = (binary_expression "piVar5 + 1" identifier + number_literal)) ;) (if_statement "if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }" if (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x40) == piVar8)" ( (binary_expression "*(int **)((int)register0x00000010 + -0x40) == piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x40)" * (cast_expression "(int **)((int)register0x00000010 + -0x40)" ( (type_descriptor "int **" primitive_type (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      return;\n    }" { (return_statement "return;" return ;) })) }) (else_clause "else {\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }" else (compound_statement "{\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }" { (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) (expression_statement "*piVar4 = iVar2;" (assignment_expression "*piVar4 = iVar2" (pointer_expression "*piVar4" * identifier) = identifier) ;) (if_statement "if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }" if (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x40) == piVar8)" ( (binary_expression "*(int **)((int)register0x00000010 + -0x40) == piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x40)" * (cast_expression "(int **)((int)register0x00000010 + -0x40)" ( (type_descriptor "int **" primitive_type (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      return;\n    }" { (return_statement "return;" return ;) })) }))) (expression_statement "piVar4 = piVar4 + 1;" (assignment_expression "piVar4 = piVar4 + 1" identifier = (binary_expression "piVar4 + 1" identifier + number_literal)) ;) (if_statement "if (*(int **)((int)register0x00000010 + -0x44) == piVar5) {\n    iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;\nLAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar8;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n    return;\n  }" if (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x44) == piVar5)" ( (binary_expression "*(int **)((int)register0x00000010 + -0x44) == piVar5" (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" * (cast_expression "(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int **" primitive_type (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) )) (compound_statement "{\n    iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;\nLAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar8;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n    return;\n  }" { (expression_statement "iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8" identifier = (binary_expression "*(int *)((int)register0x00000010 + -0x40) - (int)piVar8" (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)piVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (labeled_statement "LAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;" statement_identifier : (expression_statement "*(int *)((int)register0x00000010 + -0x54) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" * (cast_expression "(int *)((int)register0x00000010 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int **)((int)register0x00000010 + -0x58) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x58) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x58)" * (cast_expression "(int **)((int)register0x00000010 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x5c) = piVar4;" (assignment_expression "*(int **)((int)register0x00000010 + -0x5c) = piVar4" (pointer_expression "*(int **)((int)register0x00000010 + -0x5c)" * (cast_expression "(int **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x5c)" * (cast_expression "(void **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x58)" * (cast_expression "(void **)((int)register0x00000010 + -0x58)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x54)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x54)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar6 = *piVar5;" (assignment_expression "iVar6 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "iVar2 = *piVar8;" (assignment_expression "iVar2 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "bVar1 = *(byte *)(iVar6 + 0x1c);" (assignment_expression "bVar1 = *(byte *)(iVar6 + 0x1c)" identifier = (pointer_expression "*(byte *)(iVar6 + 0x1c)" * (cast_expression "(byte *)(iVar6 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x000715ef;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* DWARF original name: __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,\n   std::vector<gold::Output_section*> >, int, gold::Output_section**,\n   __gnu_cxx::__ops::_Iter_comp_iter<(anonymous namespace)::Target_powerpc<32, true>::Sort_sections>\n   > */\n\nvoid std::\n     __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_int,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n               (void)\n\n{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 extraout_ECX;\n  int *piVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 unaff_EBX;\n  undefined4 unaff_EBP;\n  int *piVar8;\n  undefined4 unaff_ESI;\n  int unaff_EDI;\n  undefined8 uVar9;\n  \n  while( true ) {\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(int *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557;\n    uVar9 = __x86_get_pc_thunk_di();\n    piVar7 = (int *)((ulonglong)uVar9 >> 0x20);\n    piVar4 = (int *)uVar9;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    iVar6 = *(int *)((int)register0x00000010 + 8);\n    iVar2 = *(int *)((int)register0x00000010 + 0x10);\n    *(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;\n    piVar8 = *(int **)((int)register0x00000010 + 0xc);\n    *(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;\n    *(int **)((int)register0x00000010 + -0x40) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);\n    iVar3 = iVar6;\n    if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }\n    *(int *)((int)register0x00000010 + -0x38) = iVar6;\n    *(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);\n    if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }\n    if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;\n    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n                ();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n                ();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }\n    iVar3 = *(int *)((int)register0x00000010 + -0x3c);\n    *(int *)((int)register0x00000010 + -0x50) = iVar2;\n    *(int **)((int)register0x00000010 + -0x54) = piVar8;\n    *(int *)((int)register0x00000010 + -0x58) = iVar6;\n    *(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);\n    *(int **)((int)register0x00000010 + -100) = piVar7;\n    *(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);\n    *(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);\n    *(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;\n    __rotate_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,_int>\n              ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x6c),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x68),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -100),\n               *(int *)((int)register0x00000010 + -0x60),*(int *)((int)register0x00000010 + -0x5c),\n               *(Output_section ***)((int)register0x00000010 + -0x58),\n               *(int *)((int)register0x00000010 + -0x54));\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2;\n    *(int **)((int)register0x00000010 + -0x68) = piVar8;\n    *(int *)((int)register0x00000010 + -0x6c) = iVar6;\n    *(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);\n    *(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;\n    __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_int,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n              ();\n    *(int *)((int)register0x00000010 + 0xc) = iVar2;\n    *(int **)((int)register0x00000010 + 8) = piVar8;\n    *(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;\n    *(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);\n    unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);\n    unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);\n    unaff_EDI = *(int *)((int)register0x00000010 + -0xc);\n    unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);\n    register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);\n  }\n  iVar6 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7;\n  if (*(int **)((int)register0x00000010 + -0x44) != piVar7) {\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar7;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n  }\n  piVar4 = (int *)((int)piVar8 + iVar6);\n  if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n    if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }\n  }\n  else if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    /* WARNING: Subroutine does not return */\n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    gold::do_gold_unreachable\n              (*(char **)((int)register0x00000010 + -0x5c),*(int *)((int)register0x00000010 + -0x58)\n               ,*(char **)((int)register0x00000010 + -0x54));\n  }\n  return;\njoined_r0x000715ef:\n  if ((bVar1 & 1) == 0) goto LAB_000718a5;\n  if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_000718a5;\n  if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n    *piVar4 = iVar6;\n    piVar5 = piVar5 + 1;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  else {\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  piVar4 = piVar4 + 1;\n  if (*(int **)((int)register0x00000010 + -0x44) == piVar5) {\n    iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;\nLAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar8;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n    return;\n  }\n  iVar6 = *piVar5;\n  iVar2 = *piVar8;\n  bVar1 = *(byte *)(iVar6 + 0x1c);\n  goto joined_r0x000715ef;\n}\n\n" comment comment (declaration "void std::\n     __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_int,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n               (void)\n\n{\n  byte bVar1;" primitive_type (ERROR "std::\n     __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section" identifier : : identifier < identifier : : identifier < identifier : : identifier) (pointer_declarator "**,_std::vector<gold::Output_section*>_" * (pointer_declarator "*,_std::vector<gold::Output_section*>_" * (ERROR ",_std::vector<gold::Output_section*>" , identifier : : identifier < identifier : : identifier * >) identifier)) (ERROR ">" >) , identifier , (ERROR "_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::" identifier : : identifier (pointer_declarator "**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace" * (pointer_declarator "*,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace" * (ERROR ",___gnu_cxx::__ops::_Iter_comp_iter<(" , identifier : : identifier : : identifier < () identifier)) ) : :) identifier (ERROR "<32" < number_literal) , (ERROR "_true>::Sort_sections>_>\n               (void)\n\n{\n  byte" identifier > : : identifier > (function_declarator "_>\n               (void)" identifier (ERROR ">" >) (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) { identifier) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 unaff_EBX;" type_identifier identifier ;) (declaration "undefined4 unaff_EBP;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined4 unaff_ESI;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (while_statement "while( true ) {\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(int *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557;\n    uVar9 = __x86_get_pc_thunk_di();\n    piVar7 = (int *)((ulonglong)uVar9 >> 0x20);\n    piVar4 = (int *)uVar9;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    iVar6 = *(int *)((int)register0x00000010 + 8);\n    iVar2 = *(int *)((int)register0x00000010 + 0x10);\n    *(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;\n    piVar8 = *(int **)((int)register0x00000010 + 0xc);\n    *(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;\n    *(int **)((int)register0x00000010 + -0x40) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);\n    iVar3 = iVar6;\n    if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }\n    *(int *)((int)register0x00000010 + -0x38) = iVar6;\n    *(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);\n    if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }\n    if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;\n    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n                ();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n                ();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }\n    iVar3 = *(int *)((int)register0x00000010 + -0x3c);\n    *(int *)((int)register0x00000010 + -0x50) = iVar2;\n    *(int **)((int)register0x00000010 + -0x54) = piVar8;\n    *(int *)((int)register0x00000010 + -0x58) = iVar6;\n    *(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);\n    *(int **)((int)register0x00000010 + -100) = piVar7;\n    *(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);\n    *(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);\n    *(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;\n    __rotate_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,_int>\n              ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x6c),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x68),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -100),\n               *(int *)((int)register0x00000010 + -0x60),*(int *)((int)register0x00000010 + -0x5c),\n               *(Output_section ***)((int)register0x00000010 + -0x58),\n               *(int *)((int)register0x00000010 + -0x54));\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2;\n    *(int **)((int)register0x00000010 + -0x68) = piVar8;\n    *(int *)((int)register0x00000010 + -0x6c) = iVar6;\n    *(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);\n    *(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;\n    __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_int,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n              ();\n    *(int *)((int)register0x00000010 + 0xc) = iVar2;\n    *(int **)((int)register0x00000010 + 8) = piVar8;\n    *(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;\n    *(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);\n    unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);\n    unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);\n    unaff_EDI = *(int *)((int)register0x00000010 + -0xc);\n    unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);\n    register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(int *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557;\n    uVar9 = __x86_get_pc_thunk_di();\n    piVar7 = (int *)((ulonglong)uVar9 >> 0x20);\n    piVar4 = (int *)uVar9;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    iVar6 = *(int *)((int)register0x00000010 + 8);\n    iVar2 = *(int *)((int)register0x00000010 + 0x10);\n    *(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;\n    piVar8 = *(int **)((int)register0x00000010 + 0xc);\n    *(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;\n    *(int **)((int)register0x00000010 + -0x40) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);\n    iVar3 = iVar6;\n    if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }\n    *(int *)((int)register0x00000010 + -0x38) = iVar6;\n    *(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);\n    if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }\n    if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;\n    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n                ();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n                ();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }\n    iVar3 = *(int *)((int)register0x00000010 + -0x3c);\n    *(int *)((int)register0x00000010 + -0x50) = iVar2;\n    *(int **)((int)register0x00000010 + -0x54) = piVar8;\n    *(int *)((int)register0x00000010 + -0x58) = iVar6;\n    *(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);\n    *(int **)((int)register0x00000010 + -100) = piVar7;\n    *(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);\n    *(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);\n    *(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;\n    __rotate_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,_int>\n              ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x6c),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x68),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -100),\n               *(int *)((int)register0x00000010 + -0x60),*(int *)((int)register0x00000010 + -0x5c),\n               *(Output_section ***)((int)register0x00000010 + -0x58),\n               *(int *)((int)register0x00000010 + -0x54));\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2;\n    *(int **)((int)register0x00000010 + -0x68) = piVar8;\n    *(int *)((int)register0x00000010 + -0x6c) = iVar6;\n    *(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);\n    *(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;\n    __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_int,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n              ();\n    *(int *)((int)register0x00000010 + 0xc) = iVar2;\n    *(int **)((int)register0x00000010 + 8) = piVar8;\n    *(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;\n    *(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);\n    unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);\n    unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);\n    unaff_EDI = *(int *)((int)register0x00000010 + -0xc);\n    unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);\n    register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);\n  }" { (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 "*(int *)((int)register0x00000010 + -8) = unaff_EDI;" (assignment_expression "*(int *)((int)register0x00000010 + -8) = unaff_EDI" (pointer_expression "*(int *)((int)register0x00000010 + -8)" * (cast_expression "(int *)((int)register0x00000010 + -8)" ( (type_descriptor "int *" primitive_type (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) = 0x71557;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557" (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) )))) = number_literal) ;) (expression_statement "uVar9 = __x86_get_pc_thunk_di();" (assignment_expression "uVar9 = __x86_get_pc_thunk_di()" identifier = (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar7 = (int *)((ulonglong)uVar9 >> 0x20);" (assignment_expression "piVar7 = (int *)((ulonglong)uVar9 >> 0x20)" identifier = (cast_expression "(int *)((ulonglong)uVar9 >> 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar9 >> 0x20)" ( (binary_expression "(ulonglong)uVar9 >> 0x20" (cast_expression "(ulonglong)uVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "piVar4 = (int *)uVar9;" (assignment_expression "piVar4 = (int *)uVar9" identifier = (cast_expression "(int *)uVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) 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 "iVar6 = *(int *)((int)register0x00000010 + 8);" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + 8)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + 8)" * (cast_expression "(int *)((int)register0x00000010 + 8)" ( (type_descriptor "int *" primitive_type (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 "iVar2 = *(int *)((int)register0x00000010 + 0x10);" (assignment_expression "iVar2 = *(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 "*(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x44)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (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 "piVar8 = *(int **)((int)register0x00000010 + 0xc);" (assignment_expression "piVar8 = *(int **)((int)register0x00000010 + 0xc)" identifier = (pointer_expression "*(int **)((int)register0x00000010 + 0xc)" * (cast_expression "(int **)((int)register0x00000010 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (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 "*(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9" (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 "unaff_EDI + 0x3a2aa9" identifier + number_literal)) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x40) = piVar4;" (assignment_expression "*(int **)((int)register0x00000010 + -0x40) = piVar4" (pointer_expression "*(int **)((int)register0x00000010 + -0x40)" * (cast_expression "(int **)((int)register0x00000010 + -0x40)" ( (type_descriptor "int **" primitive_type (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) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x3c)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (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) )))) = (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) ))))) ;) (expression_statement "iVar3 = iVar6;" (assignment_expression "iVar3 = iVar6" identifier = identifier) ;) (if_statement "if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }" if (parenthesized_expression "(iVar2 < iVar6)" ( (binary_expression "iVar2 < iVar6" identifier < identifier) )) (compound_statement "{\n      iVar3 = iVar2;\n    }" { (expression_statement "iVar3 = iVar2;" (assignment_expression "iVar3 = iVar2" identifier = identifier) ;) })) (expression_statement "*(int *)((int)register0x00000010 + -0x38) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x38) = iVar6" (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) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);" (assignment_expression "*(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14)" (pointer_expression "*(undefined1 *)((int)register0x00000010 + -0x2d)" * (cast_expression "(undefined1 *)((int)register0x00000010 + -0x2d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x2d)" ( (binary_expression "(int)register0x00000010 + -0x2d" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)register0x00000010 + 0x14)" * (cast_expression "(undefined1 *)((int)register0x00000010 + 0x14)" ( (type_descriptor "undefined1 *" type_identifier (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) ))))) ;) (if_statement "if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }" if (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x3c) <= iVar3)" ( (binary_expression "*(int *)((int)register0x00000010 + -0x3c) <= iVar3" (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) )))) <= identifier) )) (compound_statement "{\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }" { (expression_statement "iVar6 = (int)piVar7 - (int)piVar4;" (assignment_expression "iVar6 = (int)piVar7 - (int)piVar4" identifier = (binary_expression "(int)piVar7 - (int)piVar4" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "piVar5 = piVar7;" (assignment_expression "piVar5 = piVar7" identifier = identifier) ;) (if_statement "if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }" if (parenthesized_expression "(piVar7 != piVar4)" ( (binary_expression "piVar7 != piVar4" identifier != identifier) )) (compound_statement "{\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }" { (expression_statement "*(int **)((int)register0x00000010 + -0x3c) = piVar7;" (assignment_expression "*(int **)((int)register0x00000010 + -0x3c) = piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -0x3c)" * (cast_expression "(int **)((int)register0x00000010 + -0x3c)" ( (type_descriptor "int **" primitive_type (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) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x54) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" * (cast_expression "(int *)((int)register0x00000010 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x40) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x40) = iVar6" (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) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x58) = piVar4;" (assignment_expression "*(int **)((int)register0x00000010 + -0x58) = piVar4" (pointer_expression "*(int **)((int)register0x00000010 + -0x58)" * (cast_expression "(int **)((int)register0x00000010 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x5c) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x5c) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x5c)" * (cast_expression "(int **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x5c)" * (cast_expression "(void **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x58)" * (cast_expression "(void **)((int)register0x00000010 + -0x58)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x54)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x54)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "piVar5 = *(int **)((int)register0x00000010 + -0x3c);" (assignment_expression "piVar5 = *(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 "**" * (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) ))))) ;) (expression_statement "iVar6 = *(int *)((int)register0x00000010 + -0x40);" (assignment_expression "iVar6 = *(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 + -0x40) = (int *)((int)piVar8 + iVar6);" (assignment_expression "*(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6)" (pointer_expression "*(int **)((int)register0x00000010 + -0x40)" * (cast_expression "(int **)((int)register0x00000010 + -0x40)" ( (type_descriptor "int **" primitive_type (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 *)((int)piVar8 + iVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + iVar6)" ( (binary_expression "(int)piVar8 + iVar6" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }" if (parenthesized_expression "(piVar8 == (int *)((int)piVar8 + iVar6))" ( (binary_expression "piVar8 == (int *)((int)piVar8 + iVar6)" identifier == (cast_expression "(int *)((int)piVar8 + iVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + iVar6)" ( (binary_expression "(int)piVar8 + iVar6" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (if_statement "if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;" if (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x44) == piVar7)" ( (binary_expression "*(int **)((int)register0x00000010 + -0x44) == piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" * (cast_expression "(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int **" primitive_type (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) )) (goto_statement "goto LAB_000717de;" goto statement_identifier ;)) (expression_statement "iVar6 = *piVar7;" (assignment_expression "iVar6 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "iVar2 = *piVar8;" (assignment_expression "iVar2 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "bVar1 = *(byte *)(iVar6 + 0x1c);" (assignment_expression "bVar1 = *(byte *)(iVar6 + 0x1c)" identifier = (pointer_expression "*(byte *)(iVar6 + 0x1c)" * (cast_expression "(byte *)(iVar6 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x000715ef;" goto statement_identifier ;) })) (if_statement "if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;" if (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x38) <= iVar2)" ( (binary_expression "*(int *)((int)register0x00000010 + -0x38) <= iVar2" (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) )))) <= identifier) )) (break_statement "break;" break ;)) (if_statement "if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n                ();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n                ();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }" if (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c))" ( (binary_expression "*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)" (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) )))) < (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) ))))) )) (compound_statement "{\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n                ();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }" { (expression_statement "iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2" identifier = (binary_expression "*(int *)((int)register0x00000010 + -0x3c) / 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) )))) / number_literal)) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x34) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x34) = iVar6" (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) )))) = identifier) ;) (expression_statement "iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4" identifier = (binary_expression "*(int *)((int)register0x00000010 + -0x40) + iVar6 * 4" (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 "iVar6 * 4" identifier * number_literal))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x2c) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x2c) = iVar6" (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 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20)" (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) )))) = (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) )))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x5c) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x5c) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" * (cast_expression "(int *)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "__lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n                ();" (comma_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n                ()" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<(anonymous_namespace)::Target_powerpc<32" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<(anonymous_namespace)" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_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_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_comp_val" : : identifier : : identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Target_powerpc" : : identifier) < number_literal) , (binary_expression "_true>::Sort_sections>_>\n                ()" (binary_expression "_true>::Sort_sections>_" (binary_expression "_true>::Sort_sections" identifier > (ERROR "::" : :) identifier) > identifier) > (parenthesized_expression "()" ( identifier )))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);" (assignment_expression "*(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20)" (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) )))) = (pointer_expression "*(int *)((int)register0x00000010 + -0x20)" * (cast_expression "(int *)((int)register0x00000010 + -0x20)" ( (type_descriptor "int *" primitive_type (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 "iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2" identifier = (binary_expression "*(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2" (binary_expression "*(int *)((int)register0x00000010 + -0x20) - (int)piVar7" (pointer_expression "*(int *)((int)register0x00000010 + -0x20)" * (cast_expression "(int *)((int)register0x00000010 + -0x20)" ( (type_descriptor "int *" primitive_type (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) )))) - (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) }) (else_clause "else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n                ();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }" else (compound_statement "{\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n                ();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }" { (expression_statement "iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2" identifier = (binary_expression "*(int *)((int)register0x00000010 + -0x38) / 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) )))) / number_literal)) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;" (assignment_expression "*(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6" (pointer_expression "*(int **)((int)register0x00000010 + -0x28)" * (cast_expression "(int **)((int)register0x00000010 + -0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (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) )))) = (binary_expression "piVar7 + iVar6" identifier + identifier)) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20)" (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) )))) = (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) )))) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;" (assignment_expression "*(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6" (pointer_expression "*(int **)((int)register0x00000010 + -0x5c)" * (cast_expression "(int **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "piVar7 + iVar6" identifier + identifier)) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "__upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n                ();" (comma_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n                ()" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<(anonymous_namespace)::Target_powerpc<32" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<(anonymous_namespace)" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_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_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::__ops::_Val_comp_iter" : : identifier : : identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Target_powerpc" : : identifier) < number_literal) , (binary_expression "_true>::Sort_sections>_>\n                ()" (binary_expression "_true>::Sort_sections>_" (binary_expression "_true>::Sort_sections" identifier > (ERROR "::" : :) identifier) > identifier) > (parenthesized_expression "()" ( identifier )))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);" (assignment_expression "*(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20)" (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) )))) = (pointer_expression "*(int *)((int)register0x00000010 + -0x20)" * (cast_expression "(int *)((int)register0x00000010 + -0x20)" ( (type_descriptor "int *" primitive_type (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 "*(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;" (assignment_expression "*(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           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 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2" (binary_expression "*(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40)" (pointer_expression "*(int *)((int)register0x00000010 + -0x20)" * (cast_expression "(int *)((int)register0x00000010 + -0x20)" ( (type_descriptor "int *" primitive_type (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) )))) - (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) ))))) >> number_literal)) ;) }))) (expression_statement "iVar3 = *(int *)((int)register0x00000010 + -0x3c);" (assignment_expression "iVar3 = *(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) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x50) = iVar2;" (assignment_expression "*(int *)((int)register0x00000010 + -0x50) = iVar2" (pointer_expression "*(int *)((int)register0x00000010 + -0x50)" * (cast_expression "(int *)((int)register0x00000010 + -0x50)" ( (type_descriptor "int *" primitive_type (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) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x54) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x54) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x54)" * (cast_expression "(int **)((int)register0x00000010 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x58) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x58) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x58)" * (cast_expression "(int *)((int)register0x00000010 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);" (assignment_expression "*(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34)" (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 "iVar3 - *(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 "*(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);" (assignment_expression "*(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34)" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" * (cast_expression "(int *)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "iVar3 - *(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 "*(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x28)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (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 "*(int **)((int)register0x00000010 + -100) = piVar7;" (assignment_expression "*(int **)((int)register0x00000010 + -100) = piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -100)" * (cast_expression "(int **)((int)register0x00000010 + -100)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (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) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c)" (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 "*(undefined4 *)((int)register0x00000010 + -0x2c)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (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 "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24)" (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 + -0x24)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (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 "*(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775" (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 "__rotate_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,_int>\n              ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x6c),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x68),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -100),\n               *(int *)((int)register0x00000010 + -0x60),*(int *)((int)register0x00000010 + -0x5c),\n               *(Output_section ***)((int)register0x00000010 + -0x58),\n               *(int *)((int)register0x00000010 + -0x54));\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2;" (binary_expression "__rotate_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,_int>\n              ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x6c),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x68),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -100),\n               *(int *)((int)register0x00000010 + -0x60),*(int *)((int)register0x00000010 + -0x5c),\n               *(Output_section ***)((int)register0x00000010 + -0x58),\n               *(int *)((int)register0x00000010 + -0x54));\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2" (binary_expression "__rotate_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,_int" (binary_expression "__rotate_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold" (binary_expression "__rotate_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" (binary_expression "__rotate_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__rotate_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std" (binary_expression "__rotate_adaptive<__gnu_cxx::__normal_iterator<gold" (binary_expression "__rotate_adaptive<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_int" * (ERROR "," ,) identifier)) > (parenthesized_expression "((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x6c),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x68),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -100),\n               *(int *)((int)register0x00000010 + -0x60),*(int *)((int)register0x00000010 + -0x5c),\n               *(Output_section ***)((int)register0x00000010 + -0x58),\n               *(int *)((int)register0x00000010 + -0x54));\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2" ( (assignment_expression "(__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x6c),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x68),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -100),\n               *(int *)((int)register0x00000010 + -0x60),*(int *)((int)register0x00000010 + -0x5c),\n               *(Output_section ***)((int)register0x00000010 + -0x58),\n               *(int *)((int)register0x00000010 + -0x54));\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2" (call_expression "(__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x6c),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x68),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -100),\n               *(int *)((int)register0x00000010 + -0x60),*(int *)((int)register0x00000010 + -0x5c),\n               *(Output_section ***)((int)register0x00000010 + -0x58),\n               *(int *)((int)register0x00000010 + -0x54));\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100)" (parenthesized_expression "(__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x6c),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x68),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -100),\n               *(int *)((int)register0x00000010 + -0x60),*(int *)((int)register0x00000010 + -0x5c),\n               *(Output_section ***)((int)register0x00000010 + -0x58),\n               *(int *)((int)register0x00000010 + -0x54));\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)" ( (comma_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x6c),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x68),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -100),\n               *(int *)((int)register0x00000010 + -0x60),*(int *)((int)register0x00000010 + -0x5c),\n               *(Output_section ***)((int)register0x00000010 + -0x58),\n               *(int *)((int)register0x00000010 + -0x54));\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31)" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x6c)" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > identifier) > (ERROR ")" )) (pointer_expression "*(Output_section ***)((int)register0x00000010 + -0x6c)" * (cast_expression "(Output_section ***)((int)register0x00000010 + -0x6c)" ( (type_descriptor "Output_section ***" type_identifier (abstract_pointer_declarator "***" * (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) ))))) , (assignment_expression "(__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x68),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -100),\n               *(int *)((int)register0x00000010 + -0x60),*(int *)((int)register0x00000010 + -0x5c),\n               *(Output_section ***)((int)register0x00000010 + -0x58),\n               *(int *)((int)register0x00000010 + -0x54));\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31)" (call_expression "(__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x68),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -100),\n               *(int *)((int)register0x00000010 + -0x60),*(int *)((int)register0x00000010 + -0x5c),\n               *(Output_section ***)((int)register0x00000010 + -0x58),\n               *(int *)((int)register0x00000010 + -0x54));\n    *(uint *)((int)register0x00000010 + -0x60)" (parenthesized_expression "(__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x68),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -100),\n               *(int *)((int)register0x00000010 + -0x60),*(int *)((int)register0x00000010 + -0x5c),\n               *(Output_section ***)((int)register0x00000010 + -0x58),\n               *(int *)((int)register0x00000010 + -0x54));\n    *(uint *)" ( (comma_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x68),\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -100),\n               *(int *)((int)register0x00000010 + -0x60),*(int *)((int)register0x00000010 + -0x5c),\n               *(Output_section ***)((int)register0x00000010 + -0x58),\n               *(int *)((int)register0x00000010 + -0x54))" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -0x68)" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > identifier) > (ERROR ")" )) (pointer_expression "*(Output_section ***)((int)register0x00000010 + -0x68)" * (cast_expression "(Output_section ***)((int)register0x00000010 + -0x68)" ( (type_descriptor "Output_section ***" type_identifier (abstract_pointer_declarator "***" * (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) ))))) , (parenthesized_expression "(__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -100),\n               *(int *)((int)register0x00000010 + -0x60),*(int *)((int)register0x00000010 + -0x5c),\n               *(Output_section ***)((int)register0x00000010 + -0x58),\n               *(int *)((int)register0x00000010 + -0x54))" ( (comma_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -100),\n               *(int *)((int)register0x00000010 + -0x60),*(int *)((int)register0x00000010 + -0x5c),\n               *(Output_section ***)((int)register0x00000010 + -0x58),\n               *(int *)((int)register0x00000010 + -0x54)" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                )*(Output_section ***)((int)register0x00000010 + -100)" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > identifier) > (ERROR ")" )) (pointer_expression "*(Output_section ***)((int)register0x00000010 + -100)" * (cast_expression "(Output_section ***)((int)register0x00000010 + -100)" ( (type_descriptor "Output_section ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (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) ))))) , (comma_expression "*(int *)((int)register0x00000010 + -0x60),*(int *)((int)register0x00000010 + -0x5c),\n               *(Output_section ***)((int)register0x00000010 + -0x58),\n               *(int *)((int)register0x00000010 + -0x54)" (pointer_expression "*(int *)((int)register0x00000010 + -0x60)" * (cast_expression "(int *)((int)register0x00000010 + -0x60)" ( (type_descriptor "int *" primitive_type (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) )))) , (comma_expression "*(int *)((int)register0x00000010 + -0x5c),\n               *(Output_section ***)((int)register0x00000010 + -0x58),\n               *(int *)((int)register0x00000010 + -0x54)" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" * (cast_expression "(int *)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(Output_section ***)((int)register0x00000010 + -0x58),\n               *(int *)((int)register0x00000010 + -0x54)" (pointer_expression "*(Output_section ***)((int)register0x00000010 + -0x58)" * (cast_expression "(Output_section ***)((int)register0x00000010 + -0x58)" ( (type_descriptor "Output_section ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" * (cast_expression "(int *)((int)register0x00000010 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))))) ))) (ERROR ";\n    *(uint *" ; * ( identifier *) )) (argument_list "((int)register0x00000010 + -0x60)" ( (binary_expression "(int)register0x00000010 + -0x60" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) = (binary_expression "(uint)*(byte *)((int)register0x00000010 + -0x31)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)register0x00000010 + -0x31)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x31)" ( (binary_expression "(int)register0x00000010 + -0x31" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) (ERROR ";\n    *(int *" ; * ( primitive_type *) )) (argument_list "((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 + -0x68) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x68) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x68)" * (cast_expression "(int **)((int)register0x00000010 + -0x68)" ( (type_descriptor "int **" 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) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x6c) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x6c) = iVar6" (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) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38)" (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 + -0x38)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x38)" ( (type_descriptor "undefined4 *" type_identifier (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 "*(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798" (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) ;) (ERROR "__merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_int,_gold::Output_section**,___gnu_cxx::" (comma_expression "__merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_int,_gold" (binary_expression "__merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_int" (binary_expression "__merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" (binary_expression "__merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_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_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) , identifier) : : (binary_expression "Output_section**,___gnu_cxx" identifier * (pointer_expression "*,___gnu_cxx" * (ERROR "," ,) identifier)) : :) (labeled_statement "__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<32,_true>::Sort_sections>_>\n              ();" statement_identifier (ERROR "::_Iter_comp_iter<(anonymous_namespace):" : : (binary_expression "_Iter_comp_iter<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) :) : (expression_statement "Target_powerpc<32,_true>::Sort_sections>_>\n              ();" (comma_expression "Target_powerpc<32,_true>::Sort_sections>_>\n              ()" (binary_expression "Target_powerpc<32" identifier < number_literal) , (binary_expression "_true>::Sort_sections>_>\n              ()" (binary_expression "_true>::Sort_sections>_" (binary_expression "_true>::Sort_sections" identifier > (ERROR "::" : :) identifier) > identifier) > (parenthesized_expression "()" ( identifier )))) ;)) (expression_statement "*(int *)((int)register0x00000010 + 0xc) = iVar2;" (assignment_expression "*(int *)((int)register0x00000010 + 0xc) = iVar2" (pointer_expression "*(int *)((int)register0x00000010 + 0xc)" * (cast_expression "(int *)((int)register0x00000010 + 0xc)" ( (type_descriptor "int *" primitive_type (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 "*(int **)((int)register0x00000010 + 8) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + 8) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + 8)" * (cast_expression "(int **)((int)register0x00000010 + 8)" ( (type_descriptor "int **" primitive_type (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) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);" (assignment_expression "*(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31)" (pointer_expression "*(undefined1 *)((int)register0x00000010 + 0x10)" * (cast_expression "(undefined1 *)((int)register0x00000010 + 0x10)" ( (type_descriptor "undefined1 *" 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) )))) = (pointer_expression "*(undefined1 *)((int)register0x00000010 + -0x31)" * (cast_expression "(undefined1 *)((int)register0x00000010 + -0x31)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x31)" ( (binary_expression "(int)register0x00000010 + -0x31" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6" (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) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x3c) - iVar6" (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) )))) - identifier)) ;) (expression_statement "*(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);" (assignment_expression "*(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40)" (pointer_expression "*(undefined4 *)register0x00000010" * (cast_expression "(undefined4 *)register0x00000010" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x40)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (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 "unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);" (assignment_expression "unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14)" identifier = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x14)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (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 "unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);" (assignment_expression "unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10)" identifier = (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) ))))) ;) (expression_statement "unaff_EDI = *(int *)((int)register0x00000010 + -0xc);" (assignment_expression "unaff_EDI = *(int *)((int)register0x00000010 + -0xc)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0xc)" * (cast_expression "(int *)((int)register0x00000010 + -0xc)" ( (type_descriptor "int *" primitive_type (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 "unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);" (assignment_expression "unaff_EBP = *(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 "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -8)" ( (binary_expression "(int)register0x00000010 + -8" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);" (assignment_expression "register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4)" identifier = (cast_expression "(BADSPACEBASE *)((int)register0x00000010 + -4)" ( (type_descriptor "BADSPACEBASE *" 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) )))) ;) })) (expression_statement "iVar6 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7;" (assignment_expression "iVar6 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7" identifier = (binary_expression "(int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7" (cast_expression "(int)*(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" * (cast_expression "(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int **" primitive_type (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) ))))) - (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (*(int **)((int)register0x00000010 + -0x44) != piVar7) {\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar7;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n  }" if (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x44) != piVar7)" ( (binary_expression "*(int **)((int)register0x00000010 + -0x44) != piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" * (cast_expression "(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int **" primitive_type (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) )) (compound_statement "{\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar7;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n  }" { (expression_statement "*(int *)((int)register0x00000010 + -0x54) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" * (cast_expression "(int *)((int)register0x00000010 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x58) = piVar7;" (assignment_expression "*(int **)((int)register0x00000010 + -0x58) = piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -0x58)" * (cast_expression "(int **)((int)register0x00000010 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x5c) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x5c) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x5c)" * (cast_expression "(int **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x5c)" * (cast_expression "(void **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x58)" * (cast_expression "(void **)((int)register0x00000010 + -0x58)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x54)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x54)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "piVar4 = (int *)((int)piVar8 + iVar6);" (assignment_expression "piVar4 = (int *)((int)piVar8 + iVar6)" identifier = (cast_expression "(int *)((int)piVar8 + iVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + iVar6)" ( (binary_expression "(int)piVar8 + iVar6" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n    if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }\n  }\n  else if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    /* WARNING: Subroutine does not return */\n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    gold::do_gold_unreachable\n              (*(char **)((int)register0x00000010 + -0x5c),*(int *)((int)register0x00000010 + -0x58)\n               ,*(char **)((int)register0x00000010 + -0x54));\n  }" if (parenthesized_expression "(piVar7 == *(int **)((int)register0x00000010 + -0x40))" ( (binary_expression "piVar7 == *(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 "**" * (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) ))))) )) (compound_statement "{\n    if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }\n  }" { (if_statement "if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }" if (parenthesized_expression "(piVar8 != piVar4)" ( (binary_expression "piVar8 != piVar4" identifier != identifier) )) (compound_statement "{\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }" { (expression_statement "*(int *)((int)register0x00000010 + -0x54) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" * (cast_expression "(int *)((int)register0x00000010 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x58) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x58) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x58)" * (cast_expression "(int **)((int)register0x00000010 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" * (cast_expression "(int *)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x44) - iVar6" (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 + -0x60) = 0x7189d;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x5c)" * (cast_expression "(void **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x58)" * (cast_expression "(void **)((int)register0x00000010 + -0x58)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x54)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x54)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) }) (else_clause "else if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    /* WARNING: Subroutine does not return */\n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    gold::do_gold_unreachable\n              (*(char **)((int)register0x00000010 + -0x5c),*(int *)((int)register0x00000010 + -0x58)\n               ,*(char **)((int)register0x00000010 + -0x54));\n  }" else (if_statement "if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    /* WARNING: Subroutine does not return */\n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    gold::do_gold_unreachable\n              (*(char **)((int)register0x00000010 + -0x5c),*(int *)((int)register0x00000010 + -0x58)\n               ,*(char **)((int)register0x00000010 + -0x54));\n  }" if (parenthesized_expression "(piVar8 != piVar4)" ( (binary_expression "piVar8 != piVar4" identifier != identifier) )) (compound_statement "{\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    /* WARNING: Subroutine does not return */\n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    gold::do_gold_unreachable\n              (*(char **)((int)register0x00000010 + -0x5c),*(int *)((int)register0x00000010 + -0x58)\n               ,*(char **)((int)register0x00000010 + -0x54));\n  }" { (expression_statement "piVar7 = piVar7 + -1;" (assignment_expression "piVar7 = piVar7 + -1" identifier = (binary_expression "piVar7 + -1" identifier + number_literal)) ;) (expression_statement "piVar5 = *(int **)((int)register0x00000010 + -0x44);" (assignment_expression "piVar5 = *(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 "**" * (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 "piVar4 = piVar4 + -1;" (assignment_expression "piVar4 = piVar4 + -1" identifier = (binary_expression "piVar4 + -1" identifier + number_literal)) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x44) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x44) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" * (cast_expression "(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int **" primitive_type (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) ;) (while_statement "while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }" { (expression_statement "piVar5 = piVar5 + -1;" (assignment_expression "piVar5 = piVar5 + -1" identifier = (binary_expression "piVar5 + -1" identifier + number_literal)) ;) (expression_statement "iVar6 = *piVar4;" (assignment_expression "iVar6 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "iVar2 = *piVar7;" (assignment_expression "iVar2 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (if_statement "if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;" if (parenthesized_expression "((*(byte *)(iVar6 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar6 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar6 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar6 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar6 + 0x1c)" * (cast_expression "(byte *)(iVar6 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;" if (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar2 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar2 + 0x1c)" * (cast_expression "(byte *)(iVar2 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }" if (parenthesized_expression "(*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4)))" ( (binary_expression "*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (binary_expression "*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8)" (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) || (binary_expression "*(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (binary_expression "*(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8)" (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) - (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) < (call_expression "(uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" ( (binary_expression "*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4)" (pointer_expression "*(uint *)(iVar6 + 4)" * (cast_expression "(uint *)(iVar6 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar2 + 4)" * (cast_expression "(uint *)(iVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ))))) )) (compound_statement "{\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }" { (expression_statement "*piVar5 = iVar2;" (assignment_expression "*piVar5 = iVar2" (pointer_expression "*piVar5" * identifier) = identifier) ;) (if_statement "if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }" if (parenthesized_expression "(piVar7 == *(int **)((int)register0x00000010 + -0x40))" ( (binary_expression "piVar7 == *(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 "**" * (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) ))))) )) (compound_statement "{\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }" { (expression_statement "piVar7 = *(int **)((int)register0x00000010 + -0x44);" (assignment_expression "piVar7 = *(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 "**" * (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) ))))) ;) (if_statement "if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }" if (parenthesized_expression "(piVar7 != piVar4 + 1)" ( (binary_expression "piVar7 != piVar4 + 1" identifier != (binary_expression "piVar4 + 1" identifier + number_literal)) )) (compound_statement "{\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }" { (expression_statement "iVar6 = (int)(piVar4 + 1) - (int)piVar7;" (assignment_expression "iVar6 = (int)(piVar4 + 1) - (int)piVar7" identifier = (binary_expression "(int)(piVar4 + 1) - (int)piVar7" (cast_expression "(int)(piVar4 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar4 + 1)" ( (binary_expression "piVar4 + 1" identifier + number_literal) ))) - (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x54) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" * (cast_expression "(int *)((int)register0x00000010 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x58) = piVar7;" (assignment_expression "*(int **)((int)register0x00000010 + -0x58) = piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -0x58)" * (cast_expression "(int **)((int)register0x00000010 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" * (cast_expression "(int *)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)piVar5 - iVar6" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x5c)" * (cast_expression "(void **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x58)" * (cast_expression "(void **)((int)register0x00000010 + -0x58)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x54)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x54)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })) (expression_statement "piVar7 = piVar7 + -1;" (assignment_expression "piVar7 = piVar7 + -1" identifier = (binary_expression "piVar7 + -1" identifier + number_literal)) ;) }) (else_clause "else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }" else (compound_statement "{\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }" { (expression_statement "*piVar5 = iVar6;" (assignment_expression "*piVar5 = iVar6" (pointer_expression "*piVar5" * identifier) = identifier) ;) (if_statement "if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }" if (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x44) == piVar4)" ( (binary_expression "*(int **)((int)register0x00000010 + -0x44) == piVar4" (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" * (cast_expression "(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int **" primitive_type (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) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "piVar4 = piVar4 + -1;" (assignment_expression "piVar4 = piVar4 + -1" identifier = (binary_expression "piVar4 + -1" identifier + number_literal)) ;) }))) })) (labeled_statement "LAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;" statement_identifier : (expression_statement "*(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" * (cast_expression "(int *)((int)register0x00000010 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x34) + -0x11dd0c" (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)) ;)) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x58)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;" (assignment_expression "*(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" * (cast_expression "(int *)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x34) + -0x11d1a4" (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)) ;) comment (expression_statement "*(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;" (assignment_expression "*(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4" (pointer_expression "*(undefined **)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined **)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (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) )))) = (pointer_expression "&UNK_000718c4" & identifier)) ;) (labeled_statement "gold::do_gold_unreachable\n              (*(char **)((int)register0x00000010 + -0x5c),*(int *)((int)register0x00000010 + -0x58)\n               ,*(char **)((int)register0x00000010 + -0x54));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n              (*(char **)((int)register0x00000010 + -0x5c),*(int *)((int)register0x00000010 + -0x58)\n               ,*(char **)((int)register0x00000010 + -0x54));" (call_expression "do_gold_unreachable\n              (*(char **)((int)register0x00000010 + -0x5c),*(int *)((int)register0x00000010 + -0x58)\n               ,*(char **)((int)register0x00000010 + -0x54))" identifier (argument_list "(*(char **)((int)register0x00000010 + -0x5c),*(int *)((int)register0x00000010 + -0x58)\n               ,*(char **)((int)register0x00000010 + -0x54))" ( (pointer_expression "*(char **)((int)register0x00000010 + -0x5c)" * (cast_expression "(char **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)register0x00000010 + -0x58)" * (cast_expression "(int *)((int)register0x00000010 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)register0x00000010 + -0x54)" * (cast_expression "(char **)((int)register0x00000010 + -0x54)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })))) (return_statement "return;" return ;) (labeled_statement "joined_r0x000715ef:\n  if ((bVar1 & 1) == 0) goto LAB_000718a5;" statement_identifier : (if_statement "if ((bVar1 & 1) == 0) goto LAB_000718a5;" if (parenthesized_expression "((bVar1 & 1) == 0)" ( (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000718a5;" goto statement_identifier ;))) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_000718a5;" if (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar2 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar2 + 0x1c)" * (cast_expression "(byte *)(iVar2 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000718a5;" goto statement_identifier ;)) (if_statement "if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n    *piVar4 = iVar6;\n    piVar5 = piVar5 + 1;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  else {\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }" if (parenthesized_expression "(*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4)))" ( (binary_expression "*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (binary_expression "*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8)" (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) || (binary_expression "*(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (binary_expression "*(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8)" (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) - (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) < (call_expression "(uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" ( (binary_expression "*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4)" (pointer_expression "*(uint *)(iVar6 + 4)" * (cast_expression "(uint *)(iVar6 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar2 + 4)" * (cast_expression "(uint *)(iVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ))))) )) (compound_statement "{\n    *piVar4 = iVar6;\n    piVar5 = piVar5 + 1;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }" { (expression_statement "*piVar4 = iVar6;" (assignment_expression "*piVar4 = iVar6" (pointer_expression "*piVar4" * identifier) = identifier) ;) (expression_statement "piVar5 = piVar5 + 1;" (assignment_expression "piVar5 = piVar5 + 1" identifier = (binary_expression "piVar5 + 1" identifier + number_literal)) ;) (if_statement "if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }" if (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x40) == piVar8)" ( (binary_expression "*(int **)((int)register0x00000010 + -0x40) == piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x40)" * (cast_expression "(int **)((int)register0x00000010 + -0x40)" ( (type_descriptor "int **" primitive_type (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      return;\n    }" { (return_statement "return;" return ;) })) }) (else_clause "else {\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }" else (compound_statement "{\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }" { (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) (expression_statement "*piVar4 = iVar2;" (assignment_expression "*piVar4 = iVar2" (pointer_expression "*piVar4" * identifier) = identifier) ;) (if_statement "if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }" if (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x40) == piVar8)" ( (binary_expression "*(int **)((int)register0x00000010 + -0x40) == piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x40)" * (cast_expression "(int **)((int)register0x00000010 + -0x40)" ( (type_descriptor "int **" primitive_type (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      return;\n    }" { (return_statement "return;" return ;) })) }))) (expression_statement "piVar4 = piVar4 + 1;" (assignment_expression "piVar4 = piVar4 + 1" identifier = (binary_expression "piVar4 + 1" identifier + number_literal)) ;) (if_statement "if (*(int **)((int)register0x00000010 + -0x44) == piVar5) {\n    iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;\nLAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar8;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n    return;\n  }" if (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x44) == piVar5)" ( (binary_expression "*(int **)((int)register0x00000010 + -0x44) == piVar5" (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" * (cast_expression "(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int **" primitive_type (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) )) (compound_statement "{\n    iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;\nLAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar8;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n    return;\n  }" { (expression_statement "iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8" identifier = (binary_expression "*(int *)((int)register0x00000010 + -0x40) - (int)piVar8" (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)piVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (labeled_statement "LAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;" statement_identifier : (expression_statement "*(int *)((int)register0x00000010 + -0x54) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" * (cast_expression "(int *)((int)register0x00000010 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int **)((int)register0x00000010 + -0x58) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x58) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x58)" * (cast_expression "(int **)((int)register0x00000010 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x5c) = piVar4;" (assignment_expression "*(int **)((int)register0x00000010 + -0x5c) = piVar4" (pointer_expression "*(int **)((int)register0x00000010 + -0x5c)" * (cast_expression "(int **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x5c)" * (cast_expression "(void **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x58)" * (cast_expression "(void **)((int)register0x00000010 + -0x58)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x54)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x54)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar6 = *piVar5;" (assignment_expression "iVar6 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "iVar2 = *piVar8;" (assignment_expression "iVar2 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "bVar1 = *(byte *)(iVar6 + 0x1c);" (assignment_expression "bVar1 = *(byte *)(iVar6 + 0x1c)" identifier = (pointer_expression "*(byte *)(iVar6 + 0x1c)" * (cast_expression "(byte *)(iVar6 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x000715ef;" goto statement_identifier ;) (ERROR "}" }))
(translation_unit "void FUN_00071550(void)\n\n{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 extraout_ECX;\n  int *piVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 unaff_EBX;\n  undefined4 unaff_EBP;\n  int *piVar8;\n  undefined4 unaff_ESI;\n  int unaff_EDI;\n  undefined8 uVar9;\n  \n  while( true ) {\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(int *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557;\n    uVar9 = FUN_000b484e();\n    piVar7 = (int *)((ulonglong)uVar9 >> 0x20);\n    piVar4 = (int *)uVar9;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    iVar6 = *(int *)((int)register0x00000010 + 8);\n    iVar2 = *(int *)((int)register0x00000010 + 0x10);\n    *(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;\n    piVar8 = *(int **)((int)register0x00000010 + 0xc);\n    *(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;\n    *(int **)((int)register0x00000010 + -0x40) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);\n    iVar3 = iVar6;\n    if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }\n    *(int *)((int)register0x00000010 + -0x38) = iVar6;\n    *(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);\n    if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }\n    if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;\n    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      FUN_0005cdd0();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }\n    iVar3 = *(int *)((int)register0x00000010 + -0x3c);\n    *(int *)((int)register0x00000010 + -0x50) = iVar2;\n    *(int **)((int)register0x00000010 + -0x54) = piVar8;\n    *(int *)((int)register0x00000010 + -0x58) = iVar6;\n    *(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);\n    *(int **)((int)register0x00000010 + -100) = piVar7;\n    *(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);\n    *(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);\n    *(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;\n    FUN_000affe0();\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2;\n    *(int **)((int)register0x00000010 + -0x68) = piVar8;\n    *(int *)((int)register0x00000010 + -0x6c) = iVar6;\n    *(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);\n    *(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;\n    FUN_00071550();\n    *(int *)((int)register0x00000010 + 0xc) = iVar2;\n    *(int **)((int)register0x00000010 + 8) = piVar8;\n    *(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;\n    *(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);\n    unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);\n    unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);\n    unaff_EDI = *(int *)((int)register0x00000010 + -0xc);\n    unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);\n    register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);\n  }\n  iVar6 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7;\n  if (*(int **)((int)register0x00000010 + -0x44) != piVar7) {\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar7;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n  }\n  piVar4 = (int *)((int)piVar8 + iVar6);\n  if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n    if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }\n  }\n  else if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    \n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    FUN_000da200();\n  }\n  return;\njoined_r0x000715ef:\n  if ((bVar1 & 1) == 0) goto LAB_000718a5;\n  if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_000718a5;\n  if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n    *piVar4 = iVar6;\n    piVar5 = piVar5 + 1;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  else {\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  piVar4 = piVar4 + 1;\n  if (*(int **)((int)register0x00000010 + -0x44) == piVar5) {\n    iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;\nLAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar8;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n    return;\n  }\n  iVar6 = *piVar5;\n  iVar2 = *piVar8;\n  bVar1 = *(byte *)(iVar6 + 0x1c);\n  goto joined_r0x000715ef;\n}\n\n" (function_definition "void FUN_00071550(void)\n\n{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 extraout_ECX;\n  int *piVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 unaff_EBX;\n  undefined4 unaff_EBP;\n  int *piVar8;\n  undefined4 unaff_ESI;\n  int unaff_EDI;\n  undefined8 uVar9;\n  \n  while( true ) {\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(int *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557;\n    uVar9 = FUN_000b484e();\n    piVar7 = (int *)((ulonglong)uVar9 >> 0x20);\n    piVar4 = (int *)uVar9;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    iVar6 = *(int *)((int)register0x00000010 + 8);\n    iVar2 = *(int *)((int)register0x00000010 + 0x10);\n    *(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;\n    piVar8 = *(int **)((int)register0x00000010 + 0xc);\n    *(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;\n    *(int **)((int)register0x00000010 + -0x40) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);\n    iVar3 = iVar6;\n    if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }\n    *(int *)((int)register0x00000010 + -0x38) = iVar6;\n    *(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);\n    if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }\n    if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;\n    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      FUN_0005cdd0();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }\n    iVar3 = *(int *)((int)register0x00000010 + -0x3c);\n    *(int *)((int)register0x00000010 + -0x50) = iVar2;\n    *(int **)((int)register0x00000010 + -0x54) = piVar8;\n    *(int *)((int)register0x00000010 + -0x58) = iVar6;\n    *(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);\n    *(int **)((int)register0x00000010 + -100) = piVar7;\n    *(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);\n    *(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);\n    *(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;\n    FUN_000affe0();\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2;\n    *(int **)((int)register0x00000010 + -0x68) = piVar8;\n    *(int *)((int)register0x00000010 + -0x6c) = iVar6;\n    *(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);\n    *(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;\n    FUN_00071550();\n    *(int *)((int)register0x00000010 + 0xc) = iVar2;\n    *(int **)((int)register0x00000010 + 8) = piVar8;\n    *(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;\n    *(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);\n    unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);\n    unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);\n    unaff_EDI = *(int *)((int)register0x00000010 + -0xc);\n    unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);\n    register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);\n  }\n  iVar6 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7;\n  if (*(int **)((int)register0x00000010 + -0x44) != piVar7) {\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar7;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n  }\n  piVar4 = (int *)((int)piVar8 + iVar6);\n  if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n    if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }\n  }\n  else if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    \n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    FUN_000da200();\n  }\n  return;\njoined_r0x000715ef:\n  if ((bVar1 & 1) == 0) goto LAB_000718a5;\n  if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_000718a5;\n  if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n    *piVar4 = iVar6;\n    piVar5 = piVar5 + 1;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  else {\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  piVar4 = piVar4 + 1;\n  if (*(int **)((int)register0x00000010 + -0x44) == piVar5) {\n    iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;\nLAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar8;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n    return;\n  }\n  iVar6 = *piVar5;\n  iVar2 = *piVar8;\n  bVar1 = *(byte *)(iVar6 + 0x1c);\n  goto joined_r0x000715ef;\n}" primitive_type (function_declarator "FUN_00071550(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 extraout_ECX;\n  int *piVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 unaff_EBX;\n  undefined4 unaff_EBP;\n  int *piVar8;\n  undefined4 unaff_ESI;\n  int unaff_EDI;\n  undefined8 uVar9;\n  \n  while( true ) {\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(int *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557;\n    uVar9 = FUN_000b484e();\n    piVar7 = (int *)((ulonglong)uVar9 >> 0x20);\n    piVar4 = (int *)uVar9;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    iVar6 = *(int *)((int)register0x00000010 + 8);\n    iVar2 = *(int *)((int)register0x00000010 + 0x10);\n    *(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;\n    piVar8 = *(int **)((int)register0x00000010 + 0xc);\n    *(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;\n    *(int **)((int)register0x00000010 + -0x40) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);\n    iVar3 = iVar6;\n    if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }\n    *(int *)((int)register0x00000010 + -0x38) = iVar6;\n    *(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);\n    if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }\n    if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;\n    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      FUN_0005cdd0();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }\n    iVar3 = *(int *)((int)register0x00000010 + -0x3c);\n    *(int *)((int)register0x00000010 + -0x50) = iVar2;\n    *(int **)((int)register0x00000010 + -0x54) = piVar8;\n    *(int *)((int)register0x00000010 + -0x58) = iVar6;\n    *(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);\n    *(int **)((int)register0x00000010 + -100) = piVar7;\n    *(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);\n    *(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);\n    *(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;\n    FUN_000affe0();\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2;\n    *(int **)((int)register0x00000010 + -0x68) = piVar8;\n    *(int *)((int)register0x00000010 + -0x6c) = iVar6;\n    *(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);\n    *(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;\n    FUN_00071550();\n    *(int *)((int)register0x00000010 + 0xc) = iVar2;\n    *(int **)((int)register0x00000010 + 8) = piVar8;\n    *(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;\n    *(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);\n    unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);\n    unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);\n    unaff_EDI = *(int *)((int)register0x00000010 + -0xc);\n    unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);\n    register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);\n  }\n  iVar6 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7;\n  if (*(int **)((int)register0x00000010 + -0x44) != piVar7) {\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar7;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n  }\n  piVar4 = (int *)((int)piVar8 + iVar6);\n  if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n    if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }\n  }\n  else if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    \n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    FUN_000da200();\n  }\n  return;\njoined_r0x000715ef:\n  if ((bVar1 & 1) == 0) goto LAB_000718a5;\n  if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_000718a5;\n  if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n    *piVar4 = iVar6;\n    piVar5 = piVar5 + 1;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  else {\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  piVar4 = piVar4 + 1;\n  if (*(int **)((int)register0x00000010 + -0x44) == piVar5) {\n    iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;\nLAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar8;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n    return;\n  }\n  iVar6 = *piVar5;\n  iVar2 = *piVar8;\n  bVar1 = *(byte *)(iVar6 + 0x1c);\n  goto joined_r0x000715ef;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 unaff_EBX;" type_identifier identifier ;) (declaration "undefined4 unaff_EBP;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined4 unaff_ESI;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (while_statement "while( true ) {\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(int *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557;\n    uVar9 = FUN_000b484e();\n    piVar7 = (int *)((ulonglong)uVar9 >> 0x20);\n    piVar4 = (int *)uVar9;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    iVar6 = *(int *)((int)register0x00000010 + 8);\n    iVar2 = *(int *)((int)register0x00000010 + 0x10);\n    *(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;\n    piVar8 = *(int **)((int)register0x00000010 + 0xc);\n    *(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;\n    *(int **)((int)register0x00000010 + -0x40) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);\n    iVar3 = iVar6;\n    if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }\n    *(int *)((int)register0x00000010 + -0x38) = iVar6;\n    *(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);\n    if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }\n    if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;\n    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      FUN_0005cdd0();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }\n    iVar3 = *(int *)((int)register0x00000010 + -0x3c);\n    *(int *)((int)register0x00000010 + -0x50) = iVar2;\n    *(int **)((int)register0x00000010 + -0x54) = piVar8;\n    *(int *)((int)register0x00000010 + -0x58) = iVar6;\n    *(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);\n    *(int **)((int)register0x00000010 + -100) = piVar7;\n    *(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);\n    *(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);\n    *(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;\n    FUN_000affe0();\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2;\n    *(int **)((int)register0x00000010 + -0x68) = piVar8;\n    *(int *)((int)register0x00000010 + -0x6c) = iVar6;\n    *(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);\n    *(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;\n    FUN_00071550();\n    *(int *)((int)register0x00000010 + 0xc) = iVar2;\n    *(int **)((int)register0x00000010 + 8) = piVar8;\n    *(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;\n    *(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);\n    unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);\n    unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);\n    unaff_EDI = *(int *)((int)register0x00000010 + -0xc);\n    unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);\n    register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(int *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557;\n    uVar9 = FUN_000b484e();\n    piVar7 = (int *)((ulonglong)uVar9 >> 0x20);\n    piVar4 = (int *)uVar9;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    iVar6 = *(int *)((int)register0x00000010 + 8);\n    iVar2 = *(int *)((int)register0x00000010 + 0x10);\n    *(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;\n    piVar8 = *(int **)((int)register0x00000010 + 0xc);\n    *(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;\n    *(int **)((int)register0x00000010 + -0x40) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);\n    iVar3 = iVar6;\n    if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }\n    *(int *)((int)register0x00000010 + -0x38) = iVar6;\n    *(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);\n    if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }\n    if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;\n    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      FUN_0005cdd0();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }\n    iVar3 = *(int *)((int)register0x00000010 + -0x3c);\n    *(int *)((int)register0x00000010 + -0x50) = iVar2;\n    *(int **)((int)register0x00000010 + -0x54) = piVar8;\n    *(int *)((int)register0x00000010 + -0x58) = iVar6;\n    *(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);\n    *(int **)((int)register0x00000010 + -100) = piVar7;\n    *(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);\n    *(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);\n    *(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;\n    FUN_000affe0();\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2;\n    *(int **)((int)register0x00000010 + -0x68) = piVar8;\n    *(int *)((int)register0x00000010 + -0x6c) = iVar6;\n    *(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);\n    *(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;\n    FUN_00071550();\n    *(int *)((int)register0x00000010 + 0xc) = iVar2;\n    *(int **)((int)register0x00000010 + 8) = piVar8;\n    *(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;\n    *(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);\n    unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);\n    unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);\n    unaff_EDI = *(int *)((int)register0x00000010 + -0xc);\n    unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);\n    register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);\n  }" { (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 "*(int *)((int)register0x00000010 + -8) = unaff_EDI;" (assignment_expression "*(int *)((int)register0x00000010 + -8) = unaff_EDI" (pointer_expression "*(int *)((int)register0x00000010 + -8)" * (cast_expression "(int *)((int)register0x00000010 + -8)" ( (type_descriptor "int *" primitive_type (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) = 0x71557;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557" (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) )))) = number_literal) ;) (expression_statement "uVar9 = FUN_000b484e();" (assignment_expression "uVar9 = FUN_000b484e()" identifier = (call_expression "FUN_000b484e()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar7 = (int *)((ulonglong)uVar9 >> 0x20);" (assignment_expression "piVar7 = (int *)((ulonglong)uVar9 >> 0x20)" identifier = (cast_expression "(int *)((ulonglong)uVar9 >> 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar9 >> 0x20)" ( (binary_expression "(ulonglong)uVar9 >> 0x20" (cast_expression "(ulonglong)uVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "piVar4 = (int *)uVar9;" (assignment_expression "piVar4 = (int *)uVar9" identifier = (cast_expression "(int *)uVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) 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 "iVar6 = *(int *)((int)register0x00000010 + 8);" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + 8)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + 8)" * (cast_expression "(int *)((int)register0x00000010 + 8)" ( (type_descriptor "int *" primitive_type (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 "iVar2 = *(int *)((int)register0x00000010 + 0x10);" (assignment_expression "iVar2 = *(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 "*(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x44)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (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 "piVar8 = *(int **)((int)register0x00000010 + 0xc);" (assignment_expression "piVar8 = *(int **)((int)register0x00000010 + 0xc)" identifier = (pointer_expression "*(int **)((int)register0x00000010 + 0xc)" * (cast_expression "(int **)((int)register0x00000010 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (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 "*(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9" (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 "unaff_EDI + 0x3a2aa9" identifier + number_literal)) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x40) = piVar4;" (assignment_expression "*(int **)((int)register0x00000010 + -0x40) = piVar4" (pointer_expression "*(int **)((int)register0x00000010 + -0x40)" * (cast_expression "(int **)((int)register0x00000010 + -0x40)" ( (type_descriptor "int **" primitive_type (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) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x3c)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (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) )))) = (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) ))))) ;) (expression_statement "iVar3 = iVar6;" (assignment_expression "iVar3 = iVar6" identifier = identifier) ;) (if_statement "if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }" if (parenthesized_expression "(iVar2 < iVar6)" ( (binary_expression "iVar2 < iVar6" identifier < identifier) )) (compound_statement "{\n      iVar3 = iVar2;\n    }" { (expression_statement "iVar3 = iVar2;" (assignment_expression "iVar3 = iVar2" identifier = identifier) ;) })) (expression_statement "*(int *)((int)register0x00000010 + -0x38) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x38) = iVar6" (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) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);" (assignment_expression "*(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14)" (pointer_expression "*(undefined1 *)((int)register0x00000010 + -0x2d)" * (cast_expression "(undefined1 *)((int)register0x00000010 + -0x2d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x2d)" ( (binary_expression "(int)register0x00000010 + -0x2d" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)register0x00000010 + 0x14)" * (cast_expression "(undefined1 *)((int)register0x00000010 + 0x14)" ( (type_descriptor "undefined1 *" type_identifier (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) ))))) ;) (if_statement "if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }" if (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x3c) <= iVar3)" ( (binary_expression "*(int *)((int)register0x00000010 + -0x3c) <= iVar3" (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) )))) <= identifier) )) (compound_statement "{\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }" { (expression_statement "iVar6 = (int)piVar7 - (int)piVar4;" (assignment_expression "iVar6 = (int)piVar7 - (int)piVar4" identifier = (binary_expression "(int)piVar7 - (int)piVar4" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "piVar5 = piVar7;" (assignment_expression "piVar5 = piVar7" identifier = identifier) ;) (if_statement "if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }" if (parenthesized_expression "(piVar7 != piVar4)" ( (binary_expression "piVar7 != piVar4" identifier != identifier) )) (compound_statement "{\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }" { (expression_statement "*(int **)((int)register0x00000010 + -0x3c) = piVar7;" (assignment_expression "*(int **)((int)register0x00000010 + -0x3c) = piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -0x3c)" * (cast_expression "(int **)((int)register0x00000010 + -0x3c)" ( (type_descriptor "int **" primitive_type (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) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x54) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" * (cast_expression "(int *)((int)register0x00000010 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x40) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x40) = iVar6" (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) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x58) = piVar4;" (assignment_expression "*(int **)((int)register0x00000010 + -0x58) = piVar4" (pointer_expression "*(int **)((int)register0x00000010 + -0x58)" * (cast_expression "(int **)((int)register0x00000010 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x5c) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x5c) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x5c)" * (cast_expression "(int **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x5c)" * (cast_expression "(void **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x58)" * (cast_expression "(void **)((int)register0x00000010 + -0x58)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x54)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x54)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "piVar5 = *(int **)((int)register0x00000010 + -0x3c);" (assignment_expression "piVar5 = *(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 "**" * (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) ))))) ;) (expression_statement "iVar6 = *(int *)((int)register0x00000010 + -0x40);" (assignment_expression "iVar6 = *(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 + -0x40) = (int *)((int)piVar8 + iVar6);" (assignment_expression "*(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6)" (pointer_expression "*(int **)((int)register0x00000010 + -0x40)" * (cast_expression "(int **)((int)register0x00000010 + -0x40)" ( (type_descriptor "int **" primitive_type (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 *)((int)piVar8 + iVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + iVar6)" ( (binary_expression "(int)piVar8 + iVar6" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }" if (parenthesized_expression "(piVar8 == (int *)((int)piVar8 + iVar6))" ( (binary_expression "piVar8 == (int *)((int)piVar8 + iVar6)" identifier == (cast_expression "(int *)((int)piVar8 + iVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + iVar6)" ( (binary_expression "(int)piVar8 + iVar6" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (if_statement "if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;" if (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x44) == piVar7)" ( (binary_expression "*(int **)((int)register0x00000010 + -0x44) == piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" * (cast_expression "(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int **" primitive_type (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) )) (goto_statement "goto LAB_000717de;" goto statement_identifier ;)) (expression_statement "iVar6 = *piVar7;" (assignment_expression "iVar6 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "iVar2 = *piVar8;" (assignment_expression "iVar2 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "bVar1 = *(byte *)(iVar6 + 0x1c);" (assignment_expression "bVar1 = *(byte *)(iVar6 + 0x1c)" identifier = (pointer_expression "*(byte *)(iVar6 + 0x1c)" * (cast_expression "(byte *)(iVar6 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x000715ef;" goto statement_identifier ;) })) (if_statement "if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;" if (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x38) <= iVar2)" ( (binary_expression "*(int *)((int)register0x00000010 + -0x38) <= iVar2" (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) )))) <= identifier) )) (break_statement "break;" break ;)) (if_statement "if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      FUN_0005cdd0();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }" if (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c))" ( (binary_expression "*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)" (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) )))) < (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) ))))) )) (compound_statement "{\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      FUN_0005cdd0();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }" { (expression_statement "iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2" identifier = (binary_expression "*(int *)((int)register0x00000010 + -0x3c) / 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) )))) / number_literal)) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x34) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x34) = iVar6" (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) )))) = identifier) ;) (expression_statement "iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4" identifier = (binary_expression "*(int *)((int)register0x00000010 + -0x40) + iVar6 * 4" (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 "iVar6 * 4" identifier * number_literal))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x2c) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x2c) = iVar6" (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 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20)" (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) )))) = (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) )))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x5c) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x5c) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" * (cast_expression "(int *)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "FUN_0005cdd0();" (call_expression "FUN_0005cdd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);" (assignment_expression "*(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20)" (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) )))) = (pointer_expression "*(int *)((int)register0x00000010 + -0x20)" * (cast_expression "(int *)((int)register0x00000010 + -0x20)" ( (type_descriptor "int *" primitive_type (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 "iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2" identifier = (binary_expression "*(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2" (binary_expression "*(int *)((int)register0x00000010 + -0x20) - (int)piVar7" (pointer_expression "*(int *)((int)register0x00000010 + -0x20)" * (cast_expression "(int *)((int)register0x00000010 + -0x20)" ( (type_descriptor "int *" primitive_type (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) )))) - (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) }) (else_clause "else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }" else (compound_statement "{\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }" { (expression_statement "iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2" identifier = (binary_expression "*(int *)((int)register0x00000010 + -0x38) / 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) )))) / number_literal)) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;" (assignment_expression "*(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6" (pointer_expression "*(int **)((int)register0x00000010 + -0x28)" * (cast_expression "(int **)((int)register0x00000010 + -0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (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) )))) = (binary_expression "piVar7 + iVar6" identifier + identifier)) ;) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20)" (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) )))) = (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) )))) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;" (assignment_expression "*(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6" (pointer_expression "*(int **)((int)register0x00000010 + -0x5c)" * (cast_expression "(int **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "piVar7 + iVar6" identifier + identifier)) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "FUN_0005cef0();" (call_expression "FUN_0005cef0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);" (assignment_expression "*(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20)" (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) )))) = (pointer_expression "*(int *)((int)register0x00000010 + -0x20)" * (cast_expression "(int *)((int)register0x00000010 + -0x20)" ( (type_descriptor "int *" primitive_type (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 "*(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;" (assignment_expression "*(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           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 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2" (binary_expression "*(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40)" (pointer_expression "*(int *)((int)register0x00000010 + -0x20)" * (cast_expression "(int *)((int)register0x00000010 + -0x20)" ( (type_descriptor "int *" primitive_type (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) )))) - (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) ))))) >> number_literal)) ;) }))) (expression_statement "iVar3 = *(int *)((int)register0x00000010 + -0x3c);" (assignment_expression "iVar3 = *(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) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x50) = iVar2;" (assignment_expression "*(int *)((int)register0x00000010 + -0x50) = iVar2" (pointer_expression "*(int *)((int)register0x00000010 + -0x50)" * (cast_expression "(int *)((int)register0x00000010 + -0x50)" ( (type_descriptor "int *" primitive_type (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) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x54) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x54) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x54)" * (cast_expression "(int **)((int)register0x00000010 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x58) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x58) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x58)" * (cast_expression "(int *)((int)register0x00000010 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);" (assignment_expression "*(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34)" (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 "iVar3 - *(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 "*(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);" (assignment_expression "*(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34)" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" * (cast_expression "(int *)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "iVar3 - *(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 "*(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x28)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (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 "*(int **)((int)register0x00000010 + -100) = piVar7;" (assignment_expression "*(int **)((int)register0x00000010 + -100) = piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -100)" * (cast_expression "(int **)((int)register0x00000010 + -100)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (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) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c)" (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 "*(undefined4 *)((int)register0x00000010 + -0x2c)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (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 "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24)" (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 + -0x24)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (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 "*(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775" (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 "FUN_000affe0();" (call_expression "FUN_000affe0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);" (assignment_expression "*(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31)" (pointer_expression "*(uint *)((int)register0x00000010 + -0x60)" * (cast_expression "(uint *)((int)register0x00000010 + -0x60)" ( (type_descriptor "uint *" 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) )))) = (binary_expression "(uint)*(byte *)((int)register0x00000010 + -0x31)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)register0x00000010 + -0x31)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x31)" ( (binary_expression "(int)register0x00000010 + -0x31" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + -100) = iVar2;" (assignment_expression "*(int *)((int)register0x00000010 + -100) = iVar2" (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 + -0x68) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x68) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x68)" * (cast_expression "(int **)((int)register0x00000010 + -0x68)" ( (type_descriptor "int **" 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) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x6c) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x6c) = iVar6" (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) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38)" (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 + -0x38)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x38)" ( (type_descriptor "undefined4 *" type_identifier (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 "*(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798" (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 "FUN_00071550();" (call_expression "FUN_00071550()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(int *)((int)register0x00000010 + 0xc) = iVar2;" (assignment_expression "*(int *)((int)register0x00000010 + 0xc) = iVar2" (pointer_expression "*(int *)((int)register0x00000010 + 0xc)" * (cast_expression "(int *)((int)register0x00000010 + 0xc)" ( (type_descriptor "int *" primitive_type (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 "*(int **)((int)register0x00000010 + 8) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + 8) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + 8)" * (cast_expression "(int **)((int)register0x00000010 + 8)" ( (type_descriptor "int **" primitive_type (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) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);" (assignment_expression "*(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31)" (pointer_expression "*(undefined1 *)((int)register0x00000010 + 0x10)" * (cast_expression "(undefined1 *)((int)register0x00000010 + 0x10)" ( (type_descriptor "undefined1 *" 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) )))) = (pointer_expression "*(undefined1 *)((int)register0x00000010 + -0x31)" * (cast_expression "(undefined1 *)((int)register0x00000010 + -0x31)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x31)" ( (binary_expression "(int)register0x00000010 + -0x31" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6" (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) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x3c) - iVar6" (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) )))) - identifier)) ;) (expression_statement "*(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);" (assignment_expression "*(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40)" (pointer_expression "*(undefined4 *)register0x00000010" * (cast_expression "(undefined4 *)register0x00000010" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x40)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (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 "unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);" (assignment_expression "unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14)" identifier = (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x14)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (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 "unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);" (assignment_expression "unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10)" identifier = (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) ))))) ;) (expression_statement "unaff_EDI = *(int *)((int)register0x00000010 + -0xc);" (assignment_expression "unaff_EDI = *(int *)((int)register0x00000010 + -0xc)" identifier = (pointer_expression "*(int *)((int)register0x00000010 + -0xc)" * (cast_expression "(int *)((int)register0x00000010 + -0xc)" ( (type_descriptor "int *" primitive_type (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 "unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);" (assignment_expression "unaff_EBP = *(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 "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -8)" ( (binary_expression "(int)register0x00000010 + -8" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);" (assignment_expression "register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4)" identifier = (cast_expression "(BADSPACEBASE *)((int)register0x00000010 + -4)" ( (type_descriptor "BADSPACEBASE *" 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) )))) ;) })) (expression_statement "iVar6 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7;" (assignment_expression "iVar6 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7" identifier = (binary_expression "(int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7" (cast_expression "(int)*(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" * (cast_expression "(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int **" primitive_type (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) ))))) - (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (*(int **)((int)register0x00000010 + -0x44) != piVar7) {\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar7;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n  }" if (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x44) != piVar7)" ( (binary_expression "*(int **)((int)register0x00000010 + -0x44) != piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" * (cast_expression "(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int **" primitive_type (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) )) (compound_statement "{\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar7;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n  }" { (expression_statement "*(int *)((int)register0x00000010 + -0x54) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" * (cast_expression "(int *)((int)register0x00000010 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x58) = piVar7;" (assignment_expression "*(int **)((int)register0x00000010 + -0x58) = piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -0x58)" * (cast_expression "(int **)((int)register0x00000010 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x5c) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x5c) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x5c)" * (cast_expression "(int **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x5c)" * (cast_expression "(void **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x58)" * (cast_expression "(void **)((int)register0x00000010 + -0x58)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x54)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x54)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "piVar4 = (int *)((int)piVar8 + iVar6);" (assignment_expression "piVar4 = (int *)((int)piVar8 + iVar6)" identifier = (cast_expression "(int *)((int)piVar8 + iVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + iVar6)" ( (binary_expression "(int)piVar8 + iVar6" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n    if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }\n  }\n  else if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    \n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    FUN_000da200();\n  }" if (parenthesized_expression "(piVar7 == *(int **)((int)register0x00000010 + -0x40))" ( (binary_expression "piVar7 == *(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 "**" * (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) ))))) )) (compound_statement "{\n    if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }\n  }" { (if_statement "if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }" if (parenthesized_expression "(piVar8 != piVar4)" ( (binary_expression "piVar8 != piVar4" identifier != identifier) )) (compound_statement "{\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }" { (expression_statement "*(int *)((int)register0x00000010 + -0x54) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" * (cast_expression "(int *)((int)register0x00000010 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x58) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x58) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x58)" * (cast_expression "(int **)((int)register0x00000010 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" * (cast_expression "(int *)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x44) - iVar6" (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 + -0x60) = 0x7189d;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x5c)" * (cast_expression "(void **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x58)" * (cast_expression "(void **)((int)register0x00000010 + -0x58)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x54)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x54)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) }) (else_clause "else if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    \n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    FUN_000da200();\n  }" else (if_statement "if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    \n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    FUN_000da200();\n  }" if (parenthesized_expression "(piVar8 != piVar4)" ( (binary_expression "piVar8 != piVar4" identifier != identifier) )) (compound_statement "{\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    \n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    FUN_000da200();\n  }" { (expression_statement "piVar7 = piVar7 + -1;" (assignment_expression "piVar7 = piVar7 + -1" identifier = (binary_expression "piVar7 + -1" identifier + number_literal)) ;) (expression_statement "piVar5 = *(int **)((int)register0x00000010 + -0x44);" (assignment_expression "piVar5 = *(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 "**" * (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 "piVar4 = piVar4 + -1;" (assignment_expression "piVar4 = piVar4 + -1" identifier = (binary_expression "piVar4 + -1" identifier + number_literal)) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x44) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x44) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" * (cast_expression "(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int **" primitive_type (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) ;) (while_statement "while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }" { (expression_statement "piVar5 = piVar5 + -1;" (assignment_expression "piVar5 = piVar5 + -1" identifier = (binary_expression "piVar5 + -1" identifier + number_literal)) ;) (expression_statement "iVar6 = *piVar4;" (assignment_expression "iVar6 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "iVar2 = *piVar7;" (assignment_expression "iVar2 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (if_statement "if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;" if (parenthesized_expression "((*(byte *)(iVar6 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar6 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar6 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar6 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar6 + 0x1c)" * (cast_expression "(byte *)(iVar6 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;" if (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar2 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar2 + 0x1c)" * (cast_expression "(byte *)(iVar2 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }" if (parenthesized_expression "(*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4)))" ( (binary_expression "*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (binary_expression "*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8)" (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) || (binary_expression "*(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (binary_expression "*(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8)" (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) - (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) < (call_expression "(uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" ( (binary_expression "*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4)" (pointer_expression "*(uint *)(iVar6 + 4)" * (cast_expression "(uint *)(iVar6 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar2 + 4)" * (cast_expression "(uint *)(iVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ))))) )) (compound_statement "{\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }" { (expression_statement "*piVar5 = iVar2;" (assignment_expression "*piVar5 = iVar2" (pointer_expression "*piVar5" * identifier) = identifier) ;) (if_statement "if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }" if (parenthesized_expression "(piVar7 == *(int **)((int)register0x00000010 + -0x40))" ( (binary_expression "piVar7 == *(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 "**" * (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) ))))) )) (compound_statement "{\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }" { (expression_statement "piVar7 = *(int **)((int)register0x00000010 + -0x44);" (assignment_expression "piVar7 = *(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 "**" * (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) ))))) ;) (if_statement "if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }" if (parenthesized_expression "(piVar7 != piVar4 + 1)" ( (binary_expression "piVar7 != piVar4 + 1" identifier != (binary_expression "piVar4 + 1" identifier + number_literal)) )) (compound_statement "{\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }" { (expression_statement "iVar6 = (int)(piVar4 + 1) - (int)piVar7;" (assignment_expression "iVar6 = (int)(piVar4 + 1) - (int)piVar7" identifier = (binary_expression "(int)(piVar4 + 1) - (int)piVar7" (cast_expression "(int)(piVar4 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar4 + 1)" ( (binary_expression "piVar4 + 1" identifier + number_literal) ))) - (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x54) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" * (cast_expression "(int *)((int)register0x00000010 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x58) = piVar7;" (assignment_expression "*(int **)((int)register0x00000010 + -0x58) = piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -0x58)" * (cast_expression "(int **)((int)register0x00000010 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" * (cast_expression "(int *)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)piVar5 - iVar6" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x5c)" * (cast_expression "(void **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x58)" * (cast_expression "(void **)((int)register0x00000010 + -0x58)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x54)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x54)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })) (expression_statement "piVar7 = piVar7 + -1;" (assignment_expression "piVar7 = piVar7 + -1" identifier = (binary_expression "piVar7 + -1" identifier + number_literal)) ;) }) (else_clause "else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }" else (compound_statement "{\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }" { (expression_statement "*piVar5 = iVar6;" (assignment_expression "*piVar5 = iVar6" (pointer_expression "*piVar5" * identifier) = identifier) ;) (if_statement "if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }" if (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x44) == piVar4)" ( (binary_expression "*(int **)((int)register0x00000010 + -0x44) == piVar4" (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" * (cast_expression "(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int **" primitive_type (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) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "piVar4 = piVar4 + -1;" (assignment_expression "piVar4 = piVar4 + -1" identifier = (binary_expression "piVar4 + -1" identifier + number_literal)) ;) }))) })) (labeled_statement "LAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;" statement_identifier : (expression_statement "*(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" * (cast_expression "(int *)((int)register0x00000010 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x34) + -0x11dd0c" (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)) ;)) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x58)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;" (assignment_expression "*(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" * (cast_expression "(int *)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)register0x00000010 + -0x34) + -0x11d1a4" (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)) ;) (expression_statement "*(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;" (assignment_expression "*(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4" (pointer_expression "*(undefined **)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined **)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (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) )))) = (pointer_expression "&UNK_000718c4" & identifier)) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })))) (return_statement "return;" return ;) (labeled_statement "joined_r0x000715ef:\n  if ((bVar1 & 1) == 0) goto LAB_000718a5;" statement_identifier : (if_statement "if ((bVar1 & 1) == 0) goto LAB_000718a5;" if (parenthesized_expression "((bVar1 & 1) == 0)" ( (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000718a5;" goto statement_identifier ;))) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_000718a5;" if (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar2 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar2 + 0x1c)" * (cast_expression "(byte *)(iVar2 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000718a5;" goto statement_identifier ;)) (if_statement "if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n    *piVar4 = iVar6;\n    piVar5 = piVar5 + 1;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  else {\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }" if (parenthesized_expression "(*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4)))" ( (binary_expression "*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (binary_expression "*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8)" (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) || (binary_expression "*(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (binary_expression "*(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8)" (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) - (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) < (call_expression "(uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" ( (binary_expression "*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4)" (pointer_expression "*(uint *)(iVar6 + 4)" * (cast_expression "(uint *)(iVar6 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar2 + 4)" * (cast_expression "(uint *)(iVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ))))) )) (compound_statement "{\n    *piVar4 = iVar6;\n    piVar5 = piVar5 + 1;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }" { (expression_statement "*piVar4 = iVar6;" (assignment_expression "*piVar4 = iVar6" (pointer_expression "*piVar4" * identifier) = identifier) ;) (expression_statement "piVar5 = piVar5 + 1;" (assignment_expression "piVar5 = piVar5 + 1" identifier = (binary_expression "piVar5 + 1" identifier + number_literal)) ;) (if_statement "if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }" if (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x40) == piVar8)" ( (binary_expression "*(int **)((int)register0x00000010 + -0x40) == piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x40)" * (cast_expression "(int **)((int)register0x00000010 + -0x40)" ( (type_descriptor "int **" primitive_type (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      return;\n    }" { (return_statement "return;" return ;) })) }) (else_clause "else {\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }" else (compound_statement "{\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }" { (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) (expression_statement "*piVar4 = iVar2;" (assignment_expression "*piVar4 = iVar2" (pointer_expression "*piVar4" * identifier) = identifier) ;) (if_statement "if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }" if (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x40) == piVar8)" ( (binary_expression "*(int **)((int)register0x00000010 + -0x40) == piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x40)" * (cast_expression "(int **)((int)register0x00000010 + -0x40)" ( (type_descriptor "int **" primitive_type (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      return;\n    }" { (return_statement "return;" return ;) })) }))) (expression_statement "piVar4 = piVar4 + 1;" (assignment_expression "piVar4 = piVar4 + 1" identifier = (binary_expression "piVar4 + 1" identifier + number_literal)) ;) (if_statement "if (*(int **)((int)register0x00000010 + -0x44) == piVar5) {\n    iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;\nLAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar8;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n    return;\n  }" if (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x44) == piVar5)" ( (binary_expression "*(int **)((int)register0x00000010 + -0x44) == piVar5" (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" * (cast_expression "(int **)((int)register0x00000010 + -0x44)" ( (type_descriptor "int **" primitive_type (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) )) (compound_statement "{\n    iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;\nLAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar8;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n    return;\n  }" { (expression_statement "iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8" identifier = (binary_expression "*(int *)((int)register0x00000010 + -0x40) - (int)piVar8" (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)piVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (labeled_statement "LAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;" statement_identifier : (expression_statement "*(int *)((int)register0x00000010 + -0x54) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" * (cast_expression "(int *)((int)register0x00000010 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int **)((int)register0x00000010 + -0x58) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x58) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x58)" * (cast_expression "(int **)((int)register0x00000010 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)register0x00000010 + -0x5c) = piVar4;" (assignment_expression "*(int **)((int)register0x00000010 + -0x5c) = piVar4" (pointer_expression "*(int **)((int)register0x00000010 + -0x5c)" * (cast_expression "(int **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" * (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54))" identifier (argument_list "(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54))" ( (pointer_expression "*(void **)((int)register0x00000010 + -0x5c)" * (cast_expression "(void **)((int)register0x00000010 + -0x5c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x5c)" ( (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)register0x00000010 + -0x58)" * (cast_expression "(void **)((int)register0x00000010 + -0x58)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)register0x00000010 + -0x58)" ( (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)register0x00000010 + -0x54)" * (cast_expression "(size_t *)((int)register0x00000010 + -0x54)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)register0x00000010 + -0x54)" ( (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar6 = *piVar5;" (assignment_expression "iVar6 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "iVar2 = *piVar8;" (assignment_expression "iVar2 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "bVar1 = *(byte *)(iVar6 + 0x1c);" (assignment_expression "bVar1 = *(byte *)(iVar6 + 0x1c)" identifier = (pointer_expression "*(byte *)(iVar6 + 0x1c)" * (cast_expression "(byte *)(iVar6 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x000715ef;" goto statement_identifier ;) })))
(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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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) )))) = 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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 *)) ) (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) )))) = 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 (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 IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = 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) ))))) ;) (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 = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = 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 * (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 * (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) ))))) ;) })) (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) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (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) )) (break_statement break ;)) (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) )))) < (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 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) )))) = IDENT) ;) (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 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) )))) = (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) )))) = 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 IDENT = (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)) ;) }) (else_clause else (compound_statement { (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) )))) / 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 + 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + 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 ( ))) ;) (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) )))) - (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 *)) ) (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 - (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) )))))) ;) (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 *)) ) (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) )))) = (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 ( ))) ;) (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 (parenthesized_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 (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 *)) ) (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 ( ))) ;) (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) )))) = (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 *)) ) 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 *)) ) (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 *)) ) (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 = (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 { (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 = (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)) ;) (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 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) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_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) ))))) || (binary_expression (binary_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) ))))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_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) ))))) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * 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 { (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 != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) - 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 ;) })) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = 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 { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) })) (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) )))) = (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) )))) = 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 (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) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))) (return_statement return ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_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) ))))) || (binary_expression (binary_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) ))))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_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) ))))) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression 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 { (return_statement return ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = 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 { (return_statement return ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression 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 { (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) )))) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (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 * (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 ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "void FUN_00071550(void)\n\n{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 extraout_ECX;\n  int *piVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 unaff_EBX;\n  undefined4 unaff_EBP;\n  int *piVar8;\n  undefined4 unaff_ESI;\n  int unaff_EDI;\n  undefined8 uVar9;\n  \n  while( true ) {\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(int *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557;\n    uVar9 = FUN_000b484e();\n    piVar7 = (int *)((ulonglong)uVar9 >> 0x20);\n    piVar4 = (int *)uVar9;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    iVar6 = *(int *)((int)register0x00000010 + 8);\n    iVar2 = *(int *)((int)register0x00000010 + 0x10);\n    *(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;\n    piVar8 = *(int **)((int)register0x00000010 + 0xc);\n    *(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;\n    *(int **)((int)register0x00000010 + -0x40) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);\n    iVar3 = iVar6;\n    if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }\n    *(int *)((int)register0x00000010 + -0x38) = iVar6;\n    *(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);\n    if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }\n    if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;\n    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      FUN_0005cdd0();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }\n    iVar3 = *(int *)((int)register0x00000010 + -0x3c);\n    *(int *)((int)register0x00000010 + -0x50) = iVar2;\n    *(int **)((int)register0x00000010 + -0x54) = piVar8;\n    *(int *)((int)register0x00000010 + -0x58) = iVar6;\n    *(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);\n    *(int **)((int)register0x00000010 + -100) = piVar7;\n    *(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);\n    *(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);\n    *(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;\n    FUN_000affe0();\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2;\n    *(int **)((int)register0x00000010 + -0x68) = piVar8;\n    *(int *)((int)register0x00000010 + -0x6c) = iVar6;\n    *(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);\n    *(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;\n    FUN_00071550();\n    *(int *)((int)register0x00000010 + 0xc) = iVar2;\n    *(int **)((int)register0x00000010 + 8) = piVar8;\n    *(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;\n    *(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);\n    unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);\n    unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);\n    unaff_EDI = *(int *)((int)register0x00000010 + -0xc);\n    unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);\n    register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);\n  }\n  iVar6 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7;\n  if (*(int **)((int)register0x00000010 + -0x44) != piVar7) {\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar7;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n  }\n  piVar4 = (int *)((int)piVar8 + iVar6);\n  if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n    if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }\n  }\n  else if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    \n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    FUN_000da200();\n  }\n  return;\njoined_r0x000715ef:\n  if ((bVar1 & 1) == 0) goto LAB_000718a5;\n  if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_000718a5;\n  if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n    *piVar4 = iVar6;\n    piVar5 = piVar5 + 1;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  else {\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  piVar4 = piVar4 + 1;\n  if (*(int **)((int)register0x00000010 + -0x44) == piVar5) {\n    iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;\nLAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar8;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n    return;\n  }\n  iVar6 = *piVar5;\n  iVar2 = *piVar8;\n  bVar1 = *(byte *)(iVar6 + 0x1c);\n  goto joined_r0x000715ef;\n}" (primitive_type "void") (function_declarator "FUN_00071550(void)" (identifier "FUN_00071550") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 extraout_ECX;\n  int *piVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 unaff_EBX;\n  undefined4 unaff_EBP;\n  int *piVar8;\n  undefined4 unaff_ESI;\n  int unaff_EDI;\n  undefined8 uVar9;\n  \n  while( true ) {\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(int *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557;\n    uVar9 = FUN_000b484e();\n    piVar7 = (int *)((ulonglong)uVar9 >> 0x20);\n    piVar4 = (int *)uVar9;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    iVar6 = *(int *)((int)register0x00000010 + 8);\n    iVar2 = *(int *)((int)register0x00000010 + 0x10);\n    *(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;\n    piVar8 = *(int **)((int)register0x00000010 + 0xc);\n    *(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;\n    *(int **)((int)register0x00000010 + -0x40) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);\n    iVar3 = iVar6;\n    if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }\n    *(int *)((int)register0x00000010 + -0x38) = iVar6;\n    *(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);\n    if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }\n    if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;\n    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      FUN_0005cdd0();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }\n    iVar3 = *(int *)((int)register0x00000010 + -0x3c);\n    *(int *)((int)register0x00000010 + -0x50) = iVar2;\n    *(int **)((int)register0x00000010 + -0x54) = piVar8;\n    *(int *)((int)register0x00000010 + -0x58) = iVar6;\n    *(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);\n    *(int **)((int)register0x00000010 + -100) = piVar7;\n    *(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);\n    *(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);\n    *(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;\n    FUN_000affe0();\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2;\n    *(int **)((int)register0x00000010 + -0x68) = piVar8;\n    *(int *)((int)register0x00000010 + -0x6c) = iVar6;\n    *(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);\n    *(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;\n    FUN_00071550();\n    *(int *)((int)register0x00000010 + 0xc) = iVar2;\n    *(int **)((int)register0x00000010 + 8) = piVar8;\n    *(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;\n    *(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);\n    unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);\n    unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);\n    unaff_EDI = *(int *)((int)register0x00000010 + -0xc);\n    unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);\n    register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);\n  }\n  iVar6 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7;\n  if (*(int **)((int)register0x00000010 + -0x44) != piVar7) {\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar7;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n  }\n  piVar4 = (int *)((int)piVar8 + iVar6);\n  if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n    if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }\n  }\n  else if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    \n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    FUN_000da200();\n  }\n  return;\njoined_r0x000715ef:\n  if ((bVar1 & 1) == 0) goto LAB_000718a5;\n  if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_000718a5;\n  if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n    *piVar4 = iVar6;\n    piVar5 = piVar5 + 1;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  else {\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  piVar4 = piVar4 + 1;\n  if (*(int **)((int)register0x00000010 + -0x44) == piVar5) {\n    iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;\nLAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar8;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n    return;\n  }\n  iVar6 = *piVar5;\n  iVar2 = *piVar8;\n  bVar1 = *(byte *)(iVar6 + 0x1c);\n  goto joined_r0x000715ef;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "undefined4 unaff_EBX;" (type_identifier "undefined4") (identifier "unaff_EBX") (; ";")) (declaration "undefined4 unaff_EBP;" (type_identifier "undefined4") (identifier "unaff_EBP") (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "undefined4 unaff_ESI;" (type_identifier "undefined4") (identifier "unaff_ESI") (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (declaration "undefined8 uVar9;" (type_identifier "undefined8") (identifier "uVar9") (; ";")) (while_statement "while( true ) {\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(int *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557;\n    uVar9 = FUN_000b484e();\n    piVar7 = (int *)((ulonglong)uVar9 >> 0x20);\n    piVar4 = (int *)uVar9;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    iVar6 = *(int *)((int)register0x00000010 + 8);\n    iVar2 = *(int *)((int)register0x00000010 + 0x10);\n    *(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;\n    piVar8 = *(int **)((int)register0x00000010 + 0xc);\n    *(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;\n    *(int **)((int)register0x00000010 + -0x40) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);\n    iVar3 = iVar6;\n    if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }\n    *(int *)((int)register0x00000010 + -0x38) = iVar6;\n    *(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);\n    if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }\n    if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;\n    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      FUN_0005cdd0();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }\n    iVar3 = *(int *)((int)register0x00000010 + -0x3c);\n    *(int *)((int)register0x00000010 + -0x50) = iVar2;\n    *(int **)((int)register0x00000010 + -0x54) = piVar8;\n    *(int *)((int)register0x00000010 + -0x58) = iVar6;\n    *(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);\n    *(int **)((int)register0x00000010 + -100) = piVar7;\n    *(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);\n    *(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);\n    *(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;\n    FUN_000affe0();\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2;\n    *(int **)((int)register0x00000010 + -0x68) = piVar8;\n    *(int *)((int)register0x00000010 + -0x6c) = iVar6;\n    *(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);\n    *(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;\n    FUN_00071550();\n    *(int *)((int)register0x00000010 + 0xc) = iVar2;\n    *(int **)((int)register0x00000010 + 8) = piVar8;\n    *(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;\n    *(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);\n    unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);\n    unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);\n    unaff_EDI = *(int *)((int)register0x00000010 + -0xc);\n    unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);\n    register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;\n    *(int *)((int)register0x00000010 + -8) = unaff_EDI;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557;\n    uVar9 = FUN_000b484e();\n    piVar7 = (int *)((ulonglong)uVar9 >> 0x20);\n    piVar4 = (int *)uVar9;\n    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;\n    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;\n    iVar6 = *(int *)((int)register0x00000010 + 8);\n    iVar2 = *(int *)((int)register0x00000010 + 0x10);\n    *(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;\n    piVar8 = *(int **)((int)register0x00000010 + 0xc);\n    *(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;\n    *(int **)((int)register0x00000010 + -0x40) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);\n    iVar3 = iVar6;\n    if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }\n    *(int *)((int)register0x00000010 + -0x38) = iVar6;\n    *(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);\n    if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }\n    if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;\n    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      FUN_0005cdd0();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }\n    iVar3 = *(int *)((int)register0x00000010 + -0x3c);\n    *(int *)((int)register0x00000010 + -0x50) = iVar2;\n    *(int **)((int)register0x00000010 + -0x54) = piVar8;\n    *(int *)((int)register0x00000010 + -0x58) = iVar6;\n    *(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);\n    *(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);\n    *(int **)((int)register0x00000010 + -100) = piVar7;\n    *(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);\n    *(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);\n    *(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;\n    FUN_000affe0();\n    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + -100) = iVar2;\n    *(int **)((int)register0x00000010 + -0x68) = piVar8;\n    *(int *)((int)register0x00000010 + -0x6c) = iVar6;\n    *(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);\n    *(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;\n    FUN_00071550();\n    *(int *)((int)register0x00000010 + 0xc) = iVar2;\n    *(int **)((int)register0x00000010 + 8) = piVar8;\n    *(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);\n    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;\n    *(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);\n    unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);\n    unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);\n    unaff_EDI = *(int *)((int)register0x00000010 + -0xc);\n    unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);\n    register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);\n  }" ({ "{") (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 "*(int *)((int)register0x00000010 + -8) = unaff_EDI;" (assignment_expression "*(int *)((int)register0x00000010 + -8) = unaff_EDI" (pointer_expression "*(int *)((int)register0x00000010 + -8)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (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) = 0x71557;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557" (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")) () ")")))) (= "=") (number_literal "0x71557")) (; ";")) (expression_statement "uVar9 = FUN_000b484e();" (assignment_expression "uVar9 = FUN_000b484e()" (identifier "uVar9") (= "=") (call_expression "FUN_000b484e()" (identifier "FUN_000b484e") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar7 = (int *)((ulonglong)uVar9 >> 0x20);" (assignment_expression "piVar7 = (int *)((ulonglong)uVar9 >> 0x20)" (identifier "piVar7") (= "=") (cast_expression "(int *)((ulonglong)uVar9 >> 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)uVar9 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar9 >> 0x20" (cast_expression "(ulonglong)uVar9" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar9")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "piVar4 = (int *)uVar9;" (assignment_expression "piVar4 = (int *)uVar9" (identifier "piVar4") (= "=") (cast_expression "(int *)uVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar9"))) (; ";")) (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 "iVar6 = *(int *)((int)register0x00000010 + 8);" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + 8)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)((int)register0x00000010 + 8)" (* "*") (cast_expression "(int *)((int)register0x00000010 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (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 "iVar2 = *(int *)((int)register0x00000010 + 0x10);" (assignment_expression "iVar2 = *(int *)((int)register0x00000010 + 0x10)" (identifier "iVar2") (= "=") (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 "*(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x44)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 "extraout_ECX")) (; ";")) (expression_statement "piVar8 = *(int **)((int)register0x00000010 + 0xc);" (assignment_expression "piVar8 = *(int **)((int)register0x00000010 + 0xc)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)((int)register0x00000010 + 0xc)" (* "*") (cast_expression "(int **)((int)register0x00000010 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (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 "*(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;" (assignment_expression "*(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9" (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 "unaff_EDI + 0x3a2aa9" (identifier "unaff_EDI") (+ "+") (number_literal "0x3a2aa9"))) (; ";")) (expression_statement "*(int **)((int)register0x00000010 + -0x40) = piVar4;" (assignment_expression "*(int **)((int)register0x00000010 + -0x40) = piVar4" (pointer_expression "*(int **)((int)register0x00000010 + -0x40)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (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 "piVar4")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x3c)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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")) () ")")))) (= "=") (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")) () ")"))))) (; ";")) (expression_statement "iVar3 = iVar6;" (assignment_expression "iVar3 = iVar6" (identifier "iVar3") (= "=") (identifier "iVar6")) (; ";")) (if_statement "if (iVar2 < iVar6) {\n      iVar3 = iVar2;\n    }" (if "if") (parenthesized_expression "(iVar2 < iVar6)" (( "(") (binary_expression "iVar2 < iVar6" (identifier "iVar2") (< "<") (identifier "iVar6")) () ")")) (compound_statement "{\n      iVar3 = iVar2;\n    }" ({ "{") (expression_statement "iVar3 = iVar2;" (assignment_expression "iVar3 = iVar2" (identifier "iVar3") (= "=") (identifier "iVar2")) (; ";")) (} "}"))) (expression_statement "*(int *)((int)register0x00000010 + -0x38) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x38) = iVar6" (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")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14);" (assignment_expression "*(undefined1 *)((int)register0x00000010 + -0x2d) =\n         *(undefined1 *)((int)register0x00000010 + 0x14)" (pointer_expression "*(undefined1 *)((int)register0x00000010 + -0x2d)" (* "*") (cast_expression "(undefined1 *)((int)register0x00000010 + -0x2d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x2d)" (( "(") (binary_expression "(int)register0x00000010 + -0x2d" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x2d")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((int)register0x00000010 + 0x14)" (* "*") (cast_expression "(undefined1 *)((int)register0x00000010 + 0x14)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (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")) () ")"))))) (; ";")) (if_statement "if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }" (if "if") (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x3c) <= iVar3)" (( "(") (binary_expression "*(int *)((int)register0x00000010 + -0x3c) <= iVar3" (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")) () ")")))) (<= "<=") (identifier "iVar3")) () ")")) (compound_statement "{\n      iVar6 = (int)piVar7 - (int)piVar4;\n      piVar5 = piVar7;\n      if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }\n      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);\n      if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }\n      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;\n      iVar6 = *piVar7;\n      iVar2 = *piVar8;\n      bVar1 = *(byte *)(iVar6 + 0x1c);\n      goto joined_r0x000715ef;\n    }" ({ "{") (expression_statement "iVar6 = (int)piVar7 - (int)piVar4;" (assignment_expression "iVar6 = (int)piVar7 - (int)piVar4" (identifier "iVar6") (= "=") (binary_expression "(int)piVar7 - (int)piVar4" (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7")) (- "-") (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4")))) (; ";")) (expression_statement "piVar5 = piVar7;" (assignment_expression "piVar5 = piVar7" (identifier "piVar5") (= "=") (identifier "piVar7")) (; ";")) (if_statement "if (piVar7 != piVar4) {\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }" (if "if") (parenthesized_expression "(piVar7 != piVar4)" (( "(") (binary_expression "piVar7 != piVar4" (identifier "piVar7") (!= "!=") (identifier "piVar4")) () ")")) (compound_statement "{\n        *(int **)((int)register0x00000010 + -0x3c) = piVar7;\n        *(int *)((int)register0x00000010 + -0x54) = iVar6;\n        *(int *)((int)register0x00000010 + -0x40) = iVar6;\n        *(int **)((int)register0x00000010 + -0x58) = piVar4;\n        *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;\n        memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));\n        piVar5 = *(int **)((int)register0x00000010 + -0x3c);\n        iVar6 = *(int *)((int)register0x00000010 + -0x40);\n      }" ({ "{") (expression_statement "*(int **)((int)register0x00000010 + -0x3c) = piVar7;" (assignment_expression "*(int **)((int)register0x00000010 + -0x3c) = piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -0x3c)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x3c)" (( "(") (type_descriptor "int **" (primitive_type "int") (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")) () ")")))) (= "=") (identifier "piVar7")) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x54) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x54)" (( "(") (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x54")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x40) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x40) = iVar6" (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")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(int **)((int)register0x00000010 + -0x58) = piVar4;" (assignment_expression "*(int **)((int)register0x00000010 + -0x58) = piVar4" (pointer_expression "*(int **)((int)register0x00000010 + -0x58)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x58)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x58)" (( "(") (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x58")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (expression_statement "*(int **)((int)register0x00000010 + -0x5c) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x5c) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x5c)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x5c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x5c)" (( "(") (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x5c")) () ")")))) (= "=") (identifier "piVar8")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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")) () ")")))) (= "=") (number_literal "0x715c5")) (; ";")) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54))" (identifier "memmove") (argument_list "(*(void **)((int)register0x00000010 + -0x5c),\n                *(void **)((int)register0x00000010 + -0x58),\n                *(size_t *)((int)register0x00000010 + -0x54))" (( "(") (pointer_expression "*(void **)((int)register0x00000010 + -0x5c)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x5c)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x5c)" (( "(") (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x5c")) () ")")))) (, ",") (pointer_expression "*(void **)((int)register0x00000010 + -0x58)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x58)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x58)" (( "(") (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x58")) () ")")))) (, ",") (pointer_expression "*(size_t *)((int)register0x00000010 + -0x54)" (* "*") (cast_expression "(size_t *)((int)register0x00000010 + -0x54)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x54)" (( "(") (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x54")) () ")")))) () ")"))) (; ";")) (expression_statement "piVar5 = *(int **)((int)register0x00000010 + -0x3c);" (assignment_expression "piVar5 = *(int **)((int)register0x00000010 + -0x3c)" (identifier "piVar5") (= "=") (pointer_expression "*(int **)((int)register0x00000010 + -0x3c)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x3c)" (( "(") (type_descriptor "int **" (primitive_type "int") (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")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)((int)register0x00000010 + -0x40);" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x40)" (identifier "iVar6") (= "=") (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 + -0x40) = (int *)((int)piVar8 + iVar6);" (assignment_expression "*(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6)" (pointer_expression "*(int **)((int)register0x00000010 + -0x40)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (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 *)((int)piVar8 + iVar6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar8 + iVar6)" (( "(") (binary_expression "(int)piVar8 + iVar6" (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8")) (+ "+") (identifier "iVar6")) () ")")))) (; ";")) (if_statement "if (piVar8 == (int *)((int)piVar8 + iVar6)) {\n        return;\n      }" (if "if") (parenthesized_expression "(piVar8 == (int *)((int)piVar8 + iVar6))" (( "(") (binary_expression "piVar8 == (int *)((int)piVar8 + iVar6)" (identifier "piVar8") (== "==") (cast_expression "(int *)((int)piVar8 + iVar6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar8 + iVar6)" (( "(") (binary_expression "(int)piVar8 + iVar6" (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8")) (+ "+") (identifier "iVar6")) () ")")))) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;" (if "if") (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x44) == piVar7)" (( "(") (binary_expression "*(int **)((int)register0x00000010 + -0x44) == piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "int **" (primitive_type "int") (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 "piVar7")) () ")")) (goto_statement "goto LAB_000717de;" (goto "goto") (statement_identifier "LAB_000717de") (; ";"))) (expression_statement "iVar6 = *piVar7;" (assignment_expression "iVar6 = *piVar7" (identifier "iVar6") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (expression_statement "iVar2 = *piVar8;" (assignment_expression "iVar2 = *piVar8" (identifier "iVar2") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (expression_statement "bVar1 = *(byte *)(iVar6 + 0x1c);" (assignment_expression "bVar1 = *(byte *)(iVar6 + 0x1c)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(iVar6 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar6 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1c)" (( "(") (binary_expression "iVar6 + 0x1c" (identifier "iVar6") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (goto_statement "goto joined_r0x000715ef;" (goto "goto") (statement_identifier "joined_r0x000715ef") (; ";")) (} "}"))) (if_statement "if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;" (if "if") (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x38) <= iVar2)" (( "(") (binary_expression "*(int *)((int)register0x00000010 + -0x38) <= iVar2" (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")) () ")")))) (<= "<=") (identifier "iVar2")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      FUN_0005cdd0();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }\n    else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }" (if "if") (parenthesized_expression "(*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c))" (( "(") (binary_expression "*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)" (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")) () ")")))) (< "<") (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")) () ")"))))) () ")")) (compound_statement "{\n      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;\n      *(int *)((int)register0x00000010 + -0x34) = iVar6;\n      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;\n      *(int *)((int)register0x00000010 + -0x2c) = iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x5c) = iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;\n      FUN_0005cdd0();\n      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);\n      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;\n    }" ({ "{") (expression_statement "iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2" (identifier "iVar6") (= "=") (binary_expression "*(int *)((int)register0x00000010 + -0x3c) / 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")) () ")")))) (/ "/") (number_literal "2"))) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x34) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x34) = iVar6" (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")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4" (identifier "iVar6") (= "=") (binary_expression "*(int *)((int)register0x00000010 + -0x40) + iVar6 * 4" (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 "iVar6 * 4" (identifier "iVar6") (* "*") (number_literal "4")))) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x2c) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x2c) = iVar6" (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 "iVar6")) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20)" (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")) () ")")))) (= "=") (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")) () ")")))) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x5c) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x5c) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x5c)" (( "(") (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x5c")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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")) () ")")))) (= "=") (number_literal "0x7182f")) (; ";")) (expression_statement "FUN_0005cdd0();" (call_expression "FUN_0005cdd0()" (identifier "FUN_0005cdd0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);" (assignment_expression "*(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20)" (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")) () ")")))) (= "=") (pointer_expression "*(int *)((int)register0x00000010 + -0x20)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (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 "iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2" (identifier "iVar6") (= "=") (binary_expression "*(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2" (binary_expression "*(int *)((int)register0x00000010 + -0x20) - (int)piVar7" (pointer_expression "*(int *)((int)register0x00000010 + -0x20)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (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")) () ")")))) (- "-") (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7"))) (>> ">>") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }" (else "else") (compound_statement "{\n      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;\n      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;\n      *(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);\n      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;\n      FUN_0005cef0();\n      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);\n      *(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;\n    }" ({ "{") (expression_statement "iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2" (identifier "iVar6") (= "=") (binary_expression "*(int *)((int)register0x00000010 + -0x38) / 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")) () ")")))) (/ "/") (number_literal "2"))) (; ";")) (expression_statement "*(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;" (assignment_expression "*(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6" (pointer_expression "*(int **)((int)register0x00000010 + -0x28)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x28)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (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")) () ")")))) (= "=") (binary_expression "piVar7 + iVar6" (identifier "piVar7") (+ "+") (identifier "iVar6"))) (; ";")) (expression_statement "*(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20);" (assignment_expression "*(undefined4 **)((int)register0x00000010 + -0x24) =\n           (undefined4 *)((int)register0x00000010 + -0x20)" (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")) () ")")))) (= "=") (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")) () ")")))) (; ";")) (expression_statement "*(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;" (assignment_expression "*(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6" (pointer_expression "*(int **)((int)register0x00000010 + -0x5c)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x5c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x5c)" (( "(") (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x5c")) () ")")))) (= "=") (binary_expression "piVar7 + iVar6" (identifier "piVar7") (+ "+") (identifier "iVar6"))) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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")) () ")")))) (= "=") (number_literal "0x7173d")) (; ";")) (expression_statement "FUN_0005cef0();" (call_expression "FUN_0005cef0()" (identifier "FUN_0005cef0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);" (assignment_expression "*(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20)" (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")) () ")")))) (= "=") (pointer_expression "*(int *)((int)register0x00000010 + -0x20)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (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 "*(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2;" (assignment_expression "*(int *)((int)register0x00000010 + -0x34) =\n           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           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 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>\n           2" (binary_expression "*(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40)" (pointer_expression "*(int *)((int)register0x00000010 + -0x20)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (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")) () ")")))) (- "-") (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")) () ")"))))) (>> ">>") (number_literal "2"))) (; ";")) (} "}")))) (expression_statement "iVar3 = *(int *)((int)register0x00000010 + -0x3c);" (assignment_expression "iVar3 = *(int *)((int)register0x00000010 + -0x3c)" (identifier "iVar3") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x50) = iVar2;" (assignment_expression "*(int *)((int)register0x00000010 + -0x50) = iVar2" (pointer_expression "*(int *)((int)register0x00000010 + -0x50)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (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")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "*(int **)((int)register0x00000010 + -0x54) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x54) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x54)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x54)" (( "(") (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x54")) () ")")))) (= "=") (identifier "piVar8")) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x58) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x58) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x58)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x58)" (( "(") (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x58")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);" (assignment_expression "*(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34)" (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 "iVar3 - *(int *)((int)register0x00000010 + -0x34)" (identifier "iVar3") (- "-") (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 "*(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);" (assignment_expression "*(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34)" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x5c)" (( "(") (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x5c")) () ")")))) (= "=") (binary_expression "iVar3 - *(int *)((int)register0x00000010 + -0x34)" (identifier "iVar3") (- "-") (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 "*(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) =\n         *(undefined4 *)((int)register0x00000010 + -0x28)" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x28)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 "*(int **)((int)register0x00000010 + -100) = piVar7;" (assignment_expression "*(int **)((int)register0x00000010 + -100) = piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -100)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -100)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (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 "piVar7")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x68) =\n         *(undefined4 *)((int)register0x00000010 + -0x2c)" (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 "*(undefined4 *)((int)register0x00000010 + -0x2c)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x6c) =\n         *(undefined4 *)((int)register0x00000010 + -0x24)" (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 + -0x24)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 "*(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775" (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 "0x71775")) (; ";")) (expression_statement "FUN_000affe0();" (call_expression "FUN_000affe0()" (identifier "FUN_000affe0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);" (assignment_expression "*(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31)" (pointer_expression "*(uint *)((int)register0x00000010 + -0x60)" (* "*") (cast_expression "(uint *)((int)register0x00000010 + -0x60)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (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")) () ")")))) (= "=") (binary_expression "(uint)*(byte *)((int)register0x00000010 + -0x31)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)register0x00000010 + -0x31)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x31)" (( "(") (binary_expression "(int)register0x00000010 + -0x31" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x31")) () ")"))))) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -100) = iVar2;" (assignment_expression "*(int *)((int)register0x00000010 + -100) = iVar2" (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 "iVar2")) (; ";")) (expression_statement "*(int **)((int)register0x00000010 + -0x68) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x68) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x68)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x68)" (( "(") (type_descriptor "int **" (primitive_type "int") (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 "piVar8")) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x6c) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x6c) = iVar6" (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")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38);" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x70) =\n         *(undefined4 *)((int)register0x00000010 + -0x38)" (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 + -0x38)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 "*(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798" (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 "0x71798")) (; ";")) (expression_statement "FUN_00071550();" (call_expression "FUN_00071550()" (identifier "FUN_00071550") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + 0xc) = iVar2;" (assignment_expression "*(int *)((int)register0x00000010 + 0xc) = iVar2" (pointer_expression "*(int *)((int)register0x00000010 + 0xc)" (* "*") (cast_expression "(int *)((int)register0x00000010 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (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 "iVar2")) (; ";")) (expression_statement "*(int **)((int)register0x00000010 + 8) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + 8) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + 8)" (* "*") (cast_expression "(int **)((int)register0x00000010 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (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")) () ")")))) (= "=") (identifier "piVar8")) (; ";")) (expression_statement "*(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31);" (assignment_expression "*(undefined1 *)((int)register0x00000010 + 0x10) =\n         *(undefined1 *)((int)register0x00000010 + -0x31)" (pointer_expression "*(undefined1 *)((int)register0x00000010 + 0x10)" (* "*") (cast_expression "(undefined1 *)((int)register0x00000010 + 0x10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (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")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((int)register0x00000010 + -0x31)" (* "*") (cast_expression "(undefined1 *)((int)register0x00000010 + -0x31)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x31)" (( "(") (binary_expression "(int)register0x00000010 + -0x31" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x31")) () ")"))))) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6" (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")) () ")")))) (= "=") (binary_expression "*(int *)((int)register0x00000010 + -0x3c) - iVar6" (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")) () ")")))) (- "-") (identifier "iVar6"))) (; ";")) (expression_statement "*(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);" (assignment_expression "*(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40)" (pointer_expression "*(undefined4 *)register0x00000010" (* "*") (cast_expression "(undefined4 *)register0x00000010" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "register0x00000010"))) (= "=") (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x40)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 "unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);" (assignment_expression "unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14)" (identifier "unaff_EBX") (= "=") (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 "unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);" (assignment_expression "unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10)" (identifier "unaff_ESI") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "unaff_EDI = *(int *)((int)register0x00000010 + -0xc);" (assignment_expression "unaff_EDI = *(int *)((int)register0x00000010 + -0xc)" (identifier "unaff_EDI") (= "=") (pointer_expression "*(int *)((int)register0x00000010 + -0xc)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (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 "unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);" (assignment_expression "unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8)" (identifier "unaff_EBP") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);" (assignment_expression "register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4)" (identifier "register0x00000010") (= "=") (cast_expression "(BADSPACEBASE *)((int)register0x00000010 + -4)" (( "(") (type_descriptor "BADSPACEBASE *" (type_identifier "BADSPACEBASE") (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 "iVar6 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7;" (assignment_expression "iVar6 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7" (identifier "iVar6") (= "=") (binary_expression "(int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7" (cast_expression "(int)*(int **)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "int **" (primitive_type "int") (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")) () ")"))))) (- "-") (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7")))) (; ";")) (if_statement "if (*(int **)((int)register0x00000010 + -0x44) != piVar7) {\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar7;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n  }" (if "if") (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x44) != piVar7)" (( "(") (binary_expression "*(int **)((int)register0x00000010 + -0x44) != piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "int **" (primitive_type "int") (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 "piVar7")) () ")")) (compound_statement "{\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar7;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar8;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n  }" ({ "{") (expression_statement "*(int *)((int)register0x00000010 + -0x54) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x54)" (( "(") (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x54")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(int **)((int)register0x00000010 + -0x58) = piVar7;" (assignment_expression "*(int **)((int)register0x00000010 + -0x58) = piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -0x58)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x58)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x58)" (( "(") (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x58")) () ")")))) (= "=") (identifier "piVar7")) (; ";")) (expression_statement "*(int **)((int)register0x00000010 + -0x5c) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x5c) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x5c)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x5c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x5c)" (( "(") (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x5c")) () ")")))) (= "=") (identifier "piVar8")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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")) () ")")))) (= "=") (number_literal "0x71685")) (; ";")) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54))" (identifier "memmove") (argument_list "(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54))" (( "(") (pointer_expression "*(void **)((int)register0x00000010 + -0x5c)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x5c)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x5c)" (( "(") (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x5c")) () ")")))) (, ",") (pointer_expression "*(void **)((int)register0x00000010 + -0x58)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x58)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x58)" (( "(") (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x58")) () ")")))) (, ",") (pointer_expression "*(size_t *)((int)register0x00000010 + -0x54)" (* "*") (cast_expression "(size_t *)((int)register0x00000010 + -0x54)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x54)" (( "(") (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x54")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "piVar4 = (int *)((int)piVar8 + iVar6);" (assignment_expression "piVar4 = (int *)((int)piVar8 + iVar6)" (identifier "piVar4") (= "=") (cast_expression "(int *)((int)piVar8 + iVar6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar8 + iVar6)" (( "(") (binary_expression "(int)piVar8 + iVar6" (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8")) (+ "+") (identifier "iVar6")) () ")")))) (; ";")) (if_statement "if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n    if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }\n  }\n  else if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    \n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    FUN_000da200();\n  }" (if "if") (parenthesized_expression "(piVar7 == *(int **)((int)register0x00000010 + -0x40))" (( "(") (binary_expression "piVar7 == *(int **)((int)register0x00000010 + -0x40)" (identifier "piVar7") (== "==") (pointer_expression "*(int **)((int)register0x00000010 + -0x40)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (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")) () ")"))))) () ")")) (compound_statement "{\n    if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }\n  }" ({ "{") (if_statement "if (piVar8 != piVar4) {\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }" (if "if") (parenthesized_expression "(piVar8 != piVar4)" (( "(") (binary_expression "piVar8 != piVar4" (identifier "piVar8") (!= "!=") (identifier "piVar4")) () ")")) (compound_statement "{\n      *(int *)((int)register0x00000010 + -0x54) = iVar6;\n      *(int **)((int)register0x00000010 + -0x58) = piVar8;\n      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;\n      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;\n      memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));\n    }" ({ "{") (expression_statement "*(int *)((int)register0x00000010 + -0x54) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x54)" (( "(") (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x54")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(int **)((int)register0x00000010 + -0x58) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x58) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x58)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x58)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x58)" (( "(") (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x58")) () ")")))) (= "=") (identifier "piVar8")) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x5c)" (( "(") (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x5c")) () ")")))) (= "=") (binary_expression "*(int *)((int)register0x00000010 + -0x44) - iVar6" (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 "iVar6"))) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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")) () ")")))) (= "=") (number_literal "0x7189d")) (; ";")) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54))" (identifier "memmove") (argument_list "(*(void **)((int)register0x00000010 + -0x5c),\n              *(void **)((int)register0x00000010 + -0x58),\n              *(size_t *)((int)register0x00000010 + -0x54))" (( "(") (pointer_expression "*(void **)((int)register0x00000010 + -0x5c)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x5c)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x5c)" (( "(") (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x5c")) () ")")))) (, ",") (pointer_expression "*(void **)((int)register0x00000010 + -0x58)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x58)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x58)" (( "(") (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x58")) () ")")))) (, ",") (pointer_expression "*(size_t *)((int)register0x00000010 + -0x54)" (* "*") (cast_expression "(size_t *)((int)register0x00000010 + -0x54)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x54)" (( "(") (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x54")) () ")")))) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    \n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    FUN_000da200();\n  }" (else "else") (if_statement "if (piVar8 != piVar4) {\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    \n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    FUN_000da200();\n  }" (if "if") (parenthesized_expression "(piVar8 != piVar4)" (( "(") (binary_expression "piVar8 != piVar4" (identifier "piVar8") (!= "!=") (identifier "piVar4")) () ")")) (compound_statement "{\n    piVar7 = piVar7 + -1;\n    piVar5 = *(int **)((int)register0x00000010 + -0x44);\n    piVar4 = piVar4 + -1;\n    *(int **)((int)register0x00000010 + -0x44) = piVar8;\n    while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }\nLAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;\n    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;\n    *(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;\n                    \n    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;\n    FUN_000da200();\n  }" ({ "{") (expression_statement "piVar7 = piVar7 + -1;" (assignment_expression "piVar7 = piVar7 + -1" (identifier "piVar7") (= "=") (binary_expression "piVar7 + -1" (identifier "piVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "piVar5 = *(int **)((int)register0x00000010 + -0x44);" (assignment_expression "piVar5 = *(int **)((int)register0x00000010 + -0x44)" (identifier "piVar5") (= "=") (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "int **" (primitive_type "int") (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")) () ")"))))) (; ";")) (expression_statement "piVar4 = piVar4 + -1;" (assignment_expression "piVar4 = piVar4 + -1" (identifier "piVar4") (= "=") (binary_expression "piVar4 + -1" (identifier "piVar4") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(int **)((int)register0x00000010 + -0x44) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x44) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "int **" (primitive_type "int") (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 "piVar8")) (; ";")) (while_statement "while( true ) {\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      piVar5 = piVar5 + -1;\n      iVar6 = *piVar4;\n      iVar2 = *piVar7;\n      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;\n      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;\n      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }\n    }" ({ "{") (expression_statement "piVar5 = piVar5 + -1;" (assignment_expression "piVar5 = piVar5 + -1" (identifier "piVar5") (= "=") (binary_expression "piVar5 + -1" (identifier "piVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "iVar6 = *piVar4;" (assignment_expression "iVar6 = *piVar4" (identifier "iVar6") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "iVar2 = *piVar7;" (assignment_expression "iVar2 = *piVar7" (identifier "iVar2") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (if_statement "if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;" (if "if") (parenthesized_expression "((*(byte *)(iVar6 + 0x1c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(iVar6 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar6 + 0x1c) & 1)" (( "(") (binary_expression "*(byte *)(iVar6 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar6 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar6 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1c)" (( "(") (binary_expression "iVar6 + 0x1c" (identifier "iVar6") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;" (if "if") (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(iVar2 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 1)" (( "(") (binary_expression "*(byte *)(iVar2 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar2 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar2 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1c)" (( "(") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }\n      else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }" (if "if") (parenthesized_expression "(*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4)))" (( "(") (binary_expression "*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (binary_expression "*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8)" (pointer_expression "*(uint *)(iVar6 + 8)" (* "*") (cast_expression "(uint *)(iVar6 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")")))) (< "<") (pointer_expression "*(uint *)(iVar2 + 8)" (* "*") (cast_expression "(uint *)(iVar2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")"))))) (|| "||") (binary_expression "*(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (binary_expression "*(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8)" (pointer_expression "*(uint *)(iVar6 + 8)" (* "*") (cast_expression "(uint *)(iVar6 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")")))) (- "-") (pointer_expression "*(uint *)(iVar2 + 8)" (* "*") (cast_expression "(uint *)(iVar2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")"))))) (< "<") (call_expression "(uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (( "(") (binary_expression "*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4)" (pointer_expression "*(uint *)(iVar6 + 4)" (* "*") (cast_expression "(uint *)(iVar6 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (< "<") (pointer_expression "*(uint *)(iVar2 + 4)" (* "*") (cast_expression "(uint *)(iVar2 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")"))))) () ")"))))) () ")")) (compound_statement "{\n        *piVar5 = iVar2;\n        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }\n        piVar7 = piVar7 + -1;\n      }" ({ "{") (expression_statement "*piVar5 = iVar2;" (assignment_expression "*piVar5 = iVar2" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (= "=") (identifier "iVar2")) (; ";")) (if_statement "if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }" (if "if") (parenthesized_expression "(piVar7 == *(int **)((int)register0x00000010 + -0x40))" (( "(") (binary_expression "piVar7 == *(int **)((int)register0x00000010 + -0x40)" (identifier "piVar7") (== "==") (pointer_expression "*(int **)((int)register0x00000010 + -0x40)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (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")) () ")"))))) () ")")) (compound_statement "{\n          piVar7 = *(int **)((int)register0x00000010 + -0x44);\n          if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }\n          return;\n        }" ({ "{") (expression_statement "piVar7 = *(int **)((int)register0x00000010 + -0x44);" (assignment_expression "piVar7 = *(int **)((int)register0x00000010 + -0x44)" (identifier "piVar7") (= "=") (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "int **" (primitive_type "int") (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")) () ")"))))) (; ";")) (if_statement "if (piVar7 != piVar4 + 1) {\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }" (if "if") (parenthesized_expression "(piVar7 != piVar4 + 1)" (( "(") (binary_expression "piVar7 != piVar4 + 1" (identifier "piVar7") (!= "!=") (binary_expression "piVar4 + 1" (identifier "piVar4") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n            iVar6 = (int)(piVar4 + 1) - (int)piVar7;\n            *(int *)((int)register0x00000010 + -0x54) = iVar6;\n            *(int **)((int)register0x00000010 + -0x58) = piVar7;\n            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;\n            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;\n            memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));\n            return;\n          }" ({ "{") (expression_statement "iVar6 = (int)(piVar4 + 1) - (int)piVar7;" (assignment_expression "iVar6 = (int)(piVar4 + 1) - (int)piVar7" (identifier "iVar6") (= "=") (binary_expression "(int)(piVar4 + 1) - (int)piVar7" (cast_expression "(int)(piVar4 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar4 + 1)" (( "(") (binary_expression "piVar4 + 1" (identifier "piVar4") (+ "+") (number_literal "1")) () ")"))) (- "-") (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7")))) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x54) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x54)" (( "(") (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x54")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(int **)((int)register0x00000010 + -0x58) = piVar7;" (assignment_expression "*(int **)((int)register0x00000010 + -0x58) = piVar7" (pointer_expression "*(int **)((int)register0x00000010 + -0x58)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x58)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x58)" (( "(") (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x58")) () ")")))) (= "=") (identifier "piVar7")) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x5c)" (( "(") (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x5c")) () ")")))) (= "=") (binary_expression "(int)piVar5 - iVar6" (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5")) (- "-") (identifier "iVar6"))) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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")) () ")")))) (= "=") (number_literal "0x71872")) (; ";")) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54))" (identifier "memmove") (argument_list "(*(void **)((int)register0x00000010 + -0x5c),\n                    *(void **)((int)register0x00000010 + -0x58),\n                    *(size_t *)((int)register0x00000010 + -0x54))" (( "(") (pointer_expression "*(void **)((int)register0x00000010 + -0x5c)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x5c)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x5c)" (( "(") (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x5c")) () ")")))) (, ",") (pointer_expression "*(void **)((int)register0x00000010 + -0x58)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x58)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x58)" (( "(") (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x58")) () ")")))) (, ",") (pointer_expression "*(size_t *)((int)register0x00000010 + -0x54)" (* "*") (cast_expression "(size_t *)((int)register0x00000010 + -0x54)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x54)" (( "(") (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x54")) () ")")))) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "piVar7 = piVar7 + -1;" (assignment_expression "piVar7 = piVar7 + -1" (identifier "piVar7") (= "=") (binary_expression "piVar7 + -1" (identifier "piVar7") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (else_clause "else {\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }" (else "else") (compound_statement "{\n        *piVar5 = iVar6;\n        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }\n        piVar4 = piVar4 + -1;\n      }" ({ "{") (expression_statement "*piVar5 = iVar6;" (assignment_expression "*piVar5 = iVar6" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (= "=") (identifier "iVar6")) (; ";")) (if_statement "if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {\n          return;\n        }" (if "if") (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x44) == piVar4)" (( "(") (binary_expression "*(int **)((int)register0x00000010 + -0x44) == piVar4" (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "int **" (primitive_type "int") (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 "piVar4")) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "piVar4 = piVar4 + -1;" (assignment_expression "piVar4 = piVar4 + -1" (identifier "piVar4") (= "=") (binary_expression "piVar4 + -1" (identifier "piVar4") (+ "+") (number_literal "-1"))) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_000718a5:\n    *(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;" (statement_identifier "LAB_000718a5") (: ":") (expression_statement "*(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x54)" (( "(") (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x54")) () ")")))) (= "=") (binary_expression "*(int *)((int)register0x00000010 + -0x34) + -0x11dd0c" (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 "-0x11dd0c"))) (; ";"))) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x58)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x58)" (( "(") (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x58")) () ")")))) (= "=") (number_literal "0xc5")) (; ";")) (expression_statement "*(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;" (assignment_expression "*(int *)((int)register0x00000010 + -0x5c) =\n         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4" (pointer_expression "*(int *)((int)register0x00000010 + -0x5c)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x5c)" (( "(") (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x5c")) () ")")))) (= "=") (binary_expression "*(int *)((int)register0x00000010 + -0x34) + -0x11d1a4" (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 "-0x11d1a4"))) (; ";")) (expression_statement "*(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;" (assignment_expression "*(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4" (pointer_expression "*(undefined **)((int)register0x00000010 + -0x60)" (* "*") (cast_expression "(undefined **)((int)register0x00000010 + -0x60)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (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")) () ")")))) (= "=") (pointer_expression "&UNK_000718c4" (& "&") (identifier "UNK_000718c4"))) (; ";")) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" (identifier "FUN_000da200") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))))) (return_statement "return;" (return "return") (; ";")) (labeled_statement "joined_r0x000715ef:\n  if ((bVar1 & 1) == 0) goto LAB_000718a5;" (statement_identifier "joined_r0x000715ef") (: ":") (if_statement "if ((bVar1 & 1) == 0) goto LAB_000718a5;" (if "if") (parenthesized_expression "((bVar1 & 1) == 0)" (( "(") (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" (( "(") (binary_expression "bVar1 & 1" (identifier "bVar1") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000718a5;" (goto "goto") (statement_identifier "LAB_000718a5") (; ";")))) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_000718a5;" (if "if") (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(iVar2 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 1)" (( "(") (binary_expression "*(byte *)(iVar2 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar2 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar2 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1c)" (( "(") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000718a5;" (goto "goto") (statement_identifier "LAB_000718a5") (; ";"))) (if_statement "if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {\n    *piVar4 = iVar6;\n    piVar5 = piVar5 + 1;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }\n  else {\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4)))" (( "(") (binary_expression "*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||\n      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (binary_expression "*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8)" (pointer_expression "*(uint *)(iVar6 + 8)" (* "*") (cast_expression "(uint *)(iVar6 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")")))) (< "<") (pointer_expression "*(uint *)(iVar2 + 8)" (* "*") (cast_expression "(uint *)(iVar2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")"))))) (|| "||") (binary_expression "*(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <\n      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (binary_expression "*(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8)" (pointer_expression "*(uint *)(iVar6 + 8)" (* "*") (cast_expression "(uint *)(iVar6 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")")))) (- "-") (pointer_expression "*(uint *)(iVar2 + 8)" (* "*") (cast_expression "(uint *)(iVar2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")"))))) (< "<") (call_expression "(uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))" (( "(") (binary_expression "*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4)" (pointer_expression "*(uint *)(iVar6 + 4)" (* "*") (cast_expression "(uint *)(iVar6 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (< "<") (pointer_expression "*(uint *)(iVar2 + 4)" (* "*") (cast_expression "(uint *)(iVar2 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")"))))) () ")"))))) () ")")) (compound_statement "{\n    *piVar4 = iVar6;\n    piVar5 = piVar5 + 1;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }" ({ "{") (expression_statement "*piVar4 = iVar6;" (assignment_expression "*piVar4 = iVar6" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "piVar5 = piVar5 + 1;" (assignment_expression "piVar5 = piVar5 + 1" (identifier "piVar5") (= "=") (binary_expression "piVar5 + 1" (identifier "piVar5") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }" (if "if") (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x40) == piVar8)" (( "(") (binary_expression "*(int **)((int)register0x00000010 + -0x40) == piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x40)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (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 "piVar8")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }" (else "else") (compound_statement "{\n    piVar8 = piVar8 + 1;\n    *piVar4 = iVar2;\n    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }\n  }" ({ "{") (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 1" (identifier "piVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*piVar4 = iVar2;" (assignment_expression "*piVar4 = iVar2" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (identifier "iVar2")) (; ";")) (if_statement "if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {\n      return;\n    }" (if "if") (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x40) == piVar8)" (( "(") (binary_expression "*(int **)((int)register0x00000010 + -0x40) == piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x40)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (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 "piVar8")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")))) (expression_statement "piVar4 = piVar4 + 1;" (assignment_expression "piVar4 = piVar4 + 1" (identifier "piVar4") (= "=") (binary_expression "piVar4 + 1" (identifier "piVar4") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(int **)((int)register0x00000010 + -0x44) == piVar5) {\n    iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;\nLAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar8;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n    return;\n  }" (if "if") (parenthesized_expression "(*(int **)((int)register0x00000010 + -0x44) == piVar5)" (( "(") (binary_expression "*(int **)((int)register0x00000010 + -0x44) == piVar5" (pointer_expression "*(int **)((int)register0x00000010 + -0x44)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x44)" (( "(") (type_descriptor "int **" (primitive_type "int") (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 "piVar5")) () ")")) (compound_statement "{\n    iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;\nLAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;\n    *(int **)((int)register0x00000010 + -0x58) = piVar8;\n    *(int **)((int)register0x00000010 + -0x5c) = piVar4;\n    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;\n    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));\n    return;\n  }" ({ "{") (expression_statement "iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;" (assignment_expression "iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8" (identifier "iVar6") (= "=") (binary_expression "*(int *)((int)register0x00000010 + -0x40) - (int)piVar8" (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)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8")))) (; ";")) (labeled_statement "LAB_000717de:\n    *(int *)((int)register0x00000010 + -0x54) = iVar6;" (statement_identifier "LAB_000717de") (: ":") (expression_statement "*(int *)((int)register0x00000010 + -0x54) = iVar6;" (assignment_expression "*(int *)((int)register0x00000010 + -0x54) = iVar6" (pointer_expression "*(int *)((int)register0x00000010 + -0x54)" (* "*") (cast_expression "(int *)((int)register0x00000010 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x54)" (( "(") (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x54")) () ")")))) (= "=") (identifier "iVar6")) (; ";"))) (expression_statement "*(int **)((int)register0x00000010 + -0x58) = piVar8;" (assignment_expression "*(int **)((int)register0x00000010 + -0x58) = piVar8" (pointer_expression "*(int **)((int)register0x00000010 + -0x58)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x58)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x58)" (( "(") (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x58")) () ")")))) (= "=") (identifier "piVar8")) (; ";")) (expression_statement "*(int **)((int)register0x00000010 + -0x5c) = piVar4;" (assignment_expression "*(int **)((int)register0x00000010 + -0x5c) = piVar4" (pointer_expression "*(int **)((int)register0x00000010 + -0x5c)" (* "*") (cast_expression "(int **)((int)register0x00000010 + -0x5c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x5c)" (( "(") (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x5c")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (expression_statement "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;" (assignment_expression "*(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed" (pointer_expression "*(undefined4 *)((int)register0x00000010 + -0x60)" (* "*") (cast_expression "(undefined4 *)((int)register0x00000010 + -0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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")) () ")")))) (= "=") (number_literal "0x717ed")) (; ";")) (expression_statement "memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54));" (call_expression "memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54))" (identifier "memmove") (argument_list "(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),\n            *(size_t *)((int)register0x00000010 + -0x54))" (( "(") (pointer_expression "*(void **)((int)register0x00000010 + -0x5c)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x5c)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x5c)" (( "(") (binary_expression "(int)register0x00000010 + -0x5c" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x5c")) () ")")))) (, ",") (pointer_expression "*(void **)((int)register0x00000010 + -0x58)" (* "*") (cast_expression "(void **)((int)register0x00000010 + -0x58)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x58)" (( "(") (binary_expression "(int)register0x00000010 + -0x58" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x58")) () ")")))) (, ",") (pointer_expression "*(size_t *)((int)register0x00000010 + -0x54)" (* "*") (cast_expression "(size_t *)((int)register0x00000010 + -0x54)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)register0x00000010 + -0x54)" (( "(") (binary_expression "(int)register0x00000010 + -0x54" (cast_expression "(int)register0x00000010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "register0x00000010")) (+ "+") (number_literal "-0x54")) () ")")))) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar6 = *piVar5;" (assignment_expression "iVar6 = *piVar5" (identifier "iVar6") (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (expression_statement "iVar2 = *piVar8;" (assignment_expression "iVar2 = *piVar8" (identifier "iVar2") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (expression_statement "bVar1 = *(byte *)(iVar6 + 0x1c);" (assignment_expression "bVar1 = *(byte *)(iVar6 + 0x1c)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(iVar6 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar6 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1c)" (( "(") (binary_expression "iVar6 + 0x1c" (identifier "iVar6") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (goto_statement "goto joined_r0x000715ef;" (goto "goto") (statement_identifier "joined_r0x000715ef") (; ";")) (} "}")))

/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* DWARF original name: __merge_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,
   std::vector<gold::Output_section*> >, int, gold::Output_section**,
   __gnu_cxx::__ops::_Iter_comp_iter<(anonymous namespace)::Target_powerpc<32, true>::Sort_sections>
   > */

void std::
     __merge_adaptive<var_11::var_20<var_12::type_6**,var_21::vector<var_12::type_6*>var_13>,_int,var_14::type_6**,var_15::__ops::_Iter_comp_iter<(anonymous_namespace)::var_22<32,var_16>::var_17>var_13>
               (void)

{
  type_5 var_25;
  int var_3;
  int var_5;
  int *var_7;
  type_1 extraout_ECX;
  int *var_23;
  int var_4;
  int *var_6;
  type_1 unaff_EBX;
  type_1 unaff_EBP;
  int *var_9;
  type_1 unaff_ESI;
  int var_2;
  type_2 uVar9;
  
  while( true ) {
    *(type_1 *)((int)register0x00000010 + -4) = unaff_EBP;
    *(int *)((int)register0x00000010 + -8) = var_2;
    *(type_1 *)((int)register0x00000010 + -0xc) = 0x71557;
    uVar9 = var_1();
    var_6 = (int *)((type_3)uVar9 >> 0x20);
    var_7 = (int *)uVar9;
    *(type_1 *)((int)register0x00000010 + -0xc) = unaff_ESI;
    *(type_1 *)((int)register0x00000010 + -0x10) = unaff_EBX;
    var_4 = *(int *)((int)register0x00000010 + 8);
    var_3 = *(int *)((int)register0x00000010 + 0x10);
    *(type_1 *)((int)register0x00000010 + -0x44) = extraout_ECX;
    var_9 = *(int **)((int)register0x00000010 + 0xc);
    *(int *)((int)register0x00000010 + -0x34) = var_2 + 0x3a2aa9;
    *(int **)((int)register0x00000010 + -0x40) = var_7;
    *(type_1 *)((int)register0x00000010 + -0x3c) = *(type_1 *)((int)register0x00000010 + 4);
    var_5 = var_4;
    if (var_3 < var_4) {
      var_5 = var_3;
    }
    *(int *)((int)register0x00000010 + -0x38) = var_4;
    *(type_4 *)((int)register0x00000010 + -0x2d) =
         *(type_4 *)((int)register0x00000010 + 0x14);
    if (*(int *)((int)register0x00000010 + -0x3c) <= var_5) {
      var_4 = (int)var_6 - (int)var_7;
      var_23 = var_6;
      if (var_6 != var_7) {
        *(int **)((int)register0x00000010 + -0x3c) = var_6;
        *(int *)((int)register0x00000010 + -0x54) = var_4;
        *(int *)((int)register0x00000010 + -0x40) = var_4;
        *(int **)((int)register0x00000010 + -0x58) = var_7;
        *(int **)((int)register0x00000010 + -0x5c) = var_9;
        *(type_1 *)((int)register0x00000010 + -0x60) = 0x715c5;
        var_8(*(void **)((int)register0x00000010 + -0x5c),
                *(void **)((int)register0x00000010 + -0x58),
                *(size_t *)((int)register0x00000010 + -0x54));
        var_23 = *(int **)((int)register0x00000010 + -0x3c);
        var_4 = *(int *)((int)register0x00000010 + -0x40);
      }
      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)var_9 + var_4);
      if (var_9 == (int *)((int)var_9 + var_4)) {
        return;
      }
      if (*(int **)((int)register0x00000010 + -0x44) == var_6) goto LAB_000717de;
      var_4 = *var_6;
      var_3 = *var_9;
      var_25 = *(type_5 *)(var_4 + 0x1c);
      goto joined_r0x000715ef;
    }
    if (*(int *)((int)register0x00000010 + -0x38) <= var_3) break;
    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {
      var_4 = *(int *)((int)register0x00000010 + -0x3c) / 2;
      *(int *)((int)register0x00000010 + -0x34) = var_4;
      var_4 = *(int *)((int)register0x00000010 + -0x40) + var_4 * 4;
      *(int *)((int)register0x00000010 + -0x2c) = var_4;
      *(type_1 **)((int)register0x00000010 + -0x24) =
           (type_1 *)((int)register0x00000010 + -0x20);
      *(int *)((int)register0x00000010 + -0x5c) = var_4;
      *(type_1 *)((int)register0x00000010 + -0x60) = 0x7182f;
      var_10<var_11::var_20<var_12::type_6**,var_21::vector<var_12::type_6*>var_13>,var_14::type_6*,var_15::__ops::_Iter_comp_val<(anonymous_namespace)::var_22<32,var_16>::var_17>var_13>
                ();
      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);
      var_4 = *(int *)((int)register0x00000010 + -0x20) - (int)var_6 >> 2;
    }
    else {
      var_4 = *(int *)((int)register0x00000010 + -0x38) / 2;
      *(int **)((int)register0x00000010 + -0x28) = var_6 + var_4;
      *(type_1 **)((int)register0x00000010 + -0x24) =
           (type_1 *)((int)register0x00000010 + -0x20);
      *(int **)((int)register0x00000010 + -0x5c) = var_6 + var_4;
      *(type_1 *)((int)register0x00000010 + -0x60) = 0x7173d;
      var_18<var_11::var_20<var_12::type_6**,var_21::vector<var_12::type_6*>var_13>,var_14::type_6*,var_15::__ops::_Val_comp_iter<(anonymous_namespace)::var_22<32,var_16>::var_17>var_13>
                ();
      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);
      *(int *)((int)register0x00000010 + -0x34) =
           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>
           2;
    }
    var_5 = *(int *)((int)register0x00000010 + -0x3c);
    *(int *)((int)register0x00000010 + -0x50) = var_3;
    *(int **)((int)register0x00000010 + -0x54) = var_9;
    *(int *)((int)register0x00000010 + -0x58) = var_4;
    *(int *)((int)register0x00000010 + -0x3c) = var_5 - *(int *)((int)register0x00000010 + -0x34);
    *(int *)((int)register0x00000010 + -0x5c) = var_5 - *(int *)((int)register0x00000010 + -0x34);
    *(type_1 *)((int)register0x00000010 + -0x60) =
         *(type_1 *)((int)register0x00000010 + -0x28);
    *(int **)((int)register0x00000010 + -100) = var_6;
    *(type_1 *)((int)register0x00000010 + -0x68) =
         *(type_1 *)((int)register0x00000010 + -0x2c);
    *(type_1 *)((int)register0x00000010 + -0x6c) =
         *(type_1 *)((int)register0x00000010 + -0x24);
    *(type_1 *)((int)register0x00000010 + -0x70) = 0x71775;
    var_19<var_11::var_20<var_12::type_6**,var_21::vector<var_12::type_6*>var_13>,var_14::type_6**,_int>
              ((var_20<var_12::type_6**,var_21::vector<var_12::type_6*,var_21::allocator<var_12::type_6*>var_13>var_13>
                )*(type_6 ***)((int)register0x00000010 + -0x6c),
               (var_20<var_12::type_6**,var_21::vector<var_12::type_6*,var_21::allocator<var_12::type_6*>var_13>var_13>
                )*(type_6 ***)((int)register0x00000010 + -0x68),
               (var_20<var_12::type_6**,var_21::vector<var_12::type_6*,var_21::allocator<var_12::type_6*>var_13>var_13>
                )*(type_6 ***)((int)register0x00000010 + -100),
               *(int *)((int)register0x00000010 + -0x60),*(int *)((int)register0x00000010 + -0x5c),
               *(type_6 ***)((int)register0x00000010 + -0x58),
               *(int *)((int)register0x00000010 + -0x54));
    *(type_8 *)((int)register0x00000010 + -0x60) = (type_8)*(type_5 *)((int)register0x00000010 + -0x31);
    *(int *)((int)register0x00000010 + -100) = var_3;
    *(int **)((int)register0x00000010 + -0x68) = var_9;
    *(int *)((int)register0x00000010 + -0x6c) = var_4;
    *(type_1 *)((int)register0x00000010 + -0x70) =
         *(type_1 *)((int)register0x00000010 + -0x38);
    *(type_1 *)((int)register0x00000010 + -0x74) = 0x71798;
    __merge_adaptive<var_11::var_20<var_12::type_6**,var_21::vector<var_12::type_6*>var_13>,_int,var_14::type_6**,var_15::__ops::_Iter_comp_iter<(anonymous_namespace)::var_22<32,var_16>::var_17>var_13>
              ();
    *(int *)((int)register0x00000010 + 0xc) = var_3;
    *(int **)((int)register0x00000010 + 8) = var_9;
    *(type_4 *)((int)register0x00000010 + 0x10) =
         *(type_4 *)((int)register0x00000010 + -0x31);
    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - var_4;
    *(type_1 *)register0x00000010 = *(type_1 *)((int)register0x00000010 + -0x40);
    unaff_EBX = *(type_1 *)((int)register0x00000010 + -0x14);
    unaff_ESI = *(type_1 *)((int)register0x00000010 + -0x10);
    var_2 = *(int *)((int)register0x00000010 + -0xc);
    unaff_EBP = *(type_1 *)((int)register0x00000010 + -8);
    register0x00000010 = (type_7 *)((int)register0x00000010 + -4);
  }
  var_4 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)var_6;
  if (*(int **)((int)register0x00000010 + -0x44) != var_6) {
    *(int *)((int)register0x00000010 + -0x54) = var_4;
    *(int **)((int)register0x00000010 + -0x58) = var_6;
    *(int **)((int)register0x00000010 + -0x5c) = var_9;
    *(type_1 *)((int)register0x00000010 + -0x60) = 0x71685;
    var_8(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),
            *(size_t *)((int)register0x00000010 + -0x54));
  }
  var_7 = (int *)((int)var_9 + var_4);
  if (var_6 == *(int **)((int)register0x00000010 + -0x40)) {
    if (var_9 != var_7) {
      *(int *)((int)register0x00000010 + -0x54) = var_4;
      *(int **)((int)register0x00000010 + -0x58) = var_9;
      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - var_4;
      *(type_1 *)((int)register0x00000010 + -0x60) = 0x7189d;
      var_8(*(void **)((int)register0x00000010 + -0x5c),
              *(void **)((int)register0x00000010 + -0x58),
              *(size_t *)((int)register0x00000010 + -0x54));
    }
  }
  else if (var_9 != var_7) {
    var_6 = var_6 + -1;
    var_23 = *(int **)((int)register0x00000010 + -0x44);
    var_7 = var_7 + -1;
    *(int **)((int)register0x00000010 + -0x44) = var_9;
    while( true ) {
      var_23 = var_23 + -1;
      var_4 = *var_7;
      var_3 = *var_6;
      if ((*(type_5 *)(var_4 + 0x1c) & 1) == 0) break;
      if ((*(type_5 *)(var_3 + 0x1c) & 1) == 0) break;
      if (*(type_8 *)(var_4 + 8) < *(type_8 *)(var_3 + 8) ||
          *(type_8 *)(var_4 + 8) - *(type_8 *)(var_3 + 8) <
          (type_8)(*(type_8 *)(var_4 + 4) < *(type_8 *)(var_3 + 4))) {
        *var_23 = var_3;
        if (var_6 == *(int **)((int)register0x00000010 + -0x40)) {
          var_6 = *(int **)((int)register0x00000010 + -0x44);
          if (var_6 != var_7 + 1) {
            var_4 = (int)(var_7 + 1) - (int)var_6;
            *(int *)((int)register0x00000010 + -0x54) = var_4;
            *(int **)((int)register0x00000010 + -0x58) = var_6;
            *(int *)((int)register0x00000010 + -0x5c) = (int)var_23 - var_4;
            *(type_1 *)((int)register0x00000010 + -0x60) = 0x71872;
            var_8(*(void **)((int)register0x00000010 + -0x5c),
                    *(void **)((int)register0x00000010 + -0x58),
                    *(size_t *)((int)register0x00000010 + -0x54));
            return;
          }
          return;
        }
        var_6 = var_6 + -1;
      }
      else {
        *var_23 = var_4;
        if (*(int **)((int)register0x00000010 + -0x44) == var_7) {
          return;
        }
        var_7 = var_7 + -1;
      }
    }
LAB_000718a5:
    *(int *)((int)register0x00000010 + -0x54) =
         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;
    *(type_1 *)((int)register0x00000010 + -0x58) = 0xc5;
    *(int *)((int)register0x00000010 + -0x5c) =
         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;
                    /* WARNING: Subroutine does not return */
    *(type_9 **)((int)register0x00000010 + -0x60) = &UNK_000718c4;
    gold::var_24
              (*(char **)((int)register0x00000010 + -0x5c),*(int *)((int)register0x00000010 + -0x58)
               ,*(char **)((int)register0x00000010 + -0x54));
  }
  return;
joined_r0x000715ef:
  if ((var_25 & 1) == 0) goto LAB_000718a5;
  if ((*(type_5 *)(var_3 + 0x1c) & 1) == 0) goto LAB_000718a5;
  if (*(type_8 *)(var_4 + 8) < *(type_8 *)(var_3 + 8) ||
      *(type_8 *)(var_4 + 8) - *(type_8 *)(var_3 + 8) <
      (type_8)(*(type_8 *)(var_4 + 4) < *(type_8 *)(var_3 + 4))) {
    *var_7 = var_4;
    var_23 = var_23 + 1;
    if (*(int **)((int)register0x00000010 + -0x40) == var_9) {
      return;
    }
  }
  else {
    var_9 = var_9 + 1;
    *var_7 = var_3;
    if (*(int **)((int)register0x00000010 + -0x40) == var_9) {
      return;
    }
  }
  var_7 = var_7 + 1;
  if (*(int **)((int)register0x00000010 + -0x44) == var_23) {
    var_4 = *(int *)((int)register0x00000010 + -0x40) - (int)var_9;
LAB_000717de:
    *(int *)((int)register0x00000010 + -0x54) = var_4;
    *(int **)((int)register0x00000010 + -0x58) = var_9;
    *(int **)((int)register0x00000010 + -0x5c) = var_7;
    *(type_1 *)((int)register0x00000010 + -0x60) = 0x717ed;
    var_8(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),
            *(size_t *)((int)register0x00000010 + -0x54));
    return;
  }
  var_4 = *var_23;
  var_3 = *var_9;
  var_25 = *(type_5 *)(var_4 + 0x1c);
  goto joined_r0x000715ef;
}


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

void MASKED(void)

{
  byte bVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  undefined4 extraout_ECX;
  int *piVar5;
  int iVar6;
  int *piVar7;
  undefined4 unaff_EBX;
  undefined4 unaff_EBP;
  int *piVar8;
  undefined4 unaff_ESI;
  int unaff_EDI;
  undefined8 uVar9;
  
  while( true ) {
    *(undefined4 *)((int)register0x00000010 + -4) = unaff_EBP;
    *(int *)((int)register0x00000010 + -8) = unaff_EDI;
    *(undefined4 *)((int)register0x00000010 + -0xc) = 0x71557;
    uVar9 = FUN_000b484e();
    piVar7 = (int *)((ulonglong)uVar9 >> 0x20);
    piVar4 = (int *)uVar9;
    *(undefined4 *)((int)register0x00000010 + -0xc) = unaff_ESI;
    *(undefined4 *)((int)register0x00000010 + -0x10) = unaff_EBX;
    iVar6 = *(int *)((int)register0x00000010 + 8);
    iVar2 = *(int *)((int)register0x00000010 + 0x10);
    *(undefined4 *)((int)register0x00000010 + -0x44) = extraout_ECX;
    piVar8 = *(int **)((int)register0x00000010 + 0xc);
    *(int *)((int)register0x00000010 + -0x34) = unaff_EDI + 0x3a2aa9;
    *(int **)((int)register0x00000010 + -0x40) = piVar4;
    *(undefined4 *)((int)register0x00000010 + -0x3c) = *(undefined4 *)((int)register0x00000010 + 4);
    iVar3 = iVar6;
    if (iVar2 < iVar6) {
      iVar3 = iVar2;
    }
    *(int *)((int)register0x00000010 + -0x38) = iVar6;
    *(undefined1 *)((int)register0x00000010 + -0x2d) =
         *(undefined1 *)((int)register0x00000010 + 0x14);
    if (*(int *)((int)register0x00000010 + -0x3c) <= iVar3) {
      iVar6 = (int)piVar7 - (int)piVar4;
      piVar5 = piVar7;
      if (piVar7 != piVar4) {
        *(int **)((int)register0x00000010 + -0x3c) = piVar7;
        *(int *)((int)register0x00000010 + -0x54) = iVar6;
        *(int *)((int)register0x00000010 + -0x40) = iVar6;
        *(int **)((int)register0x00000010 + -0x58) = piVar4;
        *(int **)((int)register0x00000010 + -0x5c) = piVar8;
        *(undefined4 *)((int)register0x00000010 + -0x60) = 0x715c5;
        memmove(*(void **)((int)register0x00000010 + -0x5c),
                *(void **)((int)register0x00000010 + -0x58),
                *(size_t *)((int)register0x00000010 + -0x54));
        piVar5 = *(int **)((int)register0x00000010 + -0x3c);
        iVar6 = *(int *)((int)register0x00000010 + -0x40);
      }
      *(int **)((int)register0x00000010 + -0x40) = (int *)((int)piVar8 + iVar6);
      if (piVar8 == (int *)((int)piVar8 + iVar6)) {
        return;
      }
      if (*(int **)((int)register0x00000010 + -0x44) == piVar7) goto LAB_000717de;
      iVar6 = *piVar7;
      iVar2 = *piVar8;
      bVar1 = *(byte *)(iVar6 + 0x1c);
      goto joined_r0x000715ef;
    }
    if (*(int *)((int)register0x00000010 + -0x38) <= iVar2) break;
    if (*(int *)((int)register0x00000010 + -0x38) < *(int *)((int)register0x00000010 + -0x3c)) {
      iVar6 = *(int *)((int)register0x00000010 + -0x3c) / 2;
      *(int *)((int)register0x00000010 + -0x34) = iVar6;
      iVar6 = *(int *)((int)register0x00000010 + -0x40) + iVar6 * 4;
      *(int *)((int)register0x00000010 + -0x2c) = iVar6;
      *(undefined4 **)((int)register0x00000010 + -0x24) =
           (undefined4 *)((int)register0x00000010 + -0x20);
      *(int *)((int)register0x00000010 + -0x5c) = iVar6;
      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7182f;
      FUN_0005cdd0();
      *(int *)((int)register0x00000010 + -0x28) = *(int *)((int)register0x00000010 + -0x20);
      iVar6 = *(int *)((int)register0x00000010 + -0x20) - (int)piVar7 >> 2;
    }
    else {
      iVar6 = *(int *)((int)register0x00000010 + -0x38) / 2;
      *(int **)((int)register0x00000010 + -0x28) = piVar7 + iVar6;
      *(undefined4 **)((int)register0x00000010 + -0x24) =
           (undefined4 *)((int)register0x00000010 + -0x20);
      *(int **)((int)register0x00000010 + -0x5c) = piVar7 + iVar6;
      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7173d;
      FUN_0005cef0();
      *(int *)((int)register0x00000010 + -0x2c) = *(int *)((int)register0x00000010 + -0x20);
      *(int *)((int)register0x00000010 + -0x34) =
           *(int *)((int)register0x00000010 + -0x20) - *(int *)((int)register0x00000010 + -0x40) >>
           2;
    }
    iVar3 = *(int *)((int)register0x00000010 + -0x3c);
    *(int *)((int)register0x00000010 + -0x50) = iVar2;
    *(int **)((int)register0x00000010 + -0x54) = piVar8;
    *(int *)((int)register0x00000010 + -0x58) = iVar6;
    *(int *)((int)register0x00000010 + -0x3c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);
    *(int *)((int)register0x00000010 + -0x5c) = iVar3 - *(int *)((int)register0x00000010 + -0x34);
    *(undefined4 *)((int)register0x00000010 + -0x60) =
         *(undefined4 *)((int)register0x00000010 + -0x28);
    *(int **)((int)register0x00000010 + -100) = piVar7;
    *(undefined4 *)((int)register0x00000010 + -0x68) =
         *(undefined4 *)((int)register0x00000010 + -0x2c);
    *(undefined4 *)((int)register0x00000010 + -0x6c) =
         *(undefined4 *)((int)register0x00000010 + -0x24);
    *(undefined4 *)((int)register0x00000010 + -0x70) = 0x71775;
    FUN_000affe0();
    *(uint *)((int)register0x00000010 + -0x60) = (uint)*(byte *)((int)register0x00000010 + -0x31);
    *(int *)((int)register0x00000010 + -100) = iVar2;
    *(int **)((int)register0x00000010 + -0x68) = piVar8;
    *(int *)((int)register0x00000010 + -0x6c) = iVar6;
    *(undefined4 *)((int)register0x00000010 + -0x70) =
         *(undefined4 *)((int)register0x00000010 + -0x38);
    *(undefined4 *)((int)register0x00000010 + -0x74) = 0x71798;
    MASKED();
    *(int *)((int)register0x00000010 + 0xc) = iVar2;
    *(int **)((int)register0x00000010 + 8) = piVar8;
    *(undefined1 *)((int)register0x00000010 + 0x10) =
         *(undefined1 *)((int)register0x00000010 + -0x31);
    *(int *)((int)register0x00000010 + 4) = *(int *)((int)register0x00000010 + -0x3c) - iVar6;
    *(undefined4 *)register0x00000010 = *(undefined4 *)((int)register0x00000010 + -0x40);
    unaff_EBX = *(undefined4 *)((int)register0x00000010 + -0x14);
    unaff_ESI = *(undefined4 *)((int)register0x00000010 + -0x10);
    unaff_EDI = *(int *)((int)register0x00000010 + -0xc);
    unaff_EBP = *(undefined4 *)((int)register0x00000010 + -8);
    register0x00000010 = (BADSPACEBASE *)((int)register0x00000010 + -4);
  }
  iVar6 = (int)*(int **)((int)register0x00000010 + -0x44) - (int)piVar7;
  if (*(int **)((int)register0x00000010 + -0x44) != piVar7) {
    *(int *)((int)register0x00000010 + -0x54) = iVar6;
    *(int **)((int)register0x00000010 + -0x58) = piVar7;
    *(int **)((int)register0x00000010 + -0x5c) = piVar8;
    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71685;
    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),
            *(size_t *)((int)register0x00000010 + -0x54));
  }
  piVar4 = (int *)((int)piVar8 + iVar6);
  if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {
    if (piVar8 != piVar4) {
      *(int *)((int)register0x00000010 + -0x54) = iVar6;
      *(int **)((int)register0x00000010 + -0x58) = piVar8;
      *(int *)((int)register0x00000010 + -0x5c) = *(int *)((int)register0x00000010 + -0x44) - iVar6;
      *(undefined4 *)((int)register0x00000010 + -0x60) = 0x7189d;
      memmove(*(void **)((int)register0x00000010 + -0x5c),
              *(void **)((int)register0x00000010 + -0x58),
              *(size_t *)((int)register0x00000010 + -0x54));
    }
  }
  else if (piVar8 != piVar4) {
    piVar7 = piVar7 + -1;
    piVar5 = *(int **)((int)register0x00000010 + -0x44);
    piVar4 = piVar4 + -1;
    *(int **)((int)register0x00000010 + -0x44) = piVar8;
    while( true ) {
      piVar5 = piVar5 + -1;
      iVar6 = *piVar4;
      iVar2 = *piVar7;
      if ((*(byte *)(iVar6 + 0x1c) & 1) == 0) break;
      if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) break;
      if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||
          *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <
          (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {
        *piVar5 = iVar2;
        if (piVar7 == *(int **)((int)register0x00000010 + -0x40)) {
          piVar7 = *(int **)((int)register0x00000010 + -0x44);
          if (piVar7 != piVar4 + 1) {
            iVar6 = (int)(piVar4 + 1) - (int)piVar7;
            *(int *)((int)register0x00000010 + -0x54) = iVar6;
            *(int **)((int)register0x00000010 + -0x58) = piVar7;
            *(int *)((int)register0x00000010 + -0x5c) = (int)piVar5 - iVar6;
            *(undefined4 *)((int)register0x00000010 + -0x60) = 0x71872;
            memmove(*(void **)((int)register0x00000010 + -0x5c),
                    *(void **)((int)register0x00000010 + -0x58),
                    *(size_t *)((int)register0x00000010 + -0x54));
            return;
          }
          return;
        }
        piVar7 = piVar7 + -1;
      }
      else {
        *piVar5 = iVar6;
        if (*(int **)((int)register0x00000010 + -0x44) == piVar4) {
          return;
        }
        piVar4 = piVar4 + -1;
      }
    }
LAB_000718a5:
    *(int *)((int)register0x00000010 + -0x54) =
         *(int *)((int)register0x00000010 + -0x34) + -0x11dd0c;
    *(undefined4 *)((int)register0x00000010 + -0x58) = 0xc5;
    *(int *)((int)register0x00000010 + -0x5c) =
         *(int *)((int)register0x00000010 + -0x34) + -0x11d1a4;
                    /* WARNING: Subroutine does not return */
    *(undefined **)((int)register0x00000010 + -0x60) = &UNK_000718c4;
    FUN_000da200();
  }
  return;
joined_r0x000715ef:
  if ((bVar1 & 1) == 0) goto LAB_000718a5;
  if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_000718a5;
  if (*(uint *)(iVar6 + 8) < *(uint *)(iVar2 + 8) ||
      *(uint *)(iVar6 + 8) - *(uint *)(iVar2 + 8) <
      (uint)(*(uint *)(iVar6 + 4) < *(uint *)(iVar2 + 4))) {
    *piVar4 = iVar6;
    piVar5 = piVar5 + 1;
    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {
      return;
    }
  }
  else {
    piVar8 = piVar8 + 1;
    *piVar4 = iVar2;
    if (*(int **)((int)register0x00000010 + -0x40) == piVar8) {
      return;
    }
  }
  piVar4 = piVar4 + 1;
  if (*(int **)((int)register0x00000010 + -0x44) == piVar5) {
    iVar6 = *(int *)((int)register0x00000010 + -0x40) - (int)piVar8;
LAB_000717de:
    *(int *)((int)register0x00000010 + -0x54) = iVar6;
    *(int **)((int)register0x00000010 + -0x58) = piVar8;
    *(int **)((int)register0x00000010 + -0x5c) = piVar4;
    *(undefined4 *)((int)register0x00000010 + -0x60) = 0x717ed;
    memmove(*(void **)((int)register0x00000010 + -0x5c),*(void **)((int)register0x00000010 + -0x58),
            *(size_t *)((int)register0x00000010 + -0x54));
    return;
  }
  iVar6 = *piVar5;
  iVar2 = *piVar8;
  bVar1 = *(byte *)(iVar6 + 0x1c);
  goto joined_r0x000715ef;
}

