
void __gmpz_ior(mpz_ptr res,mpz_srcptr op1,mpz_srcptr op2)

{
  undefined8 *puVar1;
  ulong *puVar2;
  undefined8 *puVar3;
  mp_limb_t mVar4;
  undefined8 uVar5;
  tmp_reentrant_t *mark;
  mpz_ptr m;
  int iVar6;
  mpz_srcptr p_Var7;
  mp_limb_t *pmVar8;
  mp_limb_t *pmVar9;
  ulong *puVar10;
  mp_limb_t *pmVar11;
  long lVar12;
  mpz_srcptr new_alloc;
  mp_limb_t *pmVar13;
  undefined1 *puVar14;
  undefined1 *puVar15;
  undefined1 *puVar16;
  long lVar17;
  size_t size;
  long lVar18;
  mp_limb_t *pmVar19;
  mp_limb_t *pmVar20;
  int iVar21;
  uint uVar22;
  mp_limb_t *pmVar23;
  mp_limb_t *pmVar24;
  mp_limb_t *pmVar25;
  ulong uVar26;
  ulong uVar27;
  long in_FS_OFFSET;
  undefined1 auStack_78 [8];
  mp_limb_t *local_70;
  mpz_srcptr local_68;
  mpz_srcptr local_60;
  mp_limb_t *local_58;
  mpz_ptr local_50;
  tmp_reentrant_t *__tmp_marker;
  long local_40;
  
  puVar14 = auStack_78;
  puVar16 = auStack_78;
  puVar15 = auStack_78;
  iVar6 = op1->_mp_size;
  pmVar19 = (mp_limb_t *)(long)iVar6;
  iVar21 = op2->_mp_size;
  pmVar11 = (mp_limb_t *)(long)iVar21;
  pmVar24 = op1->_mp_d;
  pmVar8 = op2->_mp_d;
  pmVar9 = res->_mp_d;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  __tmp_marker = (tmp_reentrant_t *)0x0;
  local_50 = res;
  if ((long)pmVar19 < 0) {
    pmVar13 = pmVar11;
    op1 = op2;
    pmVar23 = pmVar24;
    pmVar20 = pmVar8;
    pmVar25 = pmVar19;
    if ((long)pmVar11 < 0) {
      if ((long)pmVar11 <= (long)pmVar19) {
        pmVar11 = pmVar19;
      }
      lVar17 = -(long)pmVar11;
      size = (long)pmVar11 * -0x10;
      if (size < 0x7f01) {
        puVar16 = auStack_78 + -(size + 0x10);
        pmVar19 = (mp_limb_t *)((long)&local_70 + -(size + 0x10));
        pmVar20 = pmVar11;
      }
      else {
        local_58 = pmVar11;
        pmVar19 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,size);
        pmVar20 = local_58;
      }
      mVar4 = *pmVar24;
      pmVar13 = pmVar19 + -(long)pmVar20;
      *pmVar19 = mVar4 - 1;
      if (mVar4 == 0) {
        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {
LAB_0011d84a:
          mVar4 = *pmVar8;
          *pmVar13 = mVar4 - 1;
          uVar26 = 0;
          if (mVar4 == 0) goto LAB_0011d42d;
        }
        else {
          mVar4 = pmVar24[1];
          pmVar19[1] = mVar4 - 1;
          if (mVar4 == 0) {
            if (-3 < (long)pmVar20) goto LAB_0011d53d;
            mVar4 = pmVar24[2];
            pmVar19[2] = mVar4 - 1;
            lVar12 = 3;
            while (mVar4 == 0) {
              if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d53d;
              mVar4 = pmVar24[lVar12];
              pmVar19[lVar12] = mVar4 - 1;
              lVar12 = lVar12 + 1;
            }
          }
          else {
            lVar12 = 2;
          }
          if ((pmVar19 != pmVar24) && ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17)) {
            pmVar23 = pmVar24 + lVar12;
            local_58 = pmVar19 + lVar12;
            local_60 = (mpz_srcptr)CONCAT71(local_60._1_7_,pmVar19 + lVar12 + 2 <= pmVar23);
            if ((pmVar19 + lVar12 + 2 <= pmVar23 || pmVar24 + lVar12 + 2 <= local_58) &&
               (3 < ~(ulong)pmVar20 - lVar12)) {
              local_60 = (mpz_srcptr)(lVar17 - lVar12);
              lVar18 = 0;
              do {
                uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1];
                *(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18);
                ((undefined8 *)((long)local_58 + lVar18))[1] = uVar5;
                lVar18 = lVar18 + 0x10;
              } while (lVar18 != ((ulong)local_60 >> 1) * 0x10);
              lVar12 = (long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc +
                       lVar12;
              if (local_60 != (mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)) {
LAB_0011d534:
                pmVar19[lVar12] = pmVar24[lVar12];
              }
            }
            else {
              do {
                pmVar19[lVar12] = pmVar24[lVar12];
                lVar12 = lVar12 + 1;
              } while ((mp_limb_t *)-lVar12 != pmVar11);
            }
          }
LAB_0011d53d:
          uVar26 = ~(ulong)pmVar20;
          mVar4 = *pmVar8;
          *pmVar13 = mVar4 - 1;
          if (mVar4 == 0) goto LAB_0011d551;
        }
LAB_0011d3a0:
        if ((pmVar8 == pmVar13) || (pmVar20 == (mp_limb_t *)0xffffffffffffffff)) goto LAB_0011d42d;
        if ((pmVar8 + 1 < pmVar19 + (3 - (long)pmVar20) &&
             pmVar19 + (1 - (long)pmVar20) < pmVar8 + 3) || (-6 < (long)pmVar20)) {
          lVar12 = 1;
          do {
            pmVar13[lVar12] = pmVar8[lVar12];
            lVar12 = lVar12 + 1;
          } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);
          goto LAB_0011d42d;
        }
        uVar27 = 1;
        if ((long)pmVar20 < -1) {
          uVar27 = uVar26;
        }
        lVar17 = 0;
        do {
          puVar3 = (undefined8 *)((long)pmVar8 + lVar17 + 8);
          uVar5 = puVar3[1];
          puVar1 = (undefined8 *)((long)(pmVar19 + (1 - (long)pmVar20)) + lVar17);
          *puVar1 = *puVar3;
          puVar1[1] = uVar5;
          lVar17 = lVar17 + 0x10;
        } while (lVar17 != (uVar27 >> 1) * 0x10);
        lVar12 = (uVar27 & 0xfffffffffffffffe) + 1;
        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;
      }
      else {
        if (pmVar19 != pmVar24) {
          if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011d84a;
          if ((pmVar24 + 1 < pmVar19 + 3 && pmVar19 + 1 < pmVar24 + 3) || (-6 < (long)pmVar20)) {
            lVar12 = 1;
            do {
              pmVar19[lVar12] = pmVar24[lVar12];
              lVar12 = lVar12 + 1;
            } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);
          }
          else {
            lVar12 = 8;
            uVar26 = 1;
            if ((long)pmVar20 < -1) {
              uVar26 = ~(ulong)pmVar20;
            }
            do {
              uVar5 = ((undefined8 *)((long)pmVar24 + lVar12))[1];
              *(undefined8 *)((long)pmVar19 + lVar12) = *(undefined8 *)((long)pmVar24 + lVar12);
              ((undefined8 *)((long)pmVar19 + lVar12))[1] = uVar5;
              lVar12 = lVar12 + 0x10;
            } while (lVar12 != (uVar26 >> 1) * 0x10 + 8);
            lVar12 = (uVar26 & 0xfffffffffffffffe) + 1;
            if (uVar26 != (uVar26 & 0xfffffffffffffffe)) goto LAB_0011d534;
          }
          goto LAB_0011d53d;
        }
        mVar4 = *pmVar8;
        *pmVar13 = mVar4 - 1;
        if (mVar4 != 0) {
          uVar26 = ~(ulong)pmVar20;
          goto LAB_0011d3a0;
        }
        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {
          uVar26 = 0;
          goto LAB_0011d42d;
        }
LAB_0011d551:
        uVar26 = ~(ulong)pmVar20;
        mVar4 = pmVar8[1];
        pmVar13[1] = mVar4 - 1;
        if (mVar4 == 0) {
          if (-3 < (long)pmVar20) goto LAB_0011d42d;
          mVar4 = pmVar8[2];
          lVar12 = 3;
          pmVar13[2] = mVar4 - 1;
          while (mVar4 == 0) {
            if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d42d;
            mVar4 = pmVar8[lVar12];
            pmVar13[lVar12] = mVar4 - 1;
            lVar12 = lVar12 + 1;
          }
        }
        else {
          lVar12 = 2;
        }
        if ((pmVar8 == pmVar13) || (SBORROW8(lVar12,lVar17) == (long)(lVar12 + (long)pmVar11) < 0))
        goto LAB_0011d42d;
        if ((pmVar13 + lVar12 < pmVar8 + lVar12 + 2 && pmVar8 + lVar12 < pmVar13 + lVar12 + 2) ||
           (uVar26 - lVar12 < 4)) {
          do {
            pmVar13[lVar12] = pmVar8[lVar12];
            lVar12 = lVar12 + 1;
          } while ((mp_limb_t *)-lVar12 != pmVar11);
          goto LAB_0011d42d;
        }
        uVar27 = lVar17 - lVar12;
        lVar17 = 0;
        do {
          puVar1 = (undefined8 *)((long)(pmVar8 + lVar12) + lVar17);
          uVar5 = puVar1[1];
          puVar3 = (undefined8 *)((long)(pmVar13 + lVar12) + lVar17);
          *puVar3 = *puVar1;
          puVar3[1] = uVar5;
          lVar17 = lVar17 + 0x10;
        } while (lVar17 != (uVar27 >> 1) * 0x10);
        lVar12 = lVar12 + (uVar27 & 0xfffffffffffffffe);
        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;
      }
      pmVar13[lVar12] = pmVar8[lVar12];
LAB_0011d42d:
      if ((pmVar13[uVar26] & pmVar19[uVar26]) == 0) goto code_r0x0011d43b;
      lVar17 = uVar26 + 1;
      if (lVar17 < local_50->_mp_alloc) {
        puVar10 = local_50->_mp_d;
      }
      else {
        *(undefined8 *)(puVar16 + -8) = 0x11d8b7;
        local_58 = pmVar13;
        puVar10 = (ulong *)__gmpz_realloc(local_50,uVar26 + 2);
        pmVar13 = local_58;
      }
      *(undefined8 *)(puVar16 + -8) = 0x11d6ca;
      __gmpn_and_n(puVar10,pmVar19,pmVar13,lVar17);
      puVar2 = puVar10 + lVar17;
      *puVar2 = 0;
      do {
        uVar26 = *puVar10;
        *puVar10 = *puVar10 + 1;
        puVar10 = puVar10 + 1;
      } while (0xfffffffffffffffe < uVar26);
      iVar6 = -((int)lVar17 + (int)*puVar2);
      goto LAB_0011d44c;
    }
  }
  else {
    pmVar13 = pmVar19;
    pmVar23 = pmVar8;
    pmVar20 = pmVar24;
    pmVar25 = pmVar11;
    if (-1 < (long)pmVar11) {
      if ((long)pmVar19 < (long)pmVar11) {
        if (res->_mp_alloc < iVar21) {
          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);
          local_70 = pmVar19;
          local_68 = op1;
          local_58 = pmVar11;
          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar11);
          pmVar24 = local_68->_mp_d;
          pmVar11 = local_58;
          pmVar19 = local_70;
          iVar21 = (int)local_60;
        }
        iVar6 = iVar21;
        if (pmVar9 != pmVar8) {
          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);
          local_58 = pmVar19;
          __gmpn_copyi(pmVar9 + (long)pmVar19,pmVar8 + (long)pmVar19,(long)pmVar11 - (long)pmVar19);
          pmVar19 = local_58;
          iVar6 = (int)local_60;
        }
        if (pmVar19 != (mp_limb_t *)0x0) {
          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);
          __gmpn_ior_n(pmVar9,pmVar24,pmVar8,pmVar19);
          iVar6 = (int)local_58;
        }
      }
      else {
        if (res->_mp_alloc < iVar6) {
          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);
          local_70 = pmVar11;
          local_68 = op2;
          local_58 = pmVar19;
          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar19);
          pmVar8 = local_68->_mp_d;
          pmVar11 = local_70;
          pmVar19 = local_58;
          iVar6 = (int)local_60;
        }
        if (pmVar9 != pmVar24) {
          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);
          local_58 = pmVar11;
          __gmpn_copyi(pmVar9 + (long)pmVar11,pmVar24 + (long)pmVar11,(long)pmVar19 - (long)pmVar11)
          ;
          pmVar11 = local_58;
          iVar6 = (int)local_60;
        }
        if (pmVar11 != (mp_limb_t *)0x0) {
          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);
          __gmpn_ior_n(pmVar9,pmVar24,pmVar8);
          iVar6 = (int)local_58;
        }
      }
      local_50->_mp_size = iVar6;
      goto LAB_0011cf61;
    }
  }
  pmVar24 = (mp_limb_t *)((long)pmVar25 * -8);
  if (pmVar24 < (mp_limb_t *)0x7f01) {
    lVar17 = -((ulong)((long)pmVar24 + 0x17) & 0xfffffffffffffff0);
    puVar14 = auStack_78 + lVar17;
    pmVar8 = (mp_limb_t *)((long)&local_70 + lVar17);
    new_alloc = (mpz_srcptr)-(long)pmVar25;
  }
  else {
    local_68 = op1;
    local_60 = (mpz_srcptr)-(long)pmVar25;
    local_58 = pmVar24;
    pmVar8 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)pmVar24);
    pmVar24 = local_58;
    new_alloc = local_60;
    op1 = local_68;
  }
  m = local_50;
  mVar4 = *pmVar23;
  *pmVar8 = mVar4 - 1;
  if (mVar4 == 0) {
    if (pmVar25 != (mp_limb_t *)0xffffffffffffffff) {
      mVar4 = pmVar23[1];
      pmVar8[1] = mVar4 - 1;
      if (mVar4 == 0) {
        if (-3 < (long)pmVar25) goto LAB_0011ced0;
        mVar4 = pmVar23[2];
        p_Var7 = (mpz_srcptr)0x3;
        pmVar8[2] = mVar4 - 1;
        while (mVar4 == 0) {
          if (new_alloc == p_Var7) goto LAB_0011ced0;
          mVar4 = pmVar23[(long)p_Var7];
          pmVar8[(long)p_Var7] = mVar4 - 1;
          p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);
        }
      }
      else {
        p_Var7 = (mpz_srcptr)0x2;
      }
      if ((pmVar23 != pmVar8) && ((long)p_Var7 < (long)new_alloc)) {
        local_58 = pmVar23 + (long)p_Var7;
        local_60 = (mpz_srcptr)
                   CONCAT71(local_60._1_7_,pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58
                           );
        if ((pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58 ||
             pmVar23 + (long)((long)&p_Var7->_mp_alloc + 2) <= pmVar8 + (long)p_Var7) &&
           (3 < ~(ulong)pmVar25 - (long)p_Var7)) {
          uVar26 = (long)new_alloc - (long)p_Var7;
          lVar17 = 0;
          do {
            uVar5 = ((undefined8 *)((long)local_58 + lVar17))[1];
            puVar1 = (undefined8 *)((long)(pmVar8 + (long)p_Var7) + lVar17);
            *puVar1 = *(undefined8 *)((long)local_58 + lVar17);
            puVar1[1] = uVar5;
            lVar17 = lVar17 + 0x10;
          } while ((uVar26 >> 1) * 0x10 != lVar17);
          lVar17 = (long)&p_Var7->_mp_alloc + (uVar26 & 0xfffffffffffffffe);
          if ((uVar26 & 0xfffffffffffffffe) != uVar26) goto LAB_0011d020;
        }
        else {
          do {
            pmVar8[(long)p_Var7] = pmVar23[(long)p_Var7];
            p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);
          } while (new_alloc != p_Var7);
        }
      }
    }
  }
  else if ((pmVar23 != pmVar8) && (pmVar25 != (mp_limb_t *)0xffffffffffffffff)) {
    if ((pmVar23 + 1 < pmVar8 + 3 && pmVar8 + 1 < pmVar23 + 3) || (-6 < (long)pmVar25)) {
      lVar17 = 1;
      do {
        pmVar8[lVar17] = pmVar23[lVar17];
        lVar17 = lVar17 + 1;
      } while (lVar17 < (long)new_alloc);
    }
    else {
      uVar26 = ~(ulong)pmVar25;
      if (-2 < (long)pmVar25) {
        uVar26 = 1;
      }
      lVar17 = 8;
      do {
        uVar5 = ((undefined8 *)((long)pmVar23 + lVar17))[1];
        *(undefined8 *)((long)pmVar8 + lVar17) = *(undefined8 *)((long)pmVar23 + lVar17);
        ((undefined8 *)((long)pmVar8 + lVar17))[1] = uVar5;
        lVar17 = lVar17 + 0x10;
      } while (lVar17 != (uVar26 >> 1) * 0x10 + 8);
      lVar17 = (uVar26 & 0xfffffffffffffffe) + 1;
      if ((uVar26 & 0xfffffffffffffffe) != uVar26) {
LAB_0011d020:
        pmVar8[lVar17] = pmVar23[lVar17];
      }
    }
  }
LAB_0011ced0:
  pmVar24 = (mp_limb_t *)
            ((long)new_alloc - (ulong)(*(long *)((long)(pmVar8 + -1) + (long)pmVar24) == 0));
  if ((long)local_50->_mp_alloc < (long)new_alloc) {
    local_60 = op1;
    local_58 = pmVar8;
    *(undefined8 *)(puVar14 + -8) = 0x11d187;
    __gmpz_realloc(m,(mp_size_t)new_alloc);
    pmVar9 = m->_mp_d;
    pmVar20 = local_60->_mp_d;
    pmVar8 = local_58;
  }
  if ((long)pmVar13 < (long)pmVar24) {
    local_58 = pmVar8;
    *(undefined8 *)(puVar14 + -8) = 0x11d0ee;
    __gmpn_copyi(pmVar9 + (long)pmVar13,pmVar8 + (long)pmVar13,(long)pmVar24 - (long)pmVar13);
    pmVar8 = local_58;
    if (pmVar13 != (mp_limb_t *)0x0) goto LAB_0011d0f7;
LAB_0011d108:
    *pmVar9 = *pmVar9 + 1;
    if (*pmVar9 == 0) {
      if (pmVar24 == (mp_limb_t *)&DAT_00000001) {
LAB_0011d151:
        pmVar9[(long)pmVar24] = 1;
        uVar22 = ~(uint)pmVar24;
        goto LAB_0011cf4c;
      }
      pmVar8 = pmVar9 + 1;
      *pmVar8 = *pmVar8 + 1;
      if (*pmVar8 == 0) {
        if (pmVar24 == (mp_limb_t *)0x2) goto LAB_0011d151;
        pmVar8 = pmVar9 + 2;
        *pmVar8 = *pmVar8 + 1;
        if (*pmVar8 == 0) {
          pmVar8 = pmVar9 + 3;
          do {
            if (pmVar8 == pmVar9 + (long)pmVar24) goto LAB_0011d151;
            mVar4 = *pmVar8;
            *pmVar8 = mVar4 + 1;
            pmVar8 = pmVar8 + 1;
          } while (mVar4 + 1 == 0);
        }
      }
    }
    uVar22 = -(uint)pmVar24;
  }
  else {
    pmVar11 = (mp_limb_t *)((long)pmVar24 + -1);
    if (pmVar11 != (mp_limb_t *)0xffffffffffffffff) {
      uVar26 = pmVar8[(long)pmVar11] & ~pmVar20[(long)pmVar11];
      pmVar13 = pmVar24;
      while (pmVar24 = pmVar13, uVar26 == 0) {
        pmVar24 = (mp_limb_t *)((long)pmVar11 + -1);
        if (pmVar24 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011cf3f;
        pmVar13 = pmVar11;
        pmVar11 = pmVar24;
        uVar26 = pmVar8[(long)pmVar24] & ~pmVar20[(long)pmVar24];
      }
LAB_0011d0f7:
      *(undefined8 *)(puVar14 + -8) = 0x11d108;
      __gmpn_andn_n(pmVar9,pmVar8,pmVar20,pmVar13);
      goto LAB_0011d108;
    }
LAB_0011cf3f:
    *pmVar9 = 1;
    uVar22 = 0xffffffff;
  }
LAB_0011cf4c:
  local_50->_mp_size = uVar22;
  puVar15 = puVar14;
  mark = __tmp_marker;
  goto joined_r0x0011d45a;
code_r0x0011d43b:
  uVar26 = uVar26 - 1;
  if (uVar26 == 0xffffffffffffffff) goto code_r0x0011d445;
  goto LAB_0011d42d;
code_r0x0011d445:
  *pmVar9 = 1;
  iVar6 = -1;
LAB_0011d44c:
  local_50->_mp_size = iVar6;
  puVar15 = puVar16;
  mark = __tmp_marker;
joined_r0x0011d45a:
  __tmp_marker = mark;
  if (mark != (tmp_reentrant_t *)0x0) {
    *(undefined8 *)(puVar15 + -8) = 0x11d465;
    __gmp_tmp_reentrant_free(mark);
  }
LAB_0011cf61:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  *(undefined8 *)(puVar15 + -8) = 0x11d8c8;
  __stack_chk_fail();
}



void __gmpz_ior(int *param_1,ulong param_2,ulong param_3)

{
  undefined8 *puVar1;
  ulong *puVar2;
  undefined8 *puVar3;
  undefined8 uVar4;
  int *piVar5;
  int iVar6;
  ulong uVar7;
  ulong uVar8;
  long *plVar9;
  long *plVar10;
  ulong *puVar11;
  long *plVar12;
  long lVar13;
  long *plVar14;
  undefined1 *puVar15;
  undefined1 *puVar16;
  undefined1 *puVar17;
  long lVar18;
  long lVar19;
  long *plVar20;
  long *plVar21;
  int iVar22;
  uint uVar23;
  long *plVar24;
  long *plVar25;
  long *plVar26;
  ulong uVar27;
  long in_FS_OFFSET;
  undefined1 auStack_78 [8];
  long *local_70;
  ulong local_68;
  ulong local_60;
  long *local_58;
  int *local_50;
  long local_48;
  long local_40;
  
  puVar15 = auStack_78;
  puVar17 = auStack_78;
  puVar16 = auStack_78;
  iVar6 = *(int *)(param_2 + 4);
  plVar20 = (long *)(long)iVar6;
  iVar22 = *(int *)(param_3 + 4);
  plVar12 = (long *)(long)iVar22;
  plVar25 = *(long **)(param_2 + 8);
  plVar9 = *(long **)(param_3 + 8);
  plVar10 = *(long **)(param_1 + 2);
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_48 = 0;
  local_50 = param_1;
  if ((long)plVar20 < 0) {
    plVar14 = plVar12;
    param_2 = param_3;
    plVar24 = plVar25;
    plVar21 = plVar9;
    plVar26 = plVar20;
    if ((long)plVar12 < 0) {
      if ((long)plVar12 <= (long)plVar20) {
        plVar12 = plVar20;
      }
      lVar18 = -(long)plVar12;
      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {
        lVar13 = -((long)plVar12 * -0x10 + 0x10U);
        puVar17 = auStack_78 + lVar13;
        plVar20 = (long *)((long)&local_70 + lVar13);
        plVar21 = plVar12;
      }
      else {
        local_58 = plVar12;
        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);
        plVar21 = local_58;
      }
      lVar13 = *plVar25;
      plVar14 = plVar20 + -(long)plVar21;
      *plVar20 = lVar13 + -1;
      if (lVar13 == 0) {
        if (plVar21 == (long *)0xffffffffffffffff) {
LAB_0011d84a:
          lVar13 = *plVar9;
          *plVar14 = lVar13 + -1;
          uVar8 = 0;
          if (lVar13 == 0) goto LAB_0011d42d;
        }
        else {
          lVar13 = plVar25[1];
          plVar20[1] = lVar13 + -1;
          if (lVar13 == 0) {
            if (-3 < (long)plVar21) goto LAB_0011d53d;
            lVar19 = plVar25[2];
            plVar20[2] = lVar19 + -1;
            lVar13 = 3;
            while (lVar19 == 0) {
              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;
              lVar19 = plVar25[lVar13];
              plVar20[lVar13] = lVar19 + -1;
              lVar13 = lVar13 + 1;
            }
          }
          else {
            lVar13 = 2;
          }
          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {
            plVar24 = plVar25 + lVar13;
            local_58 = plVar20 + lVar13;
            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);
            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&
               (3 < ~(ulong)plVar21 - lVar13)) {
              local_60 = lVar18 - lVar13;
              lVar19 = 0;
              do {
                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];
                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);
                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;
                lVar19 = lVar19 + 0x10;
              } while (lVar19 != (local_60 >> 1) * 0x10);
              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);
              if (local_60 != (local_60 & 0xfffffffffffffffe)) {
LAB_0011d534:
                plVar20[lVar13] = plVar25[lVar13];
              }
            }
            else {
              do {
                plVar20[lVar13] = plVar25[lVar13];
                lVar13 = lVar13 + 1;
              } while ((long *)-lVar13 != plVar12);
            }
          }
LAB_0011d53d:
          uVar8 = ~(ulong)plVar21;
          lVar13 = *plVar9;
          *plVar14 = lVar13 + -1;
          if (lVar13 == 0) goto LAB_0011d551;
        }
LAB_0011d3a0:
        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;
        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&
             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {
          lVar13 = 1;
          do {
            plVar14[lVar13] = plVar9[lVar13];
            lVar13 = lVar13 + 1;
          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);
          goto LAB_0011d42d;
        }
        uVar7 = 1;
        if ((long)plVar21 < -1) {
          uVar7 = uVar8;
        }
        lVar18 = 0;
        do {
          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);
          uVar4 = puVar3[1];
          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);
          *puVar1 = *puVar3;
          puVar1[1] = uVar4;
          lVar18 = lVar18 + 0x10;
        } while (lVar18 != (uVar7 >> 1) * 0x10);
        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;
        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;
      }
      else {
        if (plVar20 != plVar25) {
          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;
          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {
            lVar13 = 1;
            do {
              plVar20[lVar13] = plVar25[lVar13];
              lVar13 = lVar13 + 1;
            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);
          }
          else {
            lVar13 = 8;
            uVar8 = 1;
            if ((long)plVar21 < -1) {
              uVar8 = ~(ulong)plVar21;
            }
            do {
              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];
              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);
              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;
              lVar13 = lVar13 + 0x10;
            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);
            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;
            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;
          }
          goto LAB_0011d53d;
        }
        lVar13 = *plVar9;
        *plVar14 = lVar13 + -1;
        if (lVar13 != 0) {
          uVar8 = ~(ulong)plVar21;
          goto LAB_0011d3a0;
        }
        if (plVar21 == (long *)0xffffffffffffffff) {
          uVar8 = 0;
          goto LAB_0011d42d;
        }
LAB_0011d551:
        uVar8 = ~(ulong)plVar21;
        lVar13 = plVar9[1];
        plVar14[1] = lVar13 + -1;
        if (lVar13 == 0) {
          if (-3 < (long)plVar21) goto LAB_0011d42d;
          lVar19 = plVar9[2];
          lVar13 = 3;
          plVar14[2] = lVar19 + -1;
          while (lVar19 == 0) {
            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;
            lVar19 = plVar9[lVar13];
            plVar14[lVar13] = lVar19 + -1;
            lVar13 = lVar13 + 1;
          }
        }
        else {
          lVar13 = 2;
        }
        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))
        goto LAB_0011d42d;
        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||
           (uVar8 - lVar13 < 4)) {
          do {
            plVar14[lVar13] = plVar9[lVar13];
            lVar13 = lVar13 + 1;
          } while ((long *)-lVar13 != plVar12);
          goto LAB_0011d42d;
        }
        uVar7 = lVar18 - lVar13;
        lVar18 = 0;
        do {
          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);
          uVar4 = puVar1[1];
          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);
          *puVar3 = *puVar1;
          puVar3[1] = uVar4;
          lVar18 = lVar18 + 0x10;
        } while (lVar18 != (uVar7 >> 1) * 0x10);
        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);
        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;
      }
      plVar14[lVar13] = plVar9[lVar13];
LAB_0011d42d:
      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;
      lVar18 = uVar8 + 1;
      if (lVar18 < *local_50) {
        puVar11 = *(ulong **)(local_50 + 2);
      }
      else {
        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;
        local_58 = plVar14;
        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);
        plVar14 = local_58;
      }
      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;
      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);
      puVar2 = puVar11 + lVar18;
      *puVar2 = 0;
      do {
        uVar8 = *puVar11;
        *puVar11 = *puVar11 + 1;
        puVar11 = puVar11 + 1;
      } while (0xfffffffffffffffe < uVar8);
      iVar6 = -((int)lVar18 + (int)*puVar2);
      goto LAB_0011d44c;
    }
  }
  else {
    plVar14 = plVar20;
    plVar24 = plVar9;
    plVar21 = plVar25;
    plVar26 = plVar12;
    if (-1 < (long)plVar12) {
      if ((long)plVar20 < (long)plVar12) {
        if (*param_1 < iVar22) {
          local_60 = CONCAT44(local_60._4_4_,iVar22);
          local_70 = plVar20;
          local_68 = param_2;
          local_58 = plVar12;
          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);
          plVar25 = *(long **)(local_68 + 8);
          plVar12 = local_58;
          plVar20 = local_70;
          iVar22 = (int)local_60;
        }
        iVar6 = iVar22;
        if (plVar10 != plVar9) {
          local_60 = CONCAT44(local_60._4_4_,iVar22);
          local_58 = plVar20;
          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)
          ;
          plVar20 = local_58;
          iVar6 = (int)local_60;
        }
        if (plVar20 != (long *)0x0) {
          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);
          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);
          iVar6 = (int)local_58;
        }
      }
      else {
        if (*param_1 < iVar6) {
          local_60 = CONCAT44(local_60._4_4_,iVar6);
          local_70 = plVar12;
          local_68 = param_3;
          local_58 = plVar20;
          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);
          plVar9 = *(long **)(local_68 + 8);
          plVar12 = local_70;
          plVar20 = local_58;
          iVar6 = (int)local_60;
        }
        if (plVar10 != plVar25) {
          local_60 = CONCAT44(local_60._4_4_,iVar6);
          local_58 = plVar12;
          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12
                      );
          plVar12 = local_58;
          iVar6 = (int)local_60;
        }
        if (plVar12 != (long *)0x0) {
          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);
          __gmpn_ior_n(plVar10,plVar25,plVar9);
          iVar6 = (int)local_58;
        }
      }
      local_50[1] = iVar6;
      goto LAB_0011cf61;
    }
  }
  plVar25 = (long *)((long)plVar26 * -8);
  if (plVar25 < (long *)0x7f01) {
    lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0);
    puVar15 = auStack_78 + lVar18;
    plVar9 = (long *)((long)&local_70 + lVar18);
    uVar8 = -(long)plVar26;
  }
  else {
    local_68 = param_2;
    local_60 = -(long)plVar26;
    local_58 = plVar25;
    plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);
    plVar25 = local_58;
    uVar8 = local_60;
    param_2 = local_68;
  }
  piVar5 = local_50;
  lVar18 = *plVar24;
  *plVar9 = lVar18 + -1;
  if (lVar18 == 0) {
    if (plVar26 != (long *)0xffffffffffffffff) {
      lVar18 = plVar24[1];
      plVar9[1] = lVar18 + -1;
      if (lVar18 == 0) {
        if (-3 < (long)plVar26) goto LAB_0011ced0;
        lVar18 = plVar24[2];
        uVar7 = 3;
        plVar9[2] = lVar18 + -1;
        while (lVar18 == 0) {
          if (uVar8 == uVar7) goto LAB_0011ced0;
          lVar18 = plVar24[uVar7];
          plVar9[uVar7] = lVar18 + -1;
          uVar7 = uVar7 + 1;
        }
      }
      else {
        uVar7 = 2;
      }
      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {
        local_58 = plVar24 + uVar7;
        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);
        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&
           (3 < ~(ulong)plVar26 - uVar7)) {
          uVar27 = uVar8 - uVar7;
          lVar18 = 0;
          do {
            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];
            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);
            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);
            puVar1[1] = uVar4;
            lVar18 = lVar18 + 0x10;
          } while ((uVar27 >> 1) * 0x10 != lVar18);
          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);
          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;
        }
        else {
          do {
            plVar9[uVar7] = plVar24[uVar7];
            uVar7 = uVar7 + 1;
          } while (uVar8 != uVar7);
        }
      }
    }
  }
  else if ((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)) {
    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {
      lVar18 = 1;
      do {
        plVar9[lVar18] = plVar24[lVar18];
        lVar18 = lVar18 + 1;
      } while (lVar18 < (long)uVar8);
    }
    else {
      uVar7 = ~(ulong)plVar26;
      if (-2 < (long)plVar26) {
        uVar7 = 1;
      }
      lVar18 = 8;
      do {
        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];
        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);
        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;
        lVar18 = lVar18 + 0x10;
      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);
      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;
      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {
LAB_0011d020:
        plVar9[lVar18] = plVar24[lVar18];
      }
    }
  }
LAB_0011ced0:
  plVar25 = (long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0));
  if ((long)*local_50 < (long)uVar8) {
    local_60 = param_2;
    local_58 = plVar9;
    *(undefined8 *)(puVar15 + -8) = 0x11d187;
    __gmpz_realloc(piVar5,uVar8);
    plVar10 = *(long **)(piVar5 + 2);
    plVar21 = *(long **)(local_60 + 8);
    plVar9 = local_58;
  }
  if ((long)plVar14 < (long)plVar25) {
    local_58 = plVar9;
    *(undefined8 *)(puVar15 + -8) = 0x11d0ee;
    __gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14);
    plVar9 = local_58;
    if (plVar14 != (long *)0x0) goto LAB_0011d0f7;
LAB_0011d108:
    *plVar10 = *plVar10 + 1;
    if (*plVar10 == 0) {
      if (plVar25 == (long *)0x1) {
LAB_0011d151:
        plVar10[(long)plVar25] = 1;
        uVar23 = ~(uint)plVar25;
        goto LAB_0011cf4c;
      }
      plVar9 = plVar10 + 1;
      *plVar9 = *plVar9 + 1;
      if (*plVar9 == 0) {
        if (plVar25 == (long *)0x2) goto LAB_0011d151;
        plVar9 = plVar10 + 2;
        *plVar9 = *plVar9 + 1;
        if (*plVar9 == 0) {
          plVar9 = plVar10 + 3;
          do {
            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;
            lVar18 = *plVar9;
            *plVar9 = lVar18 + 1;
            plVar9 = plVar9 + 1;
          } while (lVar18 + 1 == 0);
        }
      }
    }
    uVar23 = -(uint)plVar25;
  }
  else {
    plVar12 = (long *)((long)plVar25 + -1);
    if (plVar12 != (long *)0xffffffffffffffff) {
      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];
      plVar14 = plVar25;
      while (plVar25 = plVar14, uVar8 == 0) {
        plVar25 = (long *)((long)plVar12 + -1);
        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;
        plVar14 = plVar12;
        plVar12 = plVar25;
        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];
      }
LAB_0011d0f7:
      *(undefined8 *)(puVar15 + -8) = 0x11d108;
      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);
      goto LAB_0011d108;
    }
LAB_0011cf3f:
    *plVar10 = 1;
    uVar23 = 0xffffffff;
  }
LAB_0011cf4c:
  local_50[1] = uVar23;
  puVar16 = puVar15;
  goto joined_r0x0011d45a;
code_r0x0011d43b:
  uVar8 = uVar8 - 1;
  if (uVar8 == 0xffffffffffffffff) goto code_r0x0011d445;
  goto LAB_0011d42d;
code_r0x0011d445:
  *plVar10 = 1;
  iVar6 = -1;
LAB_0011d44c:
  local_50[1] = iVar6;
  puVar16 = puVar17;
joined_r0x0011d45a:
  if (local_48 != 0) {
    *(undefined8 *)(puVar16 + -8) = 0x11d465;
    __gmp_tmp_reentrant_free();
  }
LAB_0011cf61:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  *(undefined8 *)(puVar16 + -8) = 0x11d8c8;
  __stack_chk_fail();
}


PUSH RBP
MOV RAX,RDI
MOV RBP,RSP
PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBX
SUB RSP,0x48
MOVSXD R8,dword ptr [RSI + 0x4]
MOVSXD RCX,dword ptr [RDX + 0x4]
MOV qword ptr [RBP + -0x48],RDI
MOV R13,qword ptr [RSI + 0x8]
MOV R12,qword ptr [RDX + 0x8]
MOV RBX,R8
MOV R14,RCX
MOV R15,qword ptr [RAX + 0x8]
MOV RDI,qword ptr FS:[0x28]
MOV qword ptr [RBP + -0x38],RDI
XOR EDI,EDI
MOV qword ptr [RBP + -0x40],0x0
TEST R8,R8
JS 0x0011d0b0
MOV R9,RSI
TEST RCX,RCX
JNS 0x0011d030
MOV RDX,R14
NEG RDX
LEA RCX,[RDX*0x8]
CMP RCX,0x7f00
JA 0x0011d470
LEA RAX,[RCX + 0x17]
AND RAX,-0x10
SUB RSP,RAX
LEA R8,[RSP + 0xf]
AND R8,-0x10
MOV RSI,qword ptr [R12]
LEA RAX,[RSI + -0x1]
MOV qword ptr [R8],RAX
TEST RSI,RSI
JNZ 0x0011cf88
CMP R14,-0x1
JZ 0x0011ced0
MOV RAX,qword ptr [R12 + 0x8]
LEA RDI,[RAX + -0x1]
MOV qword ptr [R8 + 0x8],RDI
TEST RAX,RAX
JNZ 0x0011d200
CMP R14,-0x2
JGE 0x0011ced0
MOV RAX,qword ptr [R12 + 0x10]
LEA RDI,[RAX + -0x1]
TEST RAX,RAX
MOV EAX,0x3
MOV qword ptr [R8 + 0x10],RDI
JZ 0x0011cec9
JMP 0x0011d208
MOV RDI,qword ptr [R12 + RAX*0x8]
LEA R10,[RDI + -0x1]
MOV qword ptr [R8 + RAX*0x8],R10
ADD RAX,0x1
TEST RDI,RDI
JNZ 0x0011d208
CMP RDX,RAX
JNZ 0x0011ceb0
NOP
XOR EAX,EAX
CMP qword ptr [R8 + RCX*0x1 + -0x8],0x0
MOV R12,RDX
SETZ AL
SUB R12,RAX
MOV RAX,qword ptr [RBP + -0x48]
MOVSXD RAX,dword ptr [RAX]
CMP RAX,RDX
JL 0x0011d170
CMP RBX,R12
JL 0x0011d0d0
LEA RBX,[R12 + -0x1]
CMP RBX,-0x1
JZ 0x0011cf3f
MOV RAX,qword ptr [R13 + RBX*0x8]
NOT RAX
TEST qword ptr [R8 + RBX*0x8],RAX
JZ 0x0011cf35
JMP 0x0011d2b6
MOV RDX,qword ptr [R13 + RAX*0x8]
NOT RDX
TEST qword ptr [R8 + RAX*0x8],RDX
JNZ 0x0011d2c0
MOV RBX,RAX
LEA RAX,[RBX + -0x1]
CMP RAX,-0x1
JNZ 0x0011cf20
MOV qword ptr [R15],0x1
MOV R12D,0xffffffff
MOV RAX,qword ptr [RBP + -0x48]
MOV RDI,qword ptr [RBP + -0x40]
MOV dword ptr [RAX + 0x4],R12D
TEST RDI,RDI
JNZ 0x0011d460
MOV RAX,qword ptr [RBP + -0x38]
XOR RAX,qword ptr FS:[0x28]
JNZ 0x0011d8c3
LEA RSP,[RBP + -0x28]
POP RBX
POP R12
POP R13
POP R14
POP R15
POP RBP
RET
CMP R12,R8
JZ 0x0011ced0
CMP R14,-0x1
JZ 0x0011ced0
LEA RSI,[R12 + 0x8]
LEA RAX,[R8 + 0x18]
CMP RSI,RAX
LEA RDI,[R8 + 0x8]
LEA RAX,[R12 + 0x18]
SETNC SIL
CMP RDI,RAX
SETNC AL
OR SIL,AL
JZ 0x0011d768
CMP R14,-0x5
JGE 0x0011d768
MOV RDI,R14
CMP R14,-0x1
MOV EAX,0x1
NOT RDI
CMOVGE RDI,RAX
MOV EAX,0x8
MOV RSI,RDI
SHR RSI,0x1
SHL RSI,0x4
ADD RSI,0x8
NOP dword ptr [RAX + RAX*0x1]
MOVDQU XMM0,xmmword ptr [R12 + RAX*0x1]
MOVUPS xmmword ptr [R8 + RAX*0x1],XMM0
ADD RAX,0x10
CMP RAX,RSI
JNZ 0x0011cff8
MOV RSI,RDI
AND RSI,-0x2
LEA RAX,[RSI + 0x1]
CMP RSI,RDI
JZ 0x0011ced0
MOV RSI,qword ptr [R12 + RAX*0x8]
MOV qword ptr [R8 + RAX*0x8],RSI
JMP 0x0011ced0
MOV EAX,dword ptr [RAX]
CMP R8,RCX
JGE 0x0011d1a0
MOV R11,RCX
CMP ECX,EAX
JG 0x0011d6f0
CMP R15,R12
JZ 0x0011d075
LEA RDI,[R8*0x8]
SUB RCX,R8
MOV dword ptr [RBP + -0x58],R11D
LEA RSI,[R12 + RDI*0x1]
MOV RDX,RCX
ADD RDI,R15
MOV qword ptr [RBP + -0x50],R8
CALL 0x0010bb80
MOV R11D,dword ptr [RBP + -0x58]
MOV R8,qword ptr [RBP + -0x50]
TEST R8,R8
JZ 0x0011d829
MOV RCX,R8
MOV RDX,R12
MOV RSI,R13
MOV RDI,R15
MOV dword ptr [RBP + -0x50],R11D
CALL 0x0010bd00
MOV R11D,dword ptr [RBP + -0x50]
MOV R10D,R11D
MOV RAX,qword ptr [RBP + -0x48]
MOV dword ptr [RAX + 0x4],R10D
JMP 0x0011cf61
TEST RCX,RCX
JS 0x0011d2d0
MOV RAX,R13
MOV RBX,RCX
MOV R13,R12
MOV R14,R8
MOV R12,RAX
MOV R9,RDX
JMP 0x0011ce2e
LEA RDI,[RBX*0x8]
MOV RDX,R12
MOV qword ptr [RBP + -0x50],R8
LEA RSI,[R8 + RDI*0x1]
SUB RDX,RBX
ADD RDI,R15
CALL 0x0010bb80
TEST RBX,RBX
MOV R8,qword ptr [RBP + -0x50]
JZ 0x0011d108
MOV RCX,RBX
MOV RDX,R13
MOV RSI,R8
MOV RDI,R15
CALL 0x0010b1c0
ADD qword ptr [R15],0x1
JNZ 0x0011d168
CMP R12,0x1
JZ 0x0011d151
ADD qword ptr [R15 + 0x8],0x1
JNZ 0x0011d168
CMP R12,0x2
JZ 0x0011d151
ADD qword ptr [R15 + 0x10],0x1
JNZ 0x0011d168
LEA RAX,[R15 + 0x18]
LEA RCX,[R15 + R12*0x8]
JMP 0x0011d14c
MOV RBX,qword ptr [RAX]
ADD RAX,0x8
LEA RDX,[RBX + 0x1]
MOV qword ptr [RAX + -0x8],RDX
TEST RDX,RDX
JNZ 0x0011d168
CMP RAX,RCX
JNZ 0x0011d138
MOV qword ptr [R15 + R12*0x8],0x1
NOT R12D
JMP 0x0011cf4c
NEG R12D
JMP 0x0011cf4c
MOV R14,qword ptr [RBP + -0x48]
MOV RSI,RDX
MOV qword ptr [RBP + -0x58],R9
MOV qword ptr [RBP + -0x50],R8
MOV RDI,R14
CALL 0x0010b1e0
MOV R9,qword ptr [RBP + -0x58]
MOV R15,qword ptr [R14 + 0x8]
MOV R8,qword ptr [RBP + -0x50]
MOV R13,qword ptr [R9 + 0x8]
JMP 0x0011cef1
MOV R10,R8
CMP R8D,EAX
JG 0x0011d730
CMP R15,R13
JZ 0x0011d1dc
LEA RDI,[RCX*0x8]
MOV RDX,R8
MOV dword ptr [RBP + -0x58],R10D
SUB RDX,RCX
LEA RSI,[R13 + RDI*0x1]
ADD RDI,R15
MOV qword ptr [RBP + -0x50],RCX
CALL 0x0010bb80
MOV R10D,dword ptr [RBP + -0x58]
MOV RCX,qword ptr [RBP + -0x50]
TEST RCX,RCX
JZ 0x0011d09a
MOV RDX,R12
MOV RSI,R13
MOV RDI,R15
MOV dword ptr [RBP + -0x50],R10D
CALL 0x0010bd00
MOV R10D,dword ptr [RBP + -0x50]
JMP 0x0011d09a
MOV EAX,0x2
NOP dword ptr [RAX]
CMP R12,R8
JZ 0x0011ced0
CMP RDX,RAX
JLE 0x0011ced0
LEA R10,[0x10 + RAX*0x8]
LEA RDI,[R10 + -0x10]
LEA R11,[R8 + RDI*0x1]
ADD RDI,R12
MOV qword ptr [RBP + -0x50],RDI
LEA RDI,[R8 + R10*0x1]
CMP qword ptr [RBP + -0x50],RDI
SETNC byte ptr [RBP + -0x58]
ADD R10,R12
MOVZX EDI,byte ptr [RBP + -0x58]
CMP R11,R10
SETNC R10B
OR DIL,R10B
JZ 0x0011d2a0
NOT R14
SUB R14,RAX
CMP R14,0x3
JBE 0x0011d2a0
MOV R14,RDX
MOV RDI,qword ptr [RBP + -0x50]
SUB R14,RAX
MOV R10,R14
SHR R10,0x1
SHL R10,0x4
MOVDQU XMM1,xmmword ptr [RDI + RSI*0x1]
MOVUPS xmmword ptr [R11 + RSI*0x1],XMM1
ADD RSI,0x10
CMP R10,RSI
JNZ 0x0011d270
MOV RSI,R14
AND RSI,-0x2
ADD RAX,RSI
CMP RSI,R14
JNZ 0x0011d020
JMP 0x0011ced0
MOV RSI,qword ptr [R12 + RAX*0x8]
MOV qword ptr [R8 + RAX*0x8],RSI
ADD RAX,0x1
CMP RDX,RAX
JNZ 0x0011d2a0
JMP 0x0011ced0
MOV RBX,R12
NOP dword ptr [RAX]
MOV R12,RBX
JMP 0x0011d0f7
CMP R8,RCX
CMOVGE R14,R8
MOV R8,R14
NEG R14
MOV RSI,R14
SHL RSI,0x4
CMP RSI,0x7f00
JA 0x0011d831
LEA RAX,[RSI + 0x10]
SUB RSP,RAX
LEA RBX,[RSP + 0xf]
AND RBX,-0x10
MOV RSI,qword ptr [R13]
MOV RDI,R8
NEG RDI
SHL RDI,0x3
LEA RAX,[RSI + -0x1]
LEA RDX,[RBX + RDI*0x1]
MOV qword ptr [RBX],RAX
TEST RSI,RSI
JNZ 0x0011d4a0
CMP R8,-0x1
JZ 0x0011d84a
MOV RAX,qword ptr [R13 + 0x8]
LEA RCX,[RAX + -0x1]
MOV qword ptr [RBX + 0x8],RCX
TEST RAX,RAX
JNZ 0x0011d5dc
CMP R8,-0x2
JGE 0x0011d387
MOV RAX,qword ptr [R13 + 0x10]
LEA RCX,[RAX + -0x1]
MOV qword ptr [RBX + 0x10],RCX
MOV ECX,0x3
TEST RAX,RAX
JZ 0x0011d382
JMP 0x0011d5e1
MOV RAX,qword ptr [R13 + RCX*0x8]
LEA R9,[RAX + -0x1]
MOV qword ptr [RBX + RCX*0x8],R9
ADD RCX,0x1
TEST RAX,RAX
JNZ 0x0011d5e1
CMP R14,RCX
JNZ 0x0011d368
MOV RAX,R8
NOT RAX
JMP 0x0011d53d
MOV RAX,R8
NOT RAX
NOP dword ptr [RAX + RAX*0x1]
CMP R12,RDX
JZ 0x0011d42d
CMP R8,-0x1
JZ 0x0011d42d
LEA RSI,[RBX + RDI*0x1 + 0x18]
LEA RCX,[R12 + 0x8]
CMP RSI,RCX
LEA R9,[RBX + RDI*0x1 + 0x8]
LEA RCX,[R12 + 0x18]
SETBE SIL
CMP R9,RCX
SETNC CL
OR SIL,CL
JZ 0x0011d887
CMP R8,-0x5
JGE 0x0011d887
CMP R8,-0x1
MOV EDI,0x1
CMOVL RDI,RAX
XOR ECX,ECX
MOV RSI,RDI
SHR RSI,0x1
SHL RSI,0x4
NOP dword ptr [RAX]
MOVDQU XMM3,xmmword ptr [R12 + RCX*0x1 + 0x8]
MOVUPS xmmword ptr [R9 + RCX*0x1],XMM3
ADD RCX,0x10
CMP RCX,RSI
JNZ 0x0011d400
MOV RSI,RDI
AND RSI,-0x2
LEA RCX,[RSI + 0x1]
CMP RDI,RSI
JZ 0x0011d42d
MOV RSI,qword ptr [R12 + RCX*0x8]
MOV qword ptr [RDX + RCX*0x8],RSI
MOV RCX,qword ptr [RBX + RAX*0x8]
TEST qword ptr [RDX + RAX*0x8],RCX
JNZ 0x0011d6a0
SUB RAX,0x1
CMP RAX,-0x1
JNZ 0x0011d42d
MOV qword ptr [R15],0x1
MOV RCX,qword ptr [RBP + -0x48]
MOV RDI,qword ptr [RBP + -0x40]
MOV dword ptr [RCX + 0x4],EAX
TEST RDI,RDI
JZ 0x0011cf61
CALL 0x0010b040
JMP 0x0011cf61
MOV RSI,RCX
LEA RDI,[RBP + -0x40]
MOV qword ptr [RBP + -0x60],R9
MOV qword ptr [RBP + -0x58],RDX
MOV qword ptr [RBP + -0x50],RCX
CALL 0x0010bcb0
MOV R9,qword ptr [RBP + -0x60]
MOV RDX,qword ptr [RBP + -0x58]
MOV R8,RAX
MOV RCX,qword ptr [RBP + -0x50]
JMP 0x0011ce5d
CMP RBX,R13
JZ 0x0011d5b3
CMP R8,-0x1
JZ 0x0011d84a
LEA RCX,[RBX + 0x18]
LEA RAX,[R13 + 0x8]
CMP RCX,RAX
LEA RSI,[R13 + 0x18]
LEA RAX,[RBX + 0x8]
SETBE CL
CMP RSI,RAX
SETBE AL
OR CL,AL
JZ 0x0011d865
CMP R8,-0x5
JGE 0x0011d865
MOV RAX,R8
CMP R8,-0x1
MOV R9D,0x1
MOV ECX,0x8
NOT RAX
CMOVL R9,RAX
MOV RSI,R9
SHR RSI,0x1
SHL RSI,0x4
ADD RSI,0x8
NOP dword ptr [RAX + RAX*0x1]
MOVDQU XMM2,xmmword ptr [R13 + RCX*0x1]
MOVUPS xmmword ptr [RBX + RCX*0x1],XMM2
ADD RCX,0x10
CMP RCX,RSI
JNZ 0x0011d510
MOV RSI,R9
AND RSI,-0x2
LEA RCX,[RSI + 0x1]
CMP R9,RSI
JZ 0x0011d53d
MOV RSI,qword ptr [R13 + RCX*0x8]
MOV qword ptr [RBX + RCX*0x8],RSI
MOV RCX,qword ptr [R12]
LEA RSI,[RCX + -0x1]
MOV qword ptr [RDX],RSI
TEST RCX,RCX
JNZ 0x0011d3a0
MOV RCX,qword ptr [R12 + 0x8]
LEA RSI,[RCX + -0x1]
MOV qword ptr [RDX + 0x8],RSI
TEST RCX,RCX
JNZ 0x0011d786
CMP R8,-0x2
JGE 0x0011d42d
MOV RCX,qword ptr [R12 + 0x10]
LEA RSI,[RCX + -0x1]
TEST RCX,RCX
MOV ECX,0x3
MOV qword ptr [RDX + 0x10],RSI
JZ 0x0011d5a9
JMP 0x0011d78b
MOV RSI,qword ptr [R12 + RCX*0x8]
LEA RDI,[RSI + -0x1]
MOV qword ptr [RDX + RCX*0x8],RDI
ADD RCX,0x1
TEST RSI,RSI
JNZ 0x0011d78b
CMP R14,RCX
JNZ 0x0011d590
JMP 0x0011d42d
MOV RAX,qword ptr [R12]
LEA RCX,[RAX + -0x1]
MOV qword ptr [RDX],RCX
TEST RAX,RAX
JNZ 0x0011d392
CMP R8,-0x1
JZ 0x0011d8c8
MOV RAX,R8
NOT RAX
JMP 0x0011d551
MOV ECX,0x2
MOV RAX,R8
NOT RAX
CMP RBX,R13
JZ 0x0011d53d
CMP R14,RCX
JLE 0x0011d53d
LEA R9,[0x10 + RCX*0x8]
LEA R10,[R9 + -0x10]
LEA R11,[R13 + R10*0x1]
ADD R10,RBX
MOV qword ptr [RBP + -0x50],R10
LEA R10,[RBX + R9*0x1]
CMP R11,R10
SETNC byte ptr [RBP + -0x58]
ADD R9,R13
MOVZX R10D,byte ptr [RBP + -0x58]
CMP qword ptr [RBP + -0x50],R9
SETNC R9B
OR R10B,R9B
JZ 0x0011d688
MOV R9,RAX
SUB R9,RCX
CMP R9,0x3
JBE 0x0011d688
MOV R9,R14
MOV R10,qword ptr [RBP + -0x50]
SUB R9,RCX
MOV qword ptr [RBP + -0x58],R9
SHR R9,0x1
SHL R9,0x4
NOP word ptr [RAX + RAX*0x1]
MOVDQU XMM4,xmmword ptr [R11 + RSI*0x1]
MOVUPS xmmword ptr [R10 + RSI*0x1],XMM4
ADD RSI,0x10
CMP RSI,R9
JNZ 0x0011d658
MOV R11,qword ptr [RBP + -0x58]
MOV RSI,R11
AND RSI,-0x2
ADD RCX,RSI
CMP R11,RSI
JNZ 0x0011d534
JMP 0x0011d53d
MOV RSI,qword ptr [R13 + RCX*0x8]
MOV qword ptr [RBX + RCX*0x8],RSI
ADD RCX,0x1
CMP R14,RCX
JNZ 0x0011d688
JMP 0x0011d53d
MOV RCX,qword ptr [RBP + -0x48]
LEA R13,[RAX + 0x1]
MOVSXD RCX,dword ptr [RCX]
CMP RCX,R13
JLE 0x0011d8a6
MOV RAX,qword ptr [RBP + -0x48]
MOV R12,qword ptr [RAX + 0x8]
MOV RCX,R13
MOV RSI,RBX
MOV RDI,R12
CALL 0x0010b3e0
LEA RAX,[R12 + R13*0x8]
MOV qword ptr [RAX],0x0
ADD qword ptr [R12],0x1
LEA R12,[R12 + 0x8]
JC 0x0011d6d5
ADD R13,qword ptr [RAX]
MOV RAX,R13
NEG EAX
JMP 0x0011d44c
MOV RDI,qword ptr [RBP + -0x48]
MOV qword ptr [RBP + -0x60],RSI
MOV RSI,RCX
MOV qword ptr [RBP + -0x68],R8
MOV dword ptr [RBP + -0x58],ECX
MOV qword ptr [RBP + -0x50],RCX
CALL 0x0010b1e0
MOV R9,qword ptr [RBP + -0x60]
MOV R8,qword ptr [RBP + -0x68]
MOV R15,RAX
MOV R11D,dword ptr [RBP + -0x58]
MOV RCX,qword ptr [RBP + -0x50]
MOV R13,qword ptr [R9 + 0x8]
JMP 0x0011d046
MOV RDI,qword ptr [RBP + -0x48]
MOV RSI,R8
MOV qword ptr [RBP + -0x68],RCX
MOV qword ptr [RBP + -0x60],RDX
MOV dword ptr [RBP + -0x58],R8D
MOV qword ptr [RBP + -0x50],R8
CALL 0x0010b1e0
MOV RDX,qword ptr [RBP + -0x60]
MOV RCX,qword ptr [RBP + -0x68]
MOV R15,RAX
MOV R10D,dword ptr [RBP + -0x58]
MOV R8,qword ptr [RBP + -0x50]
MOV R12,qword ptr [RDX + 0x8]
JMP 0x0011d1ac
MOV EAX,0x1
NOP dword ptr [RAX]
MOV RSI,qword ptr [R12 + RAX*0x8]
MOV qword ptr [R8 + RAX*0x8],RSI
ADD RAX,0x1
CMP RDX,RAX
JG 0x0011d770
JMP 0x0011ced0
MOV ECX,0x2
CMP R12,RDX
JZ 0x0011d42d
CMP RCX,R14
JGE 0x0011d42d
LEA RSI,[0x10 + RCX*0x8]
LEA RDI,[RSI + -0x10]
LEA R8,[R12 + RSI*0x1]
LEA R9,[R12 + RDI*0x1]
ADD RDI,RDX
CMP RDI,R8
SETNC R8B
ADD RSI,RDX
CMP R9,RSI
SETNC SIL
OR R8B,SIL
JZ 0x0011d813
MOV RSI,RAX
SUB RSI,RCX
CMP RSI,0x3
JBE 0x0011d813
SUB R14,RCX
XOR ESI,ESI
MOV R8,R14
SHR R8,0x1
SHL R8,0x4
NOP dword ptr [RAX]
MOVDQU XMM5,xmmword ptr [R9 + RSI*0x1]
MOVUPS xmmword ptr [RDI + RSI*0x1],XMM5
ADD RSI,0x10
CMP RSI,R8
JNZ 0x0011d7e8
MOV RSI,R14
AND RSI,-0x2
ADD RCX,RSI
CMP R14,RSI
JNZ 0x0011d425
JMP 0x0011d42d
MOV RSI,qword ptr [R12 + RCX*0x8]
MOV qword ptr [RDX + RCX*0x8],RSI
ADD RCX,0x1
CMP R14,RCX
JNZ 0x0011d813
JMP 0x0011d42d
MOV R10D,R11D
JMP 0x0011d09a
LEA RDI,[RBP + -0x40]
MOV qword ptr [RBP + -0x50],R8
CALL 0x0010bcb0
MOV R8,qword ptr [RBP + -0x50]
MOV RBX,RAX
JMP 0x0011d301
MOV RCX,qword ptr [R12]
LEA RAX,[RCX + -0x1]
MOV qword ptr [RDX],RAX
XOR EAX,EAX
TEST RCX,RCX
JNZ 0x0011d3a0
JMP 0x0011d42d
MOV EAX,0x1
NOP word ptr [RAX + RAX*0x1]
MOV RCX,qword ptr [R13 + RAX*0x8]
MOV qword ptr [RBX + RAX*0x8],RCX
ADD RAX,0x1
CMP R14,RAX
JG 0x0011d870
JMP 0x0011d387
MOV ECX,0x1
NOP dword ptr [RAX]
MOV RSI,qword ptr [R12 + RCX*0x8]
MOV qword ptr [RDX + RCX*0x8],RSI
ADD RCX,0x1
CMP R14,RCX
JG 0x0011d890
JMP 0x0011d42d
MOV RDI,qword ptr [RBP + -0x48]
LEA RSI,[RAX + 0x2]
MOV qword ptr [RBP + -0x50],RDX
CALL 0x0010b1e0
MOV RDX,qword ptr [RBP + -0x50]
MOV R12,RAX
JMP 0x0011d6bc
CALL 0x0010b530
XOR EAX,EAX
JMP 0x0011d42d
(translation_unit "void __gmpz_ior(int *param_1,ulong param_2,ulong param_3)\n\n{\n  undefined8 *puVar1;\n  ulong *puVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  int *piVar5;\n  int iVar6;\n  ulong uVar7;\n  ulong uVar8;\n  long *plVar9;\n  long *plVar10;\n  ulong *puVar11;\n  long *plVar12;\n  long lVar13;\n  long *plVar14;\n  undefined1 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  long lVar18;\n  long lVar19;\n  long *plVar20;\n  long *plVar21;\n  int iVar22;\n  uint uVar23;\n  long *plVar24;\n  long *plVar25;\n  long *plVar26;\n  ulong uVar27;\n  long in_FS_OFFSET;\n  undefined1 auStack_78 [8];\n  long *local_70;\n  ulong local_68;\n  ulong local_60;\n  long *local_58;\n  int *local_50;\n  long local_48;\n  long local_40;\n  \n  puVar15 = auStack_78;\n  puVar17 = auStack_78;\n  puVar16 = auStack_78;\n  iVar6 = *(int *)(param_2 + 4);\n  plVar20 = (long *)(long)iVar6;\n  iVar22 = *(int *)(param_3 + 4);\n  plVar12 = (long *)(long)iVar22;\n  plVar25 = *(long **)(param_2 + 8);\n  plVar9 = *(long **)(param_3 + 8);\n  plVar10 = *(long **)(param_1 + 2);\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_48 = 0;\n  local_50 = param_1;\n  if ((long)plVar20 < 0) {\n    plVar14 = plVar12;\n    param_2 = param_3;\n    plVar24 = plVar25;\n    plVar21 = plVar9;\n    plVar26 = plVar20;\n    if ((long)plVar12 < 0) {\n      if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }\n      lVar18 = -(long)plVar12;\n      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }\n      lVar13 = *plVar25;\n      plVar14 = plVar20 + -(long)plVar21;\n      *plVar20 = lVar13 + -1;\n      if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      plVar14[lVar13] = plVar9[lVar13];\nLAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;\n      lVar18 = uVar8 + 1;\n      if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }\n      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);\n      puVar2 = puVar11 + lVar18;\n      *puVar2 = 0;\n      do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);\n      iVar6 = -((int)lVar18 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }\n  }\n  else {\n    plVar14 = plVar20;\n    plVar24 = plVar9;\n    plVar21 = plVar25;\n    plVar26 = plVar12;\n    if (-1 < (long)plVar12) {\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }\n  }\n  plVar25 = (long *)((long)plVar26 * -8);\n  if (plVar25 < (long *)0x7f01) {\n    lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0);\n    puVar15 = auStack_78 + lVar18;\n    plVar9 = (long *)((long)&local_70 + lVar18);\n    uVar8 = -(long)plVar26;\n  }\n  else {\n    local_68 = param_2;\n    local_60 = -(long)plVar26;\n    local_58 = plVar25;\n    plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);\n    plVar25 = local_58;\n    uVar8 = local_60;\n    param_2 = local_68;\n  }\n  piVar5 = local_50;\n  lVar18 = *plVar24;\n  *plVar9 = lVar18 + -1;\n  if (lVar18 == 0) {\n    if (plVar26 != (long *)0xffffffffffffffff) {\n      lVar18 = plVar24[1];\n      plVar9[1] = lVar18 + -1;\n      if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }\n    }\n  }\n  else if ((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)) {\n    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }\n  }\nLAB_0011ced0:\n  plVar25 = (long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0));\n  if ((long)*local_50 < (long)uVar8) {\n    local_60 = param_2;\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d187;\n    __gmpz_realloc(piVar5,uVar8);\n    plVar10 = *(long **)(piVar5 + 2);\n    plVar21 = *(long **)(local_60 + 8);\n    plVar9 = local_58;\n  }\n  if ((long)plVar14 < (long)plVar25) {\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d0ee;\n    __gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14);\n    plVar9 = local_58;\n    if (plVar14 != (long *)0x0) goto LAB_0011d0f7;\nLAB_0011d108:\n    *plVar10 = *plVar10 + 1;\n    if (*plVar10 == 0) {\n      if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }\n      plVar9 = plVar10 + 1;\n      *plVar9 = *plVar9 + 1;\n      if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }\n    }\n    uVar23 = -(uint)plVar25;\n  }\n  else {\n    plVar12 = (long *)((long)plVar25 + -1);\n    if (plVar12 != (long *)0xffffffffffffffff) {\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *plVar10 = 1;\n    uVar23 = 0xffffffff;\n  }\nLAB_0011cf4c:\n  local_50[1] = uVar23;\n  puVar16 = puVar15;\n  goto joined_r0x0011d45a;\ncode_r0x0011d43b:\n  uVar8 = uVar8 - 1;\n  if (uVar8 == 0xffffffffffffffff) goto code_r0x0011d445;\n  goto LAB_0011d42d;\ncode_r0x0011d445:\n  *plVar10 = 1;\n  iVar6 = -1;\nLAB_0011d44c:\n  local_50[1] = iVar6;\n  puVar16 = puVar17;\njoined_r0x0011d45a:\n  if (local_48 != 0) {\n    *(undefined8 *)(puVar16 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free();\n  }\nLAB_0011cf61:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined8 *)(puVar16 + -8) = 0x11d8c8;\n  __stack_chk_fail();\n}\n\n" (function_definition "void __gmpz_ior(int *param_1,ulong param_2,ulong param_3)\n\n{\n  undefined8 *puVar1;\n  ulong *puVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  int *piVar5;\n  int iVar6;\n  ulong uVar7;\n  ulong uVar8;\n  long *plVar9;\n  long *plVar10;\n  ulong *puVar11;\n  long *plVar12;\n  long lVar13;\n  long *plVar14;\n  undefined1 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  long lVar18;\n  long lVar19;\n  long *plVar20;\n  long *plVar21;\n  int iVar22;\n  uint uVar23;\n  long *plVar24;\n  long *plVar25;\n  long *plVar26;\n  ulong uVar27;\n  long in_FS_OFFSET;\n  undefined1 auStack_78 [8];\n  long *local_70;\n  ulong local_68;\n  ulong local_60;\n  long *local_58;\n  int *local_50;\n  long local_48;\n  long local_40;\n  \n  puVar15 = auStack_78;\n  puVar17 = auStack_78;\n  puVar16 = auStack_78;\n  iVar6 = *(int *)(param_2 + 4);\n  plVar20 = (long *)(long)iVar6;\n  iVar22 = *(int *)(param_3 + 4);\n  plVar12 = (long *)(long)iVar22;\n  plVar25 = *(long **)(param_2 + 8);\n  plVar9 = *(long **)(param_3 + 8);\n  plVar10 = *(long **)(param_1 + 2);\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_48 = 0;\n  local_50 = param_1;\n  if ((long)plVar20 < 0) {\n    plVar14 = plVar12;\n    param_2 = param_3;\n    plVar24 = plVar25;\n    plVar21 = plVar9;\n    plVar26 = plVar20;\n    if ((long)plVar12 < 0) {\n      if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }\n      lVar18 = -(long)plVar12;\n      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }\n      lVar13 = *plVar25;\n      plVar14 = plVar20 + -(long)plVar21;\n      *plVar20 = lVar13 + -1;\n      if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      plVar14[lVar13] = plVar9[lVar13];\nLAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;\n      lVar18 = uVar8 + 1;\n      if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }\n      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);\n      puVar2 = puVar11 + lVar18;\n      *puVar2 = 0;\n      do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);\n      iVar6 = -((int)lVar18 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }\n  }\n  else {\n    plVar14 = plVar20;\n    plVar24 = plVar9;\n    plVar21 = plVar25;\n    plVar26 = plVar12;\n    if (-1 < (long)plVar12) {\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }\n  }\n  plVar25 = (long *)((long)plVar26 * -8);\n  if (plVar25 < (long *)0x7f01) {\n    lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0);\n    puVar15 = auStack_78 + lVar18;\n    plVar9 = (long *)((long)&local_70 + lVar18);\n    uVar8 = -(long)plVar26;\n  }\n  else {\n    local_68 = param_2;\n    local_60 = -(long)plVar26;\n    local_58 = plVar25;\n    plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);\n    plVar25 = local_58;\n    uVar8 = local_60;\n    param_2 = local_68;\n  }\n  piVar5 = local_50;\n  lVar18 = *plVar24;\n  *plVar9 = lVar18 + -1;\n  if (lVar18 == 0) {\n    if (plVar26 != (long *)0xffffffffffffffff) {\n      lVar18 = plVar24[1];\n      plVar9[1] = lVar18 + -1;\n      if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }\n    }\n  }\n  else if ((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)) {\n    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }\n  }\nLAB_0011ced0:\n  plVar25 = (long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0));\n  if ((long)*local_50 < (long)uVar8) {\n    local_60 = param_2;\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d187;\n    __gmpz_realloc(piVar5,uVar8);\n    plVar10 = *(long **)(piVar5 + 2);\n    plVar21 = *(long **)(local_60 + 8);\n    plVar9 = local_58;\n  }\n  if ((long)plVar14 < (long)plVar25) {\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d0ee;\n    __gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14);\n    plVar9 = local_58;\n    if (plVar14 != (long *)0x0) goto LAB_0011d0f7;\nLAB_0011d108:\n    *plVar10 = *plVar10 + 1;\n    if (*plVar10 == 0) {\n      if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }\n      plVar9 = plVar10 + 1;\n      *plVar9 = *plVar9 + 1;\n      if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }\n    }\n    uVar23 = -(uint)plVar25;\n  }\n  else {\n    plVar12 = (long *)((long)plVar25 + -1);\n    if (plVar12 != (long *)0xffffffffffffffff) {\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *plVar10 = 1;\n    uVar23 = 0xffffffff;\n  }\nLAB_0011cf4c:\n  local_50[1] = uVar23;\n  puVar16 = puVar15;\n  goto joined_r0x0011d45a;\ncode_r0x0011d43b:\n  uVar8 = uVar8 - 1;\n  if (uVar8 == 0xffffffffffffffff) goto code_r0x0011d445;\n  goto LAB_0011d42d;\ncode_r0x0011d445:\n  *plVar10 = 1;\n  iVar6 = -1;\nLAB_0011d44c:\n  local_50[1] = iVar6;\n  puVar16 = puVar17;\njoined_r0x0011d45a:\n  if (local_48 != 0) {\n    *(undefined8 *)(puVar16 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free();\n  }\nLAB_0011cf61:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined8 *)(puVar16 + -8) = 0x11d8c8;\n  __stack_chk_fail();\n}" primitive_type (function_declarator "__gmpz_ior(int *param_1,ulong param_2,ulong param_3)" identifier (parameter_list "(int *param_1,ulong param_2,ulong param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "ulong param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined8 *puVar1;\n  ulong *puVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  int *piVar5;\n  int iVar6;\n  ulong uVar7;\n  ulong uVar8;\n  long *plVar9;\n  long *plVar10;\n  ulong *puVar11;\n  long *plVar12;\n  long lVar13;\n  long *plVar14;\n  undefined1 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  long lVar18;\n  long lVar19;\n  long *plVar20;\n  long *plVar21;\n  int iVar22;\n  uint uVar23;\n  long *plVar24;\n  long *plVar25;\n  long *plVar26;\n  ulong uVar27;\n  long in_FS_OFFSET;\n  undefined1 auStack_78 [8];\n  long *local_70;\n  ulong local_68;\n  ulong local_60;\n  long *local_58;\n  int *local_50;\n  long local_48;\n  long local_40;\n  \n  puVar15 = auStack_78;\n  puVar17 = auStack_78;\n  puVar16 = auStack_78;\n  iVar6 = *(int *)(param_2 + 4);\n  plVar20 = (long *)(long)iVar6;\n  iVar22 = *(int *)(param_3 + 4);\n  plVar12 = (long *)(long)iVar22;\n  plVar25 = *(long **)(param_2 + 8);\n  plVar9 = *(long **)(param_3 + 8);\n  plVar10 = *(long **)(param_1 + 2);\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_48 = 0;\n  local_50 = param_1;\n  if ((long)plVar20 < 0) {\n    plVar14 = plVar12;\n    param_2 = param_3;\n    plVar24 = plVar25;\n    plVar21 = plVar9;\n    plVar26 = plVar20;\n    if ((long)plVar12 < 0) {\n      if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }\n      lVar18 = -(long)plVar12;\n      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }\n      lVar13 = *plVar25;\n      plVar14 = plVar20 + -(long)plVar21;\n      *plVar20 = lVar13 + -1;\n      if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      plVar14[lVar13] = plVar9[lVar13];\nLAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;\n      lVar18 = uVar8 + 1;\n      if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }\n      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);\n      puVar2 = puVar11 + lVar18;\n      *puVar2 = 0;\n      do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);\n      iVar6 = -((int)lVar18 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }\n  }\n  else {\n    plVar14 = plVar20;\n    plVar24 = plVar9;\n    plVar21 = plVar25;\n    plVar26 = plVar12;\n    if (-1 < (long)plVar12) {\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }\n  }\n  plVar25 = (long *)((long)plVar26 * -8);\n  if (plVar25 < (long *)0x7f01) {\n    lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0);\n    puVar15 = auStack_78 + lVar18;\n    plVar9 = (long *)((long)&local_70 + lVar18);\n    uVar8 = -(long)plVar26;\n  }\n  else {\n    local_68 = param_2;\n    local_60 = -(long)plVar26;\n    local_58 = plVar25;\n    plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);\n    plVar25 = local_58;\n    uVar8 = local_60;\n    param_2 = local_68;\n  }\n  piVar5 = local_50;\n  lVar18 = *plVar24;\n  *plVar9 = lVar18 + -1;\n  if (lVar18 == 0) {\n    if (plVar26 != (long *)0xffffffffffffffff) {\n      lVar18 = plVar24[1];\n      plVar9[1] = lVar18 + -1;\n      if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }\n    }\n  }\n  else if ((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)) {\n    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }\n  }\nLAB_0011ced0:\n  plVar25 = (long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0));\n  if ((long)*local_50 < (long)uVar8) {\n    local_60 = param_2;\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d187;\n    __gmpz_realloc(piVar5,uVar8);\n    plVar10 = *(long **)(piVar5 + 2);\n    plVar21 = *(long **)(local_60 + 8);\n    plVar9 = local_58;\n  }\n  if ((long)plVar14 < (long)plVar25) {\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d0ee;\n    __gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14);\n    plVar9 = local_58;\n    if (plVar14 != (long *)0x0) goto LAB_0011d0f7;\nLAB_0011d108:\n    *plVar10 = *plVar10 + 1;\n    if (*plVar10 == 0) {\n      if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }\n      plVar9 = plVar10 + 1;\n      *plVar9 = *plVar9 + 1;\n      if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }\n    }\n    uVar23 = -(uint)plVar25;\n  }\n  else {\n    plVar12 = (long *)((long)plVar25 + -1);\n    if (plVar12 != (long *)0xffffffffffffffff) {\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *plVar10 = 1;\n    uVar23 = 0xffffffff;\n  }\nLAB_0011cf4c:\n  local_50[1] = uVar23;\n  puVar16 = puVar15;\n  goto joined_r0x0011d45a;\ncode_r0x0011d43b:\n  uVar8 = uVar8 - 1;\n  if (uVar8 == 0xffffffffffffffff) goto code_r0x0011d445;\n  goto LAB_0011d42d;\ncode_r0x0011d445:\n  *plVar10 = 1;\n  iVar6 = -1;\nLAB_0011d44c:\n  local_50[1] = iVar6;\n  puVar16 = puVar17;\njoined_r0x0011d45a:\n  if (local_48 != 0) {\n    *(undefined8 *)(puVar16 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free();\n  }\nLAB_0011cf61:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined8 *)(puVar16 + -8) = 0x11d8c8;\n  __stack_chk_fail();\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "ulong *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "long *plVar9;" (sized_type_specifier "long" long) (pointer_declarator "*plVar9" * identifier) ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "ulong *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "long *plVar12;" (sized_type_specifier "long" long) (pointer_declarator "*plVar12" * identifier) ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar14;" (sized_type_specifier "long" long) (pointer_declarator "*plVar14" * identifier) ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "long lVar18;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar19;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar20;" (sized_type_specifier "long" long) (pointer_declarator "*plVar20" * identifier) ;) (declaration "long *plVar21;" (sized_type_specifier "long" long) (pointer_declarator "*plVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "long *plVar24;" (sized_type_specifier "long" long) (pointer_declarator "*plVar24" * identifier) ;) (declaration "long *plVar25;" (sized_type_specifier "long" long) (pointer_declarator "*plVar25" * identifier) ;) (declaration "long *plVar26;" (sized_type_specifier "long" long) (pointer_declarator "*plVar26" * identifier) ;) (declaration "ulong uVar27;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 auStack_78 [8];" type_identifier (array_declarator "auStack_78 [8]" identifier [ number_literal ]) ;) (declaration "long *local_70;" (sized_type_specifier "long" long) (pointer_declarator "*local_70" * identifier) ;) (declaration "ulong local_68;" type_identifier identifier ;) (declaration "ulong local_60;" type_identifier identifier ;) (declaration "long *local_58;" (sized_type_specifier "long" long) (pointer_declarator "*local_58" * identifier) ;) (declaration "int *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "long local_48;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "puVar15 = auStack_78;" (assignment_expression "puVar15 = auStack_78" identifier = identifier) ;) (expression_statement "puVar17 = auStack_78;" (assignment_expression "puVar17 = auStack_78" identifier = identifier) ;) (expression_statement "puVar16 = auStack_78;" (assignment_expression "puVar16 = auStack_78" identifier = identifier) ;) (expression_statement "iVar6 = *(int *)(param_2 + 4);" (assignment_expression "iVar6 = *(int *)(param_2 + 4)" identifier = (pointer_expression "*(int *)(param_2 + 4)" * (cast_expression "(int *)(param_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) ;) (expression_statement "plVar20 = (long *)(long)iVar6;" (assignment_expression "plVar20 = (long *)(long)iVar6" identifier = (cast_expression "(long *)(long)iVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (cast_expression "(long)iVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "iVar22 = *(int *)(param_3 + 4);" (assignment_expression "iVar22 = *(int *)(param_3 + 4)" identifier = (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) ))))) ;) (expression_statement "plVar12 = (long *)(long)iVar22;" (assignment_expression "plVar12 = (long *)(long)iVar22" identifier = (cast_expression "(long *)(long)iVar22" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (cast_expression "(long)iVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "plVar25 = *(long **)(param_2 + 8);" (assignment_expression "plVar25 = *(long **)(param_2 + 8)" identifier = (pointer_expression "*(long **)(param_2 + 8)" * (cast_expression "(long **)(param_2 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (expression_statement "plVar9 = *(long **)(param_3 + 8);" (assignment_expression "plVar9 = *(long **)(param_3 + 8)" identifier = (pointer_expression "*(long **)(param_3 + 8)" * (cast_expression "(long **)(param_3 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) ))))) ;) (expression_statement "plVar10 = *(long **)(param_1 + 2);" (assignment_expression "plVar10 = *(long **)(param_1 + 2)" identifier = (pointer_expression "*(long **)(param_1 + 2)" * (cast_expression "(long **)(param_1 + 2)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) ))))) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_50 = param_1;" (assignment_expression "local_50 = param_1" identifier = identifier) ;) (if_statement "if ((long)plVar20 < 0) {\n    plVar14 = plVar12;\n    param_2 = param_3;\n    plVar24 = plVar25;\n    plVar21 = plVar9;\n    plVar26 = plVar20;\n    if ((long)plVar12 < 0) {\n      if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }\n      lVar18 = -(long)plVar12;\n      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }\n      lVar13 = *plVar25;\n      plVar14 = plVar20 + -(long)plVar21;\n      *plVar20 = lVar13 + -1;\n      if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      plVar14[lVar13] = plVar9[lVar13];\nLAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;\n      lVar18 = uVar8 + 1;\n      if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }\n      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);\n      puVar2 = puVar11 + lVar18;\n      *puVar2 = 0;\n      do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);\n      iVar6 = -((int)lVar18 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }\n  }\n  else {\n    plVar14 = plVar20;\n    plVar24 = plVar9;\n    plVar21 = plVar25;\n    plVar26 = plVar12;\n    if (-1 < (long)plVar12) {\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }\n  }" if (parenthesized_expression "((long)plVar20 < 0)" ( (binary_expression "(long)plVar20 < 0" (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n    plVar14 = plVar12;\n    param_2 = param_3;\n    plVar24 = plVar25;\n    plVar21 = plVar9;\n    plVar26 = plVar20;\n    if ((long)plVar12 < 0) {\n      if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }\n      lVar18 = -(long)plVar12;\n      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }\n      lVar13 = *plVar25;\n      plVar14 = plVar20 + -(long)plVar21;\n      *plVar20 = lVar13 + -1;\n      if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      plVar14[lVar13] = plVar9[lVar13];\nLAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;\n      lVar18 = uVar8 + 1;\n      if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }\n      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);\n      puVar2 = puVar11 + lVar18;\n      *puVar2 = 0;\n      do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);\n      iVar6 = -((int)lVar18 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }\n  }" { (expression_statement "plVar14 = plVar12;" (assignment_expression "plVar14 = plVar12" identifier = identifier) ;) (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" identifier = identifier) ;) (expression_statement "plVar24 = plVar25;" (assignment_expression "plVar24 = plVar25" identifier = identifier) ;) (expression_statement "plVar21 = plVar9;" (assignment_expression "plVar21 = plVar9" identifier = identifier) ;) (expression_statement "plVar26 = plVar20;" (assignment_expression "plVar26 = plVar20" identifier = identifier) ;) (if_statement "if ((long)plVar12 < 0) {\n      if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }\n      lVar18 = -(long)plVar12;\n      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }\n      lVar13 = *plVar25;\n      plVar14 = plVar20 + -(long)plVar21;\n      *plVar20 = lVar13 + -1;\n      if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      plVar14[lVar13] = plVar9[lVar13];\nLAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;\n      lVar18 = uVar8 + 1;\n      if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }\n      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);\n      puVar2 = puVar11 + lVar18;\n      *puVar2 = 0;\n      do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);\n      iVar6 = -((int)lVar18 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }" if (parenthesized_expression "((long)plVar12 < 0)" ( (binary_expression "(long)plVar12 < 0" (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n      if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }\n      lVar18 = -(long)plVar12;\n      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }\n      lVar13 = *plVar25;\n      plVar14 = plVar20 + -(long)plVar21;\n      *plVar20 = lVar13 + -1;\n      if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      plVar14[lVar13] = plVar9[lVar13];\nLAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;\n      lVar18 = uVar8 + 1;\n      if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }\n      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);\n      puVar2 = puVar11 + lVar18;\n      *puVar2 = 0;\n      do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);\n      iVar6 = -((int)lVar18 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }" { (if_statement "if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }" if (parenthesized_expression "((long)plVar12 <= (long)plVar20)" ( (binary_expression "(long)plVar12 <= (long)plVar20" (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) <= (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n        plVar12 = plVar20;\n      }" { (expression_statement "plVar12 = plVar20;" (assignment_expression "plVar12 = plVar20" identifier = identifier) ;) })) (expression_statement "lVar18 = -(long)plVar12;" (assignment_expression "lVar18 = -(long)plVar12" identifier = (unary_expression "-(long)plVar12" - (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }" if (parenthesized_expression "((ulong)((long)plVar12 * -0x10) < 0x7f01)" ( (binary_expression "(ulong)((long)plVar12 * -0x10) < 0x7f01" (call_expression "(ulong)((long)plVar12 * -0x10)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)plVar12 * -0x10)" ( (binary_expression "(long)plVar12 * -0x10" (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) ))) < number_literal) )) (compound_statement "{\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }" { (expression_statement "lVar13 = -((long)plVar12 * -0x10 + 0x10U);" (assignment_expression "lVar13 = -((long)plVar12 * -0x10 + 0x10U)" identifier = (unary_expression "-((long)plVar12 * -0x10 + 0x10U)" - (parenthesized_expression "((long)plVar12 * -0x10 + 0x10U)" ( (binary_expression "(long)plVar12 * -0x10 + 0x10U" (binary_expression "(long)plVar12 * -0x10" (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) + number_literal) )))) ;) (expression_statement "puVar17 = auStack_78 + lVar13;" (assignment_expression "puVar17 = auStack_78 + lVar13" identifier = (binary_expression "auStack_78 + lVar13" identifier + identifier)) ;) (expression_statement "plVar20 = (long *)((long)&local_70 + lVar13);" (assignment_expression "plVar20 = (long *)((long)&local_70 + lVar13)" identifier = (cast_expression "(long *)((long)&local_70 + lVar13)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_70 + lVar13)" ( (binary_expression "(long)&local_70 + lVar13" (cast_expression "(long)&local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_70" & identifier)) + identifier) )))) ;) (expression_statement "plVar21 = plVar12;" (assignment_expression "plVar21 = plVar12" identifier = identifier) ;) }) (else_clause "else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }" else (compound_statement "{\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }" { (expression_statement "local_58 = plVar12;" (assignment_expression "local_58 = plVar12" identifier = identifier) ;) (expression_statement "plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);" (assignment_expression "plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48)" identifier = (cast_expression "(long *)__gmp_tmp_reentrant_alloc(&local_48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "__gmp_tmp_reentrant_alloc(&local_48)" identifier (argument_list "(&local_48)" ( (pointer_expression "&local_48" & identifier) ))))) ;) (expression_statement "plVar21 = local_58;" (assignment_expression "plVar21 = local_58" identifier = identifier) ;) }))) (expression_statement "lVar13 = *plVar25;" (assignment_expression "lVar13 = *plVar25" identifier = (pointer_expression "*plVar25" * identifier)) ;) (expression_statement "plVar14 = plVar20 + -(long)plVar21;" (assignment_expression "plVar14 = plVar20 + -(long)plVar21" identifier = (binary_expression "plVar20 + -(long)plVar21" identifier + (unary_expression "-(long)plVar21" - (cast_expression "(long)plVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)))) ;) (expression_statement "*plVar20 = lVar13 + -1;" (assignment_expression "*plVar20 = lVar13 + -1" (pointer_expression "*plVar20" * identifier) = (binary_expression "lVar13 + -1" identifier + number_literal)) ;) (if_statement "if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (compound_statement "{\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }" { (if_statement "if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }" if (parenthesized_expression "(plVar21 == (long *)0xffffffffffffffff)" ( (binary_expression "plVar21 == (long *)0xffffffffffffffff" identifier == (cast_expression "(long *)0xffffffffffffffff" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }" { (labeled_statement "LAB_0011d84a:\n          lVar13 = *plVar9;" statement_identifier : (expression_statement "lVar13 = *plVar9;" (assignment_expression "lVar13 = *plVar9" identifier = (pointer_expression "*plVar9" * identifier)) ;)) (expression_statement "*plVar14 = lVar13 + -1;" (assignment_expression "*plVar14 = lVar13 + -1" (pointer_expression "*plVar14" * identifier) = (binary_expression "lVar13 + -1" identifier + number_literal)) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (lVar13 == 0) goto LAB_0011d42d;" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;)) }) (else_clause "else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }" else (compound_statement "{\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }" { (expression_statement "lVar13 = plVar25[1];" (assignment_expression "lVar13 = plVar25[1]" identifier = (subscript_expression "plVar25[1]" identifier [ number_literal ])) ;) (expression_statement "plVar20[1] = lVar13 + -1;" (assignment_expression "plVar20[1] = lVar13 + -1" (subscript_expression "plVar20[1]" identifier [ number_literal ]) = (binary_expression "lVar13 + -1" identifier + number_literal)) ;) (if_statement "if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (compound_statement "{\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }" { (if_statement "if (-3 < (long)plVar21) goto LAB_0011d53d;" if (parenthesized_expression "(-3 < (long)plVar21)" ( (binary_expression "-3 < (long)plVar21" number_literal < (cast_expression "(long)plVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_0011d53d;" goto statement_identifier ;)) (expression_statement "lVar19 = plVar25[2];" (assignment_expression "lVar19 = plVar25[2]" identifier = (subscript_expression "plVar25[2]" identifier [ number_literal ])) ;) (expression_statement "plVar20[2] = lVar19 + -1;" (assignment_expression "plVar20[2] = lVar19 + -1" (subscript_expression "plVar20[2]" identifier [ number_literal ]) = (binary_expression "lVar19 + -1" identifier + number_literal)) ;) (expression_statement "lVar13 = 3;" (assignment_expression "lVar13 = 3" identifier = number_literal) ;) (while_statement "while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }" while (parenthesized_expression "(lVar19 == 0)" ( (binary_expression "lVar19 == 0" identifier == number_literal) )) (compound_statement "{\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }" { (if_statement "if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;" if (parenthesized_expression "((long *)-lVar13 == plVar12)" ( (binary_expression "(long *)-lVar13 == plVar12" (cast_expression "(long *)-lVar13" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar13" - identifier)) == identifier) )) (goto_statement "goto LAB_0011d53d;" goto statement_identifier ;)) (expression_statement "lVar19 = plVar25[lVar13];" (assignment_expression "lVar19 = plVar25[lVar13]" identifier = (subscript_expression "plVar25[lVar13]" identifier [ identifier ])) ;) (expression_statement "plVar20[lVar13] = lVar19 + -1;" (assignment_expression "plVar20[lVar13] = lVar19 + -1" (subscript_expression "plVar20[lVar13]" identifier [ identifier ]) = (binary_expression "lVar19 + -1" identifier + number_literal)) ;) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" identifier = (binary_expression "lVar13 + 1" identifier + number_literal)) ;) })) }) (else_clause "else {\n            lVar13 = 2;\n          }" else (compound_statement "{\n            lVar13 = 2;\n          }" { (expression_statement "lVar13 = 2;" (assignment_expression "lVar13 = 2" identifier = number_literal) ;) }))) (if_statement "if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }" if (parenthesized_expression "((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18))" ( (binary_expression "(plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)" (parenthesized_expression "(plVar20 != plVar25)" ( (binary_expression "plVar20 != plVar25" identifier != identifier) )) && (parenthesized_expression "((long *)-lVar13 != plVar12 && lVar13 <= lVar18)" ( (binary_expression "(long *)-lVar13 != plVar12 && lVar13 <= lVar18" (binary_expression "(long *)-lVar13 != plVar12" (cast_expression "(long *)-lVar13" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar13" - identifier)) != identifier) && (binary_expression "lVar13 <= lVar18" identifier <= identifier)) ))) )) (compound_statement "{\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }" { (expression_statement "plVar24 = plVar25 + lVar13;" (assignment_expression "plVar24 = plVar25 + lVar13" identifier = (binary_expression "plVar25 + lVar13" identifier + identifier)) ;) (expression_statement "local_58 = plVar20 + lVar13;" (assignment_expression "local_58 = plVar20 + lVar13" identifier = (binary_expression "plVar20 + lVar13" identifier + identifier)) ;) (expression_statement "local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);" (assignment_expression "local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24)" identifier = (call_expression "CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24)" identifier (argument_list "(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24)" ( (field_expression "local_60._1_7_" identifier . field_identifier) , (binary_expression "plVar20 + lVar13 + 2 <= plVar24" (binary_expression "plVar20 + lVar13 + 2" (binary_expression "plVar20 + lVar13" identifier + identifier) + number_literal) <= identifier) )))) ;) (if_statement "if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }" if (parenthesized_expression "((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13))" ( (binary_expression "(plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)" (parenthesized_expression "(plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58)" ( (binary_expression "plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58" (binary_expression "plVar20 + lVar13 + 2 <= plVar24" (binary_expression "plVar20 + lVar13 + 2" (binary_expression "plVar20 + lVar13" identifier + identifier) + number_literal) <= identifier) || (binary_expression "plVar25 + lVar13 + 2 <= local_58" (binary_expression "plVar25 + lVar13 + 2" (binary_expression "plVar25 + lVar13" identifier + identifier) + number_literal) <= identifier)) )) && (parenthesized_expression "(3 < ~(ulong)plVar21 - lVar13)" ( (binary_expression "3 < ~(ulong)plVar21 - lVar13" number_literal < (binary_expression "~(ulong)plVar21 - lVar13" (unary_expression "~(ulong)plVar21" ~ (cast_expression "(ulong)plVar21" ( (type_descriptor "ulong" type_identifier) ) identifier)) - identifier)) ))) )) (compound_statement "{\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }" { (expression_statement "local_60 = lVar18 - lVar13;" (assignment_expression "local_60 = lVar18 - lVar13" identifier = (binary_expression "lVar18 - lVar13" identifier - identifier)) ;) (expression_statement "lVar19 = 0;" (assignment_expression "lVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);" do (compound_statement "{\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              }" { (expression_statement "uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];" (assignment_expression "uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1]" identifier = (subscript_expression "((undefined8 *)((long)plVar24 + lVar19))[1]" (parenthesized_expression "((undefined8 *)((long)plVar24 + lVar19))" ( (cast_expression "(undefined8 *)((long)plVar24 + lVar19)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar24 + lVar19)" ( (binary_expression "(long)plVar24 + lVar19" (cast_expression "(long)plVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);" (assignment_expression "*(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19)" (pointer_expression "*(undefined8 *)((long)local_58 + lVar19)" * (cast_expression "(undefined8 *)((long)local_58 + lVar19)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + lVar19)" ( (binary_expression "(long)local_58 + lVar19" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (pointer_expression "*(undefined8 *)((long)plVar24 + lVar19)" * (cast_expression "(undefined8 *)((long)plVar24 + lVar19)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar24 + lVar19)" ( (binary_expression "(long)plVar24 + lVar19" (cast_expression "(long)plVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ;) (expression_statement "((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;" (assignment_expression "((undefined8 *)((long)local_58 + lVar19))[1] = uVar4" (subscript_expression "((undefined8 *)((long)local_58 + lVar19))[1]" (parenthesized_expression "((undefined8 *)((long)local_58 + lVar19))" ( (cast_expression "(undefined8 *)((long)local_58 + lVar19)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + lVar19)" ( (binary_expression "(long)local_58 + lVar19" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = identifier) ;) (expression_statement "lVar19 = lVar19 + 0x10;" (assignment_expression "lVar19 = lVar19 + 0x10" identifier = (binary_expression "lVar19 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar19 != (local_60 >> 1) * 0x10)" ( (binary_expression "lVar19 != (local_60 >> 1) * 0x10" identifier != (binary_expression "(local_60 >> 1) * 0x10" (parenthesized_expression "(local_60 >> 1)" ( (binary_expression "local_60 >> 1" identifier >> number_literal) )) * number_literal)) )) ;) (expression_statement "lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);" (assignment_expression "lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe)" identifier = (binary_expression "lVar13 + (local_60 & 0xfffffffffffffffe)" identifier + (parenthesized_expression "(local_60 & 0xfffffffffffffffe)" ( (binary_expression "local_60 & 0xfffffffffffffffe" identifier & number_literal) )))) ;) (if_statement "if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }" if (parenthesized_expression "(local_60 != (local_60 & 0xfffffffffffffffe))" ( (binary_expression "local_60 != (local_60 & 0xfffffffffffffffe)" identifier != (parenthesized_expression "(local_60 & 0xfffffffffffffffe)" ( (binary_expression "local_60 & 0xfffffffffffffffe" identifier & number_literal) ))) )) (compound_statement "{\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }" { (labeled_statement "LAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];" statement_identifier : (expression_statement "plVar20[lVar13] = plVar25[lVar13];" (assignment_expression "plVar20[lVar13] = plVar25[lVar13]" (subscript_expression "plVar20[lVar13]" identifier [ identifier ]) = (subscript_expression "plVar25[lVar13]" identifier [ identifier ])) ;)) })) }) (else_clause "else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }" else (compound_statement "{\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }" { (do_statement "do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);" do (compound_statement "{\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              }" { (expression_statement "plVar20[lVar13] = plVar25[lVar13];" (assignment_expression "plVar20[lVar13] = plVar25[lVar13]" (subscript_expression "plVar20[lVar13]" identifier [ identifier ]) = (subscript_expression "plVar25[lVar13]" identifier [ identifier ])) ;) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" identifier = (binary_expression "lVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((long *)-lVar13 != plVar12)" ( (binary_expression "(long *)-lVar13 != plVar12" (cast_expression "(long *)-lVar13" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar13" - identifier)) != identifier) )) ;) }))) })) (labeled_statement "LAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;" statement_identifier : (expression_statement "uVar8 = ~(ulong)plVar21;" (assignment_expression "uVar8 = ~(ulong)plVar21" identifier = (unary_expression "~(ulong)plVar21" ~ (cast_expression "(ulong)plVar21" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;)) (expression_statement "lVar13 = *plVar9;" (assignment_expression "lVar13 = *plVar9" identifier = (pointer_expression "*plVar9" * identifier)) ;) (expression_statement "*plVar14 = lVar13 + -1;" (assignment_expression "*plVar14 = lVar13 + -1" (pointer_expression "*plVar14" * identifier) = (binary_expression "lVar13 + -1" identifier + number_literal)) ;) (if_statement "if (lVar13 == 0) goto LAB_0011d551;" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011d551;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;" statement_identifier : (if_statement "if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;" if (parenthesized_expression "((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff))" ( (binary_expression "(plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)" (parenthesized_expression "(plVar9 == plVar14)" ( (binary_expression "plVar9 == plVar14" identifier == identifier) )) || (parenthesized_expression "(plVar21 == (long *)0xffffffffffffffff)" ( (binary_expression "plVar21 == (long *)0xffffffffffffffff" identifier == (cast_expression "(long *)0xffffffffffffffff" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;))) (if_statement "if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }" if (parenthesized_expression "((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21))" ( (binary_expression "(plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)" (parenthesized_expression "(plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3)" ( (binary_expression "plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3" (binary_expression "plVar9 + 1 < plVar20 + (3 - (long)plVar21)" (binary_expression "plVar9 + 1" identifier + number_literal) < (binary_expression "plVar20 + (3 - (long)plVar21)" identifier + (parenthesized_expression "(3 - (long)plVar21)" ( (binary_expression "3 - (long)plVar21" number_literal - (cast_expression "(long)plVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) && (binary_expression "plVar20 + (1 - (long)plVar21) < plVar9 + 3" (binary_expression "plVar20 + (1 - (long)plVar21)" identifier + (parenthesized_expression "(1 - (long)plVar21)" ( (binary_expression "1 - (long)plVar21" number_literal - (cast_expression "(long)plVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) < (binary_expression "plVar9 + 3" identifier + number_literal))) )) || (parenthesized_expression "(-6 < (long)plVar21)" ( (binary_expression "-6 < (long)plVar21" number_literal < (cast_expression "(long)plVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) )) (compound_statement "{\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }" { (expression_statement "lVar13 = 1;" (assignment_expression "lVar13 = 1" identifier = number_literal) ;) (do_statement "do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);" do (compound_statement "{\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          }" { (expression_statement "plVar14[lVar13] = plVar9[lVar13];" (assignment_expression "plVar14[lVar13] = plVar9[lVar13]" (subscript_expression "plVar14[lVar13]" identifier [ identifier ]) = (subscript_expression "plVar9[lVar13]" identifier [ identifier ])) ;) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" identifier = (binary_expression "lVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((long *)-lVar13 != plVar12 && lVar13 <= lVar18)" ( (binary_expression "(long *)-lVar13 != plVar12 && lVar13 <= lVar18" (binary_expression "(long *)-lVar13 != plVar12" (cast_expression "(long *)-lVar13" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar13" - identifier)) != identifier) && (binary_expression "lVar13 <= lVar18" identifier <= identifier)) )) ;) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (if_statement "if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }" if (parenthesized_expression "((long)plVar21 < -1)" ( (binary_expression "(long)plVar21 < -1" (cast_expression "(long)plVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n          uVar7 = uVar8;\n        }" { (expression_statement "uVar7 = uVar8;" (assignment_expression "uVar7 = uVar8" identifier = identifier) ;) })) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);" do (compound_statement "{\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        }" { (expression_statement "puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);" (assignment_expression "puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8)" identifier = (cast_expression "(undefined8 *)((long)plVar9 + lVar18 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar9 + lVar18 + 8)" ( (binary_expression "(long)plVar9 + lVar18 + 8" (binary_expression "(long)plVar9 + lVar18" (cast_expression "(long)plVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar4 = puVar3[1];" (assignment_expression "uVar4 = puVar3[1]" identifier = (subscript_expression "puVar3[1]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);" (assignment_expression "puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18)" identifier = (cast_expression "(undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(plVar20 + (1 - (long)plVar21)) + lVar18)" ( (binary_expression "(long)(plVar20 + (1 - (long)plVar21)) + lVar18" (cast_expression "(long)(plVar20 + (1 - (long)plVar21))" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar20 + (1 - (long)plVar21))" ( (binary_expression "plVar20 + (1 - (long)plVar21)" identifier + (parenthesized_expression "(1 - (long)plVar21)" ( (binary_expression "1 - (long)plVar21" number_literal - (cast_expression "(long)plVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ))) + identifier) )))) ;) (expression_statement "*puVar1 = *puVar3;" (assignment_expression "*puVar1 = *puVar3" (pointer_expression "*puVar1" * identifier) = (pointer_expression "*puVar3" * identifier)) ;) (expression_statement "puVar1[1] = uVar4;" (assignment_expression "puVar1[1] = uVar4" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "lVar18 = lVar18 + 0x10;" (assignment_expression "lVar18 = lVar18 + 0x10" identifier = (binary_expression "lVar18 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar18 != (uVar7 >> 1) * 0x10)" ( (binary_expression "lVar18 != (uVar7 >> 1) * 0x10" identifier != (binary_expression "(uVar7 >> 1) * 0x10" (parenthesized_expression "(uVar7 >> 1)" ( (binary_expression "uVar7 >> 1" identifier >> number_literal) )) * number_literal)) )) ;) (expression_statement "lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;" (assignment_expression "lVar13 = (uVar7 & 0xfffffffffffffffe) + 1" identifier = (binary_expression "(uVar7 & 0xfffffffffffffffe) + 1" (parenthesized_expression "(uVar7 & 0xfffffffffffffffe)" ( (binary_expression "uVar7 & 0xfffffffffffffffe" identifier & number_literal) )) + number_literal)) ;) (if_statement "if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;" if (parenthesized_expression "(uVar7 == (uVar7 & 0xfffffffffffffffe))" ( (binary_expression "uVar7 == (uVar7 & 0xfffffffffffffffe)" identifier == (parenthesized_expression "(uVar7 & 0xfffffffffffffffe)" ( (binary_expression "uVar7 & 0xfffffffffffffffe" identifier & number_literal) ))) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;)) }) (else_clause "else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }" else (compound_statement "{\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }" { (if_statement "if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }" if (parenthesized_expression "(plVar20 != plVar25)" ( (binary_expression "plVar20 != plVar25" identifier != identifier) )) (compound_statement "{\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }" { (if_statement "if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;" if (parenthesized_expression "(plVar21 == (long *)0xffffffffffffffff)" ( (binary_expression "plVar21 == (long *)0xffffffffffffffff" identifier == (cast_expression "(long *)0xffffffffffffffff" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011d84a;" goto statement_identifier ;)) (if_statement "if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }" if (parenthesized_expression "((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21))" ( (binary_expression "(plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)" (parenthesized_expression "(plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3)" ( (binary_expression "plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3" (binary_expression "plVar25 + 1 < plVar20 + 3" (binary_expression "plVar25 + 1" identifier + number_literal) < (binary_expression "plVar20 + 3" identifier + number_literal)) && (binary_expression "plVar20 + 1 < plVar25 + 3" (binary_expression "plVar20 + 1" identifier + number_literal) < (binary_expression "plVar25 + 3" identifier + number_literal))) )) || (parenthesized_expression "(-6 < (long)plVar21)" ( (binary_expression "-6 < (long)plVar21" number_literal < (cast_expression "(long)plVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) )) (compound_statement "{\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }" { (expression_statement "lVar13 = 1;" (assignment_expression "lVar13 = 1" identifier = number_literal) ;) (do_statement "do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);" do (compound_statement "{\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            }" { (expression_statement "plVar20[lVar13] = plVar25[lVar13];" (assignment_expression "plVar20[lVar13] = plVar25[lVar13]" (subscript_expression "plVar20[lVar13]" identifier [ identifier ]) = (subscript_expression "plVar25[lVar13]" identifier [ identifier ])) ;) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" identifier = (binary_expression "lVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((long *)-lVar13 != plVar12 && lVar13 <= lVar18)" ( (binary_expression "(long *)-lVar13 != plVar12 && lVar13 <= lVar18" (binary_expression "(long *)-lVar13 != plVar12" (cast_expression "(long *)-lVar13" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar13" - identifier)) != identifier) && (binary_expression "lVar13 <= lVar18" identifier <= identifier)) )) ;) }) (else_clause "else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }" else (compound_statement "{\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }" { (expression_statement "lVar13 = 8;" (assignment_expression "lVar13 = 8" identifier = number_literal) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (if_statement "if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }" if (parenthesized_expression "((long)plVar21 < -1)" ( (binary_expression "(long)plVar21 < -1" (cast_expression "(long)plVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n              uVar8 = ~(ulong)plVar21;\n            }" { (expression_statement "uVar8 = ~(ulong)plVar21;" (assignment_expression "uVar8 = ~(ulong)plVar21" identifier = (unary_expression "~(ulong)plVar21" ~ (cast_expression "(ulong)plVar21" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) })) (do_statement "do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);" do (compound_statement "{\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            }" { (expression_statement "uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];" (assignment_expression "uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1]" identifier = (subscript_expression "((undefined8 *)((long)plVar25 + lVar13))[1]" (parenthesized_expression "((undefined8 *)((long)plVar25 + lVar13))" ( (cast_expression "(undefined8 *)((long)plVar25 + lVar13)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar25 + lVar13)" ( (binary_expression "(long)plVar25 + lVar13" (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);" (assignment_expression "*(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13)" (pointer_expression "*(undefined8 *)((long)plVar20 + lVar13)" * (cast_expression "(undefined8 *)((long)plVar20 + lVar13)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar20 + lVar13)" ( (binary_expression "(long)plVar20 + lVar13" (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (pointer_expression "*(undefined8 *)((long)plVar25 + lVar13)" * (cast_expression "(undefined8 *)((long)plVar25 + lVar13)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar25 + lVar13)" ( (binary_expression "(long)plVar25 + lVar13" (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ;) (expression_statement "((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;" (assignment_expression "((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4" (subscript_expression "((undefined8 *)((long)plVar20 + lVar13))[1]" (parenthesized_expression "((undefined8 *)((long)plVar20 + lVar13))" ( (cast_expression "(undefined8 *)((long)plVar20 + lVar13)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar20 + lVar13)" ( (binary_expression "(long)plVar20 + lVar13" (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = identifier) ;) (expression_statement "lVar13 = lVar13 + 0x10;" (assignment_expression "lVar13 = lVar13 + 0x10" identifier = (binary_expression "lVar13 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar13 != (uVar8 >> 1) * 0x10 + 8)" ( (binary_expression "lVar13 != (uVar8 >> 1) * 0x10 + 8" identifier != (binary_expression "(uVar8 >> 1) * 0x10 + 8" (binary_expression "(uVar8 >> 1) * 0x10" (parenthesized_expression "(uVar8 >> 1)" ( (binary_expression "uVar8 >> 1" identifier >> number_literal) )) * number_literal) + number_literal)) )) ;) (expression_statement "lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;" (assignment_expression "lVar13 = (uVar8 & 0xfffffffffffffffe) + 1" identifier = (binary_expression "(uVar8 & 0xfffffffffffffffe) + 1" (parenthesized_expression "(uVar8 & 0xfffffffffffffffe)" ( (binary_expression "uVar8 & 0xfffffffffffffffe" identifier & number_literal) )) + number_literal)) ;) (if_statement "if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;" if (parenthesized_expression "(uVar8 != (uVar8 & 0xfffffffffffffffe))" ( (binary_expression "uVar8 != (uVar8 & 0xfffffffffffffffe)" identifier != (parenthesized_expression "(uVar8 & 0xfffffffffffffffe)" ( (binary_expression "uVar8 & 0xfffffffffffffffe" identifier & number_literal) ))) )) (goto_statement "goto LAB_0011d534;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0011d53d;" goto statement_identifier ;) })) (expression_statement "lVar13 = *plVar9;" (assignment_expression "lVar13 = *plVar9" identifier = (pointer_expression "*plVar9" * identifier)) ;) (expression_statement "*plVar14 = lVar13 + -1;" (assignment_expression "*plVar14 = lVar13 + -1" (pointer_expression "*plVar14" * identifier) = (binary_expression "lVar13 + -1" identifier + number_literal)) ;) (if_statement "if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }" if (parenthesized_expression "(lVar13 != 0)" ( (binary_expression "lVar13 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }" { (expression_statement "uVar8 = ~(ulong)plVar21;" (assignment_expression "uVar8 = ~(ulong)plVar21" identifier = (unary_expression "~(ulong)plVar21" ~ (cast_expression "(ulong)plVar21" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (goto_statement "goto LAB_0011d3a0;" goto statement_identifier ;) })) (if_statement "if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }" if (parenthesized_expression "(plVar21 == (long *)0xffffffffffffffff)" ( (binary_expression "plVar21 == (long *)0xffffffffffffffff" identifier == (cast_expression "(long *)0xffffffffffffffff" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;) })) (labeled_statement "LAB_0011d551:\n        uVar8 = ~(ulong)plVar21;" statement_identifier : (expression_statement "uVar8 = ~(ulong)plVar21;" (assignment_expression "uVar8 = ~(ulong)plVar21" identifier = (unary_expression "~(ulong)plVar21" ~ (cast_expression "(ulong)plVar21" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;)) (expression_statement "lVar13 = plVar9[1];" (assignment_expression "lVar13 = plVar9[1]" identifier = (subscript_expression "plVar9[1]" identifier [ number_literal ])) ;) (expression_statement "plVar14[1] = lVar13 + -1;" (assignment_expression "plVar14[1] = lVar13 + -1" (subscript_expression "plVar14[1]" identifier [ number_literal ]) = (binary_expression "lVar13 + -1" identifier + number_literal)) ;) (if_statement "if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }" { (if_statement "if (-3 < (long)plVar21) goto LAB_0011d42d;" if (parenthesized_expression "(-3 < (long)plVar21)" ( (binary_expression "-3 < (long)plVar21" number_literal < (cast_expression "(long)plVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;)) (expression_statement "lVar19 = plVar9[2];" (assignment_expression "lVar19 = plVar9[2]" identifier = (subscript_expression "plVar9[2]" identifier [ number_literal ])) ;) (expression_statement "lVar13 = 3;" (assignment_expression "lVar13 = 3" identifier = number_literal) ;) (expression_statement "plVar14[2] = lVar19 + -1;" (assignment_expression "plVar14[2] = lVar19 + -1" (subscript_expression "plVar14[2]" identifier [ number_literal ]) = (binary_expression "lVar19 + -1" identifier + number_literal)) ;) (while_statement "while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }" while (parenthesized_expression "(lVar19 == 0)" ( (binary_expression "lVar19 == 0" identifier == number_literal) )) (compound_statement "{\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }" { (if_statement "if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;" if (parenthesized_expression "((long *)-lVar13 == plVar12)" ( (binary_expression "(long *)-lVar13 == plVar12" (cast_expression "(long *)-lVar13" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar13" - identifier)) == identifier) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;)) (expression_statement "lVar19 = plVar9[lVar13];" (assignment_expression "lVar19 = plVar9[lVar13]" identifier = (subscript_expression "plVar9[lVar13]" identifier [ identifier ])) ;) (expression_statement "plVar14[lVar13] = lVar19 + -1;" (assignment_expression "plVar14[lVar13] = lVar19 + -1" (subscript_expression "plVar14[lVar13]" identifier [ identifier ]) = (binary_expression "lVar19 + -1" identifier + number_literal)) ;) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" identifier = (binary_expression "lVar13 + 1" identifier + number_literal)) ;) })) }) (else_clause "else {\n          lVar13 = 2;\n        }" else (compound_statement "{\n          lVar13 = 2;\n        }" { (expression_statement "lVar13 = 2;" (assignment_expression "lVar13 = 2" identifier = number_literal) ;) }))) (if_statement "if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;" if (parenthesized_expression "((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))" ( (binary_expression "(plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0)" (parenthesized_expression "(plVar9 == plVar14)" ( (binary_expression "plVar9 == plVar14" identifier == identifier) )) || (parenthesized_expression "(SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0)" ( (binary_expression "SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0" (call_expression "SBORROW8(lVar13,lVar18)" identifier (argument_list "(lVar13,lVar18)" ( identifier , identifier ))) == (binary_expression "lVar13 + (long)plVar12 < 0" (binary_expression "lVar13 + (long)plVar12" identifier + (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal)) ))) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;)) (if_statement "if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }" if (parenthesized_expression "((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4))" ( (binary_expression "(plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)" (parenthesized_expression "(plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2)" ( (binary_expression "plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2" (binary_expression "plVar14 + lVar13 < plVar9 + lVar13 + 2" (binary_expression "plVar14 + lVar13" identifier + identifier) < (binary_expression "plVar9 + lVar13 + 2" (binary_expression "plVar9 + lVar13" identifier + identifier) + number_literal)) && (binary_expression "plVar9 + lVar13 < plVar14 + lVar13 + 2" (binary_expression "plVar9 + lVar13" identifier + identifier) < (binary_expression "plVar14 + lVar13 + 2" (binary_expression "plVar14 + lVar13" identifier + identifier) + number_literal))) )) || (parenthesized_expression "(uVar8 - lVar13 < 4)" ( (binary_expression "uVar8 - lVar13 < 4" (binary_expression "uVar8 - lVar13" identifier - identifier) < number_literal) ))) )) (compound_statement "{\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }" { (do_statement "do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);" do (compound_statement "{\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          }" { (expression_statement "plVar14[lVar13] = plVar9[lVar13];" (assignment_expression "plVar14[lVar13] = plVar9[lVar13]" (subscript_expression "plVar14[lVar13]" identifier [ identifier ]) = (subscript_expression "plVar9[lVar13]" identifier [ identifier ])) ;) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" identifier = (binary_expression "lVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((long *)-lVar13 != plVar12)" ( (binary_expression "(long *)-lVar13 != plVar12" (cast_expression "(long *)-lVar13" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar13" - identifier)) != identifier) )) ;) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;) })) (expression_statement "uVar7 = lVar18 - lVar13;" (assignment_expression "uVar7 = lVar18 - lVar13" identifier = (binary_expression "lVar18 - lVar13" identifier - identifier)) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);" do (compound_statement "{\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        }" { (expression_statement "puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);" (assignment_expression "puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18)" identifier = (cast_expression "(undefined8 *)((long)(plVar9 + lVar13) + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(plVar9 + lVar13) + lVar18)" ( (binary_expression "(long)(plVar9 + lVar13) + lVar18" (cast_expression "(long)(plVar9 + lVar13)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar9 + lVar13)" ( (binary_expression "plVar9 + lVar13" identifier + identifier) ))) + identifier) )))) ;) (expression_statement "uVar4 = puVar1[1];" (assignment_expression "uVar4 = puVar1[1]" identifier = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (expression_statement "puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);" (assignment_expression "puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18)" identifier = (cast_expression "(undefined8 *)((long)(plVar14 + lVar13) + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(plVar14 + lVar13) + lVar18)" ( (binary_expression "(long)(plVar14 + lVar13) + lVar18" (cast_expression "(long)(plVar14 + lVar13)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar14 + lVar13)" ( (binary_expression "plVar14 + lVar13" identifier + identifier) ))) + identifier) )))) ;) (expression_statement "*puVar3 = *puVar1;" (assignment_expression "*puVar3 = *puVar1" (pointer_expression "*puVar3" * identifier) = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "puVar3[1] = uVar4;" (assignment_expression "puVar3[1] = uVar4" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "lVar18 = lVar18 + 0x10;" (assignment_expression "lVar18 = lVar18 + 0x10" identifier = (binary_expression "lVar18 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar18 != (uVar7 >> 1) * 0x10)" ( (binary_expression "lVar18 != (uVar7 >> 1) * 0x10" identifier != (binary_expression "(uVar7 >> 1) * 0x10" (parenthesized_expression "(uVar7 >> 1)" ( (binary_expression "uVar7 >> 1" identifier >> number_literal) )) * number_literal)) )) ;) (expression_statement "lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);" (assignment_expression "lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe)" identifier = (binary_expression "lVar13 + (uVar7 & 0xfffffffffffffffe)" identifier + (parenthesized_expression "(uVar7 & 0xfffffffffffffffe)" ( (binary_expression "uVar7 & 0xfffffffffffffffe" identifier & number_literal) )))) ;) (if_statement "if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;" if (parenthesized_expression "(uVar7 == (uVar7 & 0xfffffffffffffffe))" ( (binary_expression "uVar7 == (uVar7 & 0xfffffffffffffffe)" identifier == (parenthesized_expression "(uVar7 & 0xfffffffffffffffe)" ( (binary_expression "uVar7 & 0xfffffffffffffffe" identifier & number_literal) ))) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;)) }))) (expression_statement "plVar14[lVar13] = plVar9[lVar13];" (assignment_expression "plVar14[lVar13] = plVar9[lVar13]" (subscript_expression "plVar14[lVar13]" identifier [ identifier ]) = (subscript_expression "plVar9[lVar13]" identifier [ identifier ])) ;) (labeled_statement "LAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;" statement_identifier : (if_statement "if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;" if (parenthesized_expression "((plVar14[uVar8] & plVar20[uVar8]) == 0)" ( (binary_expression "(plVar14[uVar8] & plVar20[uVar8]) == 0" (parenthesized_expression "(plVar14[uVar8] & plVar20[uVar8])" ( (binary_expression "plVar14[uVar8] & plVar20[uVar8]" (subscript_expression "plVar14[uVar8]" identifier [ identifier ]) & (subscript_expression "plVar20[uVar8]" identifier [ identifier ])) )) == number_literal) )) (goto_statement "goto code_r0x0011d43b;" goto statement_identifier ;))) (expression_statement "lVar18 = uVar8 + 1;" (assignment_expression "lVar18 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (if_statement "if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }" if (parenthesized_expression "(lVar18 < *local_50)" ( (binary_expression "lVar18 < *local_50" identifier < (pointer_expression "*local_50" * identifier)) )) (compound_statement "{\n        puVar11 = *(ulong **)(local_50 + 2);\n      }" { (expression_statement "puVar11 = *(ulong **)(local_50 + 2);" (assignment_expression "puVar11 = *(ulong **)(local_50 + 2)" identifier = (pointer_expression "*(ulong **)(local_50 + 2)" * (cast_expression "(ulong **)(local_50 + 2)" ( (type_descriptor "ulong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50 + 2)" ( (binary_expression "local_50 + 2" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }" else (compound_statement "{\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }" { (expression_statement "*(undefined8 *)(puVar17 + -8) = 0x11d8b7;" (assignment_expression "*(undefined8 *)(puVar17 + -8) = 0x11d8b7" (pointer_expression "*(undefined8 *)(puVar17 + -8)" * (cast_expression "(undefined8 *)(puVar17 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_58 = plVar14;" (assignment_expression "local_58 = plVar14" identifier = identifier) ;) (expression_statement "puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);" (assignment_expression "puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2)" identifier = (cast_expression "(ulong *)__gmpz_realloc(local_50,uVar8 + 2)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmpz_realloc(local_50,uVar8 + 2)" identifier (argument_list "(local_50,uVar8 + 2)" ( identifier , (binary_expression "uVar8 + 2" identifier + number_literal) ))))) ;) (expression_statement "plVar14 = local_58;" (assignment_expression "plVar14 = local_58" identifier = identifier) ;) }))) (expression_statement "*(undefined8 *)(puVar17 + -8) = 0x11d6ca;" (assignment_expression "*(undefined8 *)(puVar17 + -8) = 0x11d6ca" (pointer_expression "*(undefined8 *)(puVar17 + -8)" * (cast_expression "(undefined8 *)(puVar17 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_and_n(puVar11,plVar20,plVar14,lVar18);" (call_expression "__gmpn_and_n(puVar11,plVar20,plVar14,lVar18)" identifier (argument_list "(puVar11,plVar20,plVar14,lVar18)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar2 = puVar11 + lVar18;" (assignment_expression "puVar2 = puVar11 + lVar18" identifier = (binary_expression "puVar11 + lVar18" identifier + identifier)) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (do_statement "do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);" do (compound_statement "{\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      }" { (expression_statement "uVar8 = *puVar11;" (assignment_expression "uVar8 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "*puVar11 = *puVar11 + 1;" (assignment_expression "*puVar11 = *puVar11 + 1" (pointer_expression "*puVar11" * identifier) = (binary_expression "*puVar11 + 1" (pointer_expression "*puVar11" * identifier) + number_literal)) ;) (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(0xfffffffffffffffe < uVar8)" ( (binary_expression "0xfffffffffffffffe < uVar8" number_literal < identifier) )) ;) (expression_statement "iVar6 = -((int)lVar18 + (int)*puVar2);" (assignment_expression "iVar6 = -((int)lVar18 + (int)*puVar2)" identifier = (unary_expression "-((int)lVar18 + (int)*puVar2)" - (parenthesized_expression "((int)lVar18 + (int)*puVar2)" ( (binary_expression "(int)lVar18 + (int)*puVar2" (cast_expression "(int)lVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)*puVar2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*puVar2" * identifier))) )))) ;) (goto_statement "goto LAB_0011d44c;" goto statement_identifier ;) })) }) (else_clause "else {\n    plVar14 = plVar20;\n    plVar24 = plVar9;\n    plVar21 = plVar25;\n    plVar26 = plVar12;\n    if (-1 < (long)plVar12) {\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }\n  }" else (compound_statement "{\n    plVar14 = plVar20;\n    plVar24 = plVar9;\n    plVar21 = plVar25;\n    plVar26 = plVar12;\n    if (-1 < (long)plVar12) {\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }\n  }" { (expression_statement "plVar14 = plVar20;" (assignment_expression "plVar14 = plVar20" identifier = identifier) ;) (expression_statement "plVar24 = plVar9;" (assignment_expression "plVar24 = plVar9" identifier = identifier) ;) (expression_statement "plVar21 = plVar25;" (assignment_expression "plVar21 = plVar25" identifier = identifier) ;) (expression_statement "plVar26 = plVar12;" (assignment_expression "plVar26 = plVar12" identifier = identifier) ;) (if_statement "if (-1 < (long)plVar12) {\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }" if (parenthesized_expression "(-1 < (long)plVar12)" ( (binary_expression "-1 < (long)plVar12" number_literal < (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }" { (if_statement "if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }" if (parenthesized_expression "((long)plVar20 < (long)plVar12)" ( (binary_expression "(long)plVar20 < (long)plVar12" (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }" { (if_statement "if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }" if (parenthesized_expression "(*param_1 < iVar22)" ( (binary_expression "*param_1 < iVar22" (pointer_expression "*param_1" * identifier) < identifier) )) (compound_statement "{\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }" { (expression_statement "local_60 = CONCAT44(local_60._4_4_,iVar22);" (assignment_expression "local_60 = CONCAT44(local_60._4_4_,iVar22)" identifier = (call_expression "CONCAT44(local_60._4_4_,iVar22)" identifier (argument_list "(local_60._4_4_,iVar22)" ( (field_expression "local_60._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_70 = plVar20;" (assignment_expression "local_70 = plVar20" identifier = identifier) ;) (expression_statement "local_68 = param_2;" (assignment_expression "local_68 = param_2" identifier = identifier) ;) (expression_statement "local_58 = plVar12;" (assignment_expression "local_58 = plVar12" identifier = identifier) ;) (expression_statement "plVar10 = (long *)__gmpz_realloc(param_1,plVar12);" (assignment_expression "plVar10 = (long *)__gmpz_realloc(param_1,plVar12)" identifier = (cast_expression "(long *)__gmpz_realloc(param_1,plVar12)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "__gmpz_realloc(param_1,plVar12)" identifier (argument_list "(param_1,plVar12)" ( identifier , identifier ))))) ;) (expression_statement "plVar25 = *(long **)(local_68 + 8);" (assignment_expression "plVar25 = *(long **)(local_68 + 8)" identifier = (pointer_expression "*(long **)(local_68 + 8)" * (cast_expression "(long **)(local_68 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_68 + 8)" ( (binary_expression "local_68 + 8" identifier + number_literal) ))))) ;) (expression_statement "plVar12 = local_58;" (assignment_expression "plVar12 = local_58" identifier = identifier) ;) (expression_statement "plVar20 = local_70;" (assignment_expression "plVar20 = local_70" identifier = identifier) ;) (expression_statement "iVar22 = (int)local_60;" (assignment_expression "iVar22 = (int)local_60" identifier = (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "iVar6 = iVar22;" (assignment_expression "iVar6 = iVar22" identifier = identifier) ;) (if_statement "if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }" if (parenthesized_expression "(plVar10 != plVar9)" ( (binary_expression "plVar10 != plVar9" identifier != identifier) )) (compound_statement "{\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }" { (expression_statement "local_60 = CONCAT44(local_60._4_4_,iVar22);" (assignment_expression "local_60 = CONCAT44(local_60._4_4_,iVar22)" identifier = (call_expression "CONCAT44(local_60._4_4_,iVar22)" identifier (argument_list "(local_60._4_4_,iVar22)" ( (field_expression "local_60._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_58 = plVar20;" (assignment_expression "local_58 = plVar20" identifier = identifier) ;) (expression_statement "__gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;" (call_expression "__gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)" identifier (argument_list "(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)" ( (binary_expression "plVar10 + (long)plVar20" identifier + (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , (binary_expression "plVar9 + (long)plVar20" identifier + (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , (binary_expression "(long)plVar12 - (long)plVar20" (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ;) (expression_statement "plVar20 = local_58;" (assignment_expression "plVar20 = local_58" identifier = identifier) ;) (expression_statement "iVar6 = (int)local_60;" (assignment_expression "iVar6 = (int)local_60" identifier = (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }" if (parenthesized_expression "(plVar20 != (long *)0x0)" ( (binary_expression "plVar20 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }" { (expression_statement "local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);" (assignment_expression "local_58 = (long *)CONCAT44(local_58._4_4_,iVar6)" identifier = (cast_expression "(long *)CONCAT44(local_58._4_4_,iVar6)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(local_58._4_4_,iVar6)" identifier (argument_list "(local_58._4_4_,iVar6)" ( (field_expression "local_58._4_4_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "__gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);" (call_expression "__gmpn_ior_n(plVar10,plVar25,plVar9,plVar20)" identifier (argument_list "(plVar10,plVar25,plVar9,plVar20)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar6 = (int)local_58;" (assignment_expression "iVar6 = (int)local_58" identifier = (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) }) (else_clause "else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }" else (compound_statement "{\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }" { (if_statement "if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }" if (parenthesized_expression "(*param_1 < iVar6)" ( (binary_expression "*param_1 < iVar6" (pointer_expression "*param_1" * identifier) < identifier) )) (compound_statement "{\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }" { (expression_statement "local_60 = CONCAT44(local_60._4_4_,iVar6);" (assignment_expression "local_60 = CONCAT44(local_60._4_4_,iVar6)" identifier = (call_expression "CONCAT44(local_60._4_4_,iVar6)" identifier (argument_list "(local_60._4_4_,iVar6)" ( (field_expression "local_60._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_70 = plVar12;" (assignment_expression "local_70 = plVar12" identifier = identifier) ;) (expression_statement "local_68 = param_3;" (assignment_expression "local_68 = param_3" identifier = identifier) ;) (expression_statement "local_58 = plVar20;" (assignment_expression "local_58 = plVar20" identifier = identifier) ;) (expression_statement "plVar10 = (long *)__gmpz_realloc(param_1,plVar20);" (assignment_expression "plVar10 = (long *)__gmpz_realloc(param_1,plVar20)" identifier = (cast_expression "(long *)__gmpz_realloc(param_1,plVar20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "__gmpz_realloc(param_1,plVar20)" identifier (argument_list "(param_1,plVar20)" ( identifier , identifier ))))) ;) (expression_statement "plVar9 = *(long **)(local_68 + 8);" (assignment_expression "plVar9 = *(long **)(local_68 + 8)" identifier = (pointer_expression "*(long **)(local_68 + 8)" * (cast_expression "(long **)(local_68 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_68 + 8)" ( (binary_expression "local_68 + 8" identifier + number_literal) ))))) ;) (expression_statement "plVar12 = local_70;" (assignment_expression "plVar12 = local_70" identifier = identifier) ;) (expression_statement "plVar20 = local_58;" (assignment_expression "plVar20 = local_58" identifier = identifier) ;) (expression_statement "iVar6 = (int)local_60;" (assignment_expression "iVar6 = (int)local_60" identifier = (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }" if (parenthesized_expression "(plVar10 != plVar25)" ( (binary_expression "plVar10 != plVar25" identifier != identifier) )) (compound_statement "{\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }" { (expression_statement "local_60 = CONCAT44(local_60._4_4_,iVar6);" (assignment_expression "local_60 = CONCAT44(local_60._4_4_,iVar6)" identifier = (call_expression "CONCAT44(local_60._4_4_,iVar6)" identifier (argument_list "(local_60._4_4_,iVar6)" ( (field_expression "local_60._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_58 = plVar12;" (assignment_expression "local_58 = plVar12" identifier = identifier) ;) (expression_statement "__gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );" (call_expression "__gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      )" identifier (argument_list "(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      )" ( (binary_expression "plVar10 + (long)plVar12" identifier + (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , (binary_expression "plVar25 + (long)plVar12" identifier + (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , (binary_expression "(long)plVar20 - (long)plVar12" (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ;) (expression_statement "plVar12 = local_58;" (assignment_expression "plVar12 = local_58" identifier = identifier) ;) (expression_statement "iVar6 = (int)local_60;" (assignment_expression "iVar6 = (int)local_60" identifier = (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }" if (parenthesized_expression "(plVar12 != (long *)0x0)" ( (binary_expression "plVar12 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }" { (expression_statement "local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);" (assignment_expression "local_58 = (long *)CONCAT44(local_58._4_4_,iVar6)" identifier = (cast_expression "(long *)CONCAT44(local_58._4_4_,iVar6)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(local_58._4_4_,iVar6)" identifier (argument_list "(local_58._4_4_,iVar6)" ( (field_expression "local_58._4_4_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "__gmpn_ior_n(plVar10,plVar25,plVar9);" (call_expression "__gmpn_ior_n(plVar10,plVar25,plVar9)" identifier (argument_list "(plVar10,plVar25,plVar9)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar6 = (int)local_58;" (assignment_expression "iVar6 = (int)local_58" identifier = (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) }))) (expression_statement "local_50[1] = iVar6;" (assignment_expression "local_50[1] = iVar6" (subscript_expression "local_50[1]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_0011cf61;" goto statement_identifier ;) })) }))) (expression_statement "plVar25 = (long *)((long)plVar26 * -8);" (assignment_expression "plVar25 = (long *)((long)plVar26 * -8)" identifier = (cast_expression "(long *)((long)plVar26 * -8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar26 * -8)" ( (binary_expression "(long)plVar26 * -8" (cast_expression "(long)plVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) )))) ;) (if_statement "if (plVar25 < (long *)0x7f01) {\n    lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0);\n    puVar15 = auStack_78 + lVar18;\n    plVar9 = (long *)((long)&local_70 + lVar18);\n    uVar8 = -(long)plVar26;\n  }\n  else {\n    local_68 = param_2;\n    local_60 = -(long)plVar26;\n    local_58 = plVar25;\n    plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);\n    plVar25 = local_58;\n    uVar8 = local_60;\n    param_2 = local_68;\n  }" if (parenthesized_expression "(plVar25 < (long *)0x7f01)" ( (binary_expression "plVar25 < (long *)0x7f01" identifier < (cast_expression "(long *)0x7f01" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0);\n    puVar15 = auStack_78 + lVar18;\n    plVar9 = (long *)((long)&local_70 + lVar18);\n    uVar8 = -(long)plVar26;\n  }" { (expression_statement "lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0);" (assignment_expression "lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0)" identifier = (unary_expression "-((long)plVar25 + 0x17U & 0xfffffffffffffff0)" - (parenthesized_expression "((long)plVar25 + 0x17U & 0xfffffffffffffff0)" ( (binary_expression "(long)plVar25 + 0x17U & 0xfffffffffffffff0" (binary_expression "(long)plVar25 + 0x17U" (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) & number_literal) )))) ;) (expression_statement "puVar15 = auStack_78 + lVar18;" (assignment_expression "puVar15 = auStack_78 + lVar18" identifier = (binary_expression "auStack_78 + lVar18" identifier + identifier)) ;) (expression_statement "plVar9 = (long *)((long)&local_70 + lVar18);" (assignment_expression "plVar9 = (long *)((long)&local_70 + lVar18)" identifier = (cast_expression "(long *)((long)&local_70 + lVar18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_70 + lVar18)" ( (binary_expression "(long)&local_70 + lVar18" (cast_expression "(long)&local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_70" & identifier)) + identifier) )))) ;) (expression_statement "uVar8 = -(long)plVar26;" (assignment_expression "uVar8 = -(long)plVar26" identifier = (unary_expression "-(long)plVar26" - (cast_expression "(long)plVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) }) (else_clause "else {\n    local_68 = param_2;\n    local_60 = -(long)plVar26;\n    local_58 = plVar25;\n    plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);\n    plVar25 = local_58;\n    uVar8 = local_60;\n    param_2 = local_68;\n  }" else (compound_statement "{\n    local_68 = param_2;\n    local_60 = -(long)plVar26;\n    local_58 = plVar25;\n    plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);\n    plVar25 = local_58;\n    uVar8 = local_60;\n    param_2 = local_68;\n  }" { (expression_statement "local_68 = param_2;" (assignment_expression "local_68 = param_2" identifier = identifier) ;) (expression_statement "local_60 = -(long)plVar26;" (assignment_expression "local_60 = -(long)plVar26" identifier = (unary_expression "-(long)plVar26" - (cast_expression "(long)plVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "local_58 = plVar25;" (assignment_expression "local_58 = plVar25" identifier = identifier) ;) (expression_statement "plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);" (assignment_expression "plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25)" identifier = (cast_expression "(long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "__gmp_tmp_reentrant_alloc(&local_48,plVar25)" identifier (argument_list "(&local_48,plVar25)" ( (pointer_expression "&local_48" & identifier) , identifier ))))) ;) (expression_statement "plVar25 = local_58;" (assignment_expression "plVar25 = local_58" identifier = identifier) ;) (expression_statement "uVar8 = local_60;" (assignment_expression "uVar8 = local_60" identifier = identifier) ;) (expression_statement "param_2 = local_68;" (assignment_expression "param_2 = local_68" identifier = identifier) ;) }))) (expression_statement "piVar5 = local_50;" (assignment_expression "piVar5 = local_50" identifier = identifier) ;) (expression_statement "lVar18 = *plVar24;" (assignment_expression "lVar18 = *plVar24" identifier = (pointer_expression "*plVar24" * identifier)) ;) (expression_statement "*plVar9 = lVar18 + -1;" (assignment_expression "*plVar9 = lVar18 + -1" (pointer_expression "*plVar9" * identifier) = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (if_statement "if (lVar18 == 0) {\n    if (plVar26 != (long *)0xffffffffffffffff) {\n      lVar18 = plVar24[1];\n      plVar9[1] = lVar18 + -1;\n      if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }\n    }\n  }\n  else if ((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)) {\n    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }\n  }" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (compound_statement "{\n    if (plVar26 != (long *)0xffffffffffffffff) {\n      lVar18 = plVar24[1];\n      plVar9[1] = lVar18 + -1;\n      if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }\n    }\n  }" { (if_statement "if (plVar26 != (long *)0xffffffffffffffff) {\n      lVar18 = plVar24[1];\n      plVar9[1] = lVar18 + -1;\n      if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }\n    }" if (parenthesized_expression "(plVar26 != (long *)0xffffffffffffffff)" ( (binary_expression "plVar26 != (long *)0xffffffffffffffff" identifier != (cast_expression "(long *)0xffffffffffffffff" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      lVar18 = plVar24[1];\n      plVar9[1] = lVar18 + -1;\n      if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }\n    }" { (expression_statement "lVar18 = plVar24[1];" (assignment_expression "lVar18 = plVar24[1]" identifier = (subscript_expression "plVar24[1]" identifier [ number_literal ])) ;) (expression_statement "plVar9[1] = lVar18 + -1;" (assignment_expression "plVar9[1] = lVar18 + -1" (subscript_expression "plVar9[1]" identifier [ number_literal ]) = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (if_statement "if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }" { (if_statement "if (-3 < (long)plVar26) goto LAB_0011ced0;" if (parenthesized_expression "(-3 < (long)plVar26)" ( (binary_expression "-3 < (long)plVar26" number_literal < (cast_expression "(long)plVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_0011ced0;" goto statement_identifier ;)) (expression_statement "lVar18 = plVar24[2];" (assignment_expression "lVar18 = plVar24[2]" identifier = (subscript_expression "plVar24[2]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = 3;" (assignment_expression "uVar7 = 3" identifier = number_literal) ;) (expression_statement "plVar9[2] = lVar18 + -1;" (assignment_expression "plVar9[2] = lVar18 + -1" (subscript_expression "plVar9[2]" identifier [ number_literal ]) = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (while_statement "while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }" while (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (compound_statement "{\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }" { (if_statement "if (uVar8 == uVar7) goto LAB_0011ced0;" if (parenthesized_expression "(uVar8 == uVar7)" ( (binary_expression "uVar8 == uVar7" identifier == identifier) )) (goto_statement "goto LAB_0011ced0;" goto statement_identifier ;)) (expression_statement "lVar18 = plVar24[uVar7];" (assignment_expression "lVar18 = plVar24[uVar7]" identifier = (subscript_expression "plVar24[uVar7]" identifier [ identifier ])) ;) (expression_statement "plVar9[uVar7] = lVar18 + -1;" (assignment_expression "plVar9[uVar7] = lVar18 + -1" (subscript_expression "plVar9[uVar7]" identifier [ identifier ]) = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) })) }) (else_clause "else {\n        uVar7 = 2;\n      }" else (compound_statement "{\n        uVar7 = 2;\n      }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) }))) (if_statement "if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }" if (parenthesized_expression "((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8))" ( (binary_expression "(plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)" (parenthesized_expression "(plVar24 != plVar9)" ( (binary_expression "plVar24 != plVar9" identifier != identifier) )) && (parenthesized_expression "((long)uVar7 < (long)uVar8)" ( (binary_expression "(long)uVar7 < (long)uVar8" (cast_expression "(long)uVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)uVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) )) (compound_statement "{\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }" { (expression_statement "local_58 = plVar24 + uVar7;" (assignment_expression "local_58 = plVar24 + uVar7" identifier = (binary_expression "plVar24 + uVar7" identifier + identifier)) ;) (expression_statement "local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);" (assignment_expression "local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58)" identifier = (call_expression "CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58)" identifier (argument_list "(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58)" ( (field_expression "local_60._1_7_" identifier . field_identifier) , (binary_expression "plVar9 + uVar7 + 2 <= local_58" (binary_expression "plVar9 + uVar7 + 2" (binary_expression "plVar9 + uVar7" identifier + identifier) + number_literal) <= identifier) )))) ;) (if_statement "if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }" if (parenthesized_expression "((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7))" ( (binary_expression "(plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)" (parenthesized_expression "(plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7)" ( (binary_expression "plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7" (binary_expression "plVar9 + uVar7 + 2 <= local_58" (binary_expression "plVar9 + uVar7 + 2" (binary_expression "plVar9 + uVar7" identifier + identifier) + number_literal) <= identifier) || (binary_expression "plVar24 + uVar7 + 2 <= plVar9 + uVar7" (binary_expression "plVar24 + uVar7 + 2" (binary_expression "plVar24 + uVar7" identifier + identifier) + number_literal) <= (binary_expression "plVar9 + uVar7" identifier + identifier))) )) && (parenthesized_expression "(3 < ~(ulong)plVar26 - uVar7)" ( (binary_expression "3 < ~(ulong)plVar26 - uVar7" number_literal < (binary_expression "~(ulong)plVar26 - uVar7" (unary_expression "~(ulong)plVar26" ~ (cast_expression "(ulong)plVar26" ( (type_descriptor "ulong" type_identifier) ) identifier)) - identifier)) ))) )) (compound_statement "{\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }" { (expression_statement "uVar27 = uVar8 - uVar7;" (assignment_expression "uVar27 = uVar8 - uVar7" identifier = (binary_expression "uVar8 - uVar7" identifier - identifier)) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);" do (compound_statement "{\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          }" { (expression_statement "uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];" (assignment_expression "uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1]" identifier = (subscript_expression "((undefined8 *)((long)local_58 + lVar18))[1]" (parenthesized_expression "((undefined8 *)((long)local_58 + lVar18))" ( (cast_expression "(undefined8 *)((long)local_58 + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + lVar18)" ( (binary_expression "(long)local_58 + lVar18" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);" (assignment_expression "puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18)" identifier = (cast_expression "(undefined8 *)((long)(plVar9 + uVar7) + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(plVar9 + uVar7) + lVar18)" ( (binary_expression "(long)(plVar9 + uVar7) + lVar18" (cast_expression "(long)(plVar9 + uVar7)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar9 + uVar7)" ( (binary_expression "plVar9 + uVar7" identifier + identifier) ))) + identifier) )))) ;) (expression_statement "*puVar1 = *(undefined8 *)((long)local_58 + lVar18);" (assignment_expression "*puVar1 = *(undefined8 *)((long)local_58 + lVar18)" (pointer_expression "*puVar1" * identifier) = (pointer_expression "*(undefined8 *)((long)local_58 + lVar18)" * (cast_expression "(undefined8 *)((long)local_58 + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + lVar18)" ( (binary_expression "(long)local_58 + lVar18" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ;) (expression_statement "puVar1[1] = uVar4;" (assignment_expression "puVar1[1] = uVar4" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "lVar18 = lVar18 + 0x10;" (assignment_expression "lVar18 = lVar18 + 0x10" identifier = (binary_expression "lVar18 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "((uVar27 >> 1) * 0x10 != lVar18)" ( (binary_expression "(uVar27 >> 1) * 0x10 != lVar18" (binary_expression "(uVar27 >> 1) * 0x10" (parenthesized_expression "(uVar27 >> 1)" ( (binary_expression "uVar27 >> 1" identifier >> number_literal) )) * number_literal) != identifier) )) ;) (expression_statement "lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);" (assignment_expression "lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe)" identifier = (binary_expression "uVar7 + (uVar27 & 0xfffffffffffffffe)" identifier + (parenthesized_expression "(uVar27 & 0xfffffffffffffffe)" ( (binary_expression "uVar27 & 0xfffffffffffffffe" identifier & number_literal) )))) ;) (if_statement "if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;" if (parenthesized_expression "((uVar27 & 0xfffffffffffffffe) != uVar27)" ( (binary_expression "(uVar27 & 0xfffffffffffffffe) != uVar27" (parenthesized_expression "(uVar27 & 0xfffffffffffffffe)" ( (binary_expression "uVar27 & 0xfffffffffffffffe" identifier & number_literal) )) != identifier) )) (goto_statement "goto LAB_0011d020;" goto statement_identifier ;)) }) (else_clause "else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }" else (compound_statement "{\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }" { (do_statement "do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);" do (compound_statement "{\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          }" { (expression_statement "plVar9[uVar7] = plVar24[uVar7];" (assignment_expression "plVar9[uVar7] = plVar24[uVar7]" (subscript_expression "plVar9[uVar7]" identifier [ identifier ]) = (subscript_expression "plVar24[uVar7]" identifier [ identifier ])) ;) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 != uVar7)" ( (binary_expression "uVar8 != uVar7" identifier != identifier) )) ;) }))) })) })) }) (else_clause "else if ((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)) {\n    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }\n  }" else (if_statement "if ((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)) {\n    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }\n  }" if (parenthesized_expression "((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff))" ( (binary_expression "(plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)" (parenthesized_expression "(plVar24 != plVar9)" ( (binary_expression "plVar24 != plVar9" identifier != identifier) )) && (parenthesized_expression "(plVar26 != (long *)0xffffffffffffffff)" ( (binary_expression "plVar26 != (long *)0xffffffffffffffff" identifier != (cast_expression "(long *)0xffffffffffffffff" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }\n  }" { (if_statement "if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }" if (parenthesized_expression "((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26))" ( (binary_expression "(plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)" (parenthesized_expression "(plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3)" ( (binary_expression "plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3" (binary_expression "plVar24 + 1 < plVar9 + 3" (binary_expression "plVar24 + 1" identifier + number_literal) < (binary_expression "plVar9 + 3" identifier + number_literal)) && (binary_expression "plVar9 + 1 < plVar24 + 3" (binary_expression "plVar9 + 1" identifier + number_literal) < (binary_expression "plVar24 + 3" identifier + number_literal))) )) || (parenthesized_expression "(-6 < (long)plVar26)" ( (binary_expression "-6 < (long)plVar26" number_literal < (cast_expression "(long)plVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) )) (compound_statement "{\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }" { (expression_statement "lVar18 = 1;" (assignment_expression "lVar18 = 1" identifier = number_literal) ;) (do_statement "do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);" do (compound_statement "{\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      }" { (expression_statement "plVar9[lVar18] = plVar24[lVar18];" (assignment_expression "plVar9[lVar18] = plVar24[lVar18]" (subscript_expression "plVar9[lVar18]" identifier [ identifier ]) = (subscript_expression "plVar24[lVar18]" identifier [ identifier ])) ;) (expression_statement "lVar18 = lVar18 + 1;" (assignment_expression "lVar18 = lVar18 + 1" identifier = (binary_expression "lVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar18 < (long)uVar8)" ( (binary_expression "lVar18 < (long)uVar8" identifier < (cast_expression "(long)uVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) ;) }) (else_clause "else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }" else (compound_statement "{\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }" { (expression_statement "uVar7 = ~(ulong)plVar26;" (assignment_expression "uVar7 = ~(ulong)plVar26" identifier = (unary_expression "~(ulong)plVar26" ~ (cast_expression "(ulong)plVar26" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (if_statement "if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }" if (parenthesized_expression "(-2 < (long)plVar26)" ( (binary_expression "-2 < (long)plVar26" number_literal < (cast_expression "(long)plVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n        uVar7 = 1;\n      }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) })) (expression_statement "lVar18 = 8;" (assignment_expression "lVar18 = 8" identifier = number_literal) ;) (do_statement "do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);" do (compound_statement "{\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      }" { (expression_statement "uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];" (assignment_expression "uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1]" identifier = (subscript_expression "((undefined8 *)((long)plVar24 + lVar18))[1]" (parenthesized_expression "((undefined8 *)((long)plVar24 + lVar18))" ( (cast_expression "(undefined8 *)((long)plVar24 + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar24 + lVar18)" ( (binary_expression "(long)plVar24 + lVar18" (cast_expression "(long)plVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);" (assignment_expression "*(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18)" (pointer_expression "*(undefined8 *)((long)plVar9 + lVar18)" * (cast_expression "(undefined8 *)((long)plVar9 + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar9 + lVar18)" ( (binary_expression "(long)plVar9 + lVar18" (cast_expression "(long)plVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (pointer_expression "*(undefined8 *)((long)plVar24 + lVar18)" * (cast_expression "(undefined8 *)((long)plVar24 + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar24 + lVar18)" ( (binary_expression "(long)plVar24 + lVar18" (cast_expression "(long)plVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ;) (expression_statement "((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;" (assignment_expression "((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4" (subscript_expression "((undefined8 *)((long)plVar9 + lVar18))[1]" (parenthesized_expression "((undefined8 *)((long)plVar9 + lVar18))" ( (cast_expression "(undefined8 *)((long)plVar9 + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar9 + lVar18)" ( (binary_expression "(long)plVar9 + lVar18" (cast_expression "(long)plVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = identifier) ;) (expression_statement "lVar18 = lVar18 + 0x10;" (assignment_expression "lVar18 = lVar18 + 0x10" identifier = (binary_expression "lVar18 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar18 != (uVar7 >> 1) * 0x10 + 8)" ( (binary_expression "lVar18 != (uVar7 >> 1) * 0x10 + 8" identifier != (binary_expression "(uVar7 >> 1) * 0x10 + 8" (binary_expression "(uVar7 >> 1) * 0x10" (parenthesized_expression "(uVar7 >> 1)" ( (binary_expression "uVar7 >> 1" identifier >> number_literal) )) * number_literal) + number_literal)) )) ;) (expression_statement "lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;" (assignment_expression "lVar18 = (uVar7 & 0xfffffffffffffffe) + 1" identifier = (binary_expression "(uVar7 & 0xfffffffffffffffe) + 1" (parenthesized_expression "(uVar7 & 0xfffffffffffffffe)" ( (binary_expression "uVar7 & 0xfffffffffffffffe" identifier & number_literal) )) + number_literal)) ;) (if_statement "if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }" if (parenthesized_expression "((uVar7 & 0xfffffffffffffffe) != uVar7)" ( (binary_expression "(uVar7 & 0xfffffffffffffffe) != uVar7" (parenthesized_expression "(uVar7 & 0xfffffffffffffffe)" ( (binary_expression "uVar7 & 0xfffffffffffffffe" identifier & number_literal) )) != identifier) )) (compound_statement "{\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }" { (labeled_statement "LAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];" statement_identifier : (expression_statement "plVar9[lVar18] = plVar24[lVar18];" (assignment_expression "plVar9[lVar18] = plVar24[lVar18]" (subscript_expression "plVar9[lVar18]" identifier [ identifier ]) = (subscript_expression "plVar24[lVar18]" identifier [ identifier ])) ;)) })) }))) })))) (labeled_statement "LAB_0011ced0:\n  plVar25 = (long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0));" statement_identifier : (expression_statement "plVar25 = (long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0));" (assignment_expression "plVar25 = (long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0))" identifier = (cast_expression "(long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0))" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0))" ( (binary_expression "uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0)" identifier - (parenthesized_expression "(*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0)" ( (binary_expression "*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0" (pointer_expression "*(long *)((long)(plVar9 + -1) + (long)plVar25)" * (cast_expression "(long *)((long)(plVar9 + -1) + (long)plVar25)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(plVar9 + -1) + (long)plVar25)" ( (binary_expression "(long)(plVar9 + -1) + (long)plVar25" (cast_expression "(long)(plVar9 + -1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar9 + -1)" ( (binary_expression "plVar9 + -1" identifier + number_literal) ))) + (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) == number_literal) ))) )))) ;)) (if_statement "if ((long)*local_50 < (long)uVar8) {\n    local_60 = param_2;\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d187;\n    __gmpz_realloc(piVar5,uVar8);\n    plVar10 = *(long **)(piVar5 + 2);\n    plVar21 = *(long **)(local_60 + 8);\n    plVar9 = local_58;\n  }" if (parenthesized_expression "((long)*local_50 < (long)uVar8)" ( (binary_expression "(long)*local_50 < (long)uVar8" (cast_expression "(long)*local_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "*local_50" * identifier)) < (cast_expression "(long)uVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n    local_60 = param_2;\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d187;\n    __gmpz_realloc(piVar5,uVar8);\n    plVar10 = *(long **)(piVar5 + 2);\n    plVar21 = *(long **)(local_60 + 8);\n    plVar9 = local_58;\n  }" { (expression_statement "local_60 = param_2;" (assignment_expression "local_60 = param_2" identifier = identifier) ;) (expression_statement "local_58 = plVar9;" (assignment_expression "local_58 = plVar9" identifier = identifier) ;) (expression_statement "*(undefined8 *)(puVar15 + -8) = 0x11d187;" (assignment_expression "*(undefined8 *)(puVar15 + -8) = 0x11d187" (pointer_expression "*(undefined8 *)(puVar15 + -8)" * (cast_expression "(undefined8 *)(puVar15 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpz_realloc(piVar5,uVar8);" (call_expression "__gmpz_realloc(piVar5,uVar8)" identifier (argument_list "(piVar5,uVar8)" ( identifier , identifier ))) ;) (expression_statement "plVar10 = *(long **)(piVar5 + 2);" (assignment_expression "plVar10 = *(long **)(piVar5 + 2)" identifier = (pointer_expression "*(long **)(piVar5 + 2)" * (cast_expression "(long **)(piVar5 + 2)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar5 + 2)" ( (binary_expression "piVar5 + 2" identifier + number_literal) ))))) ;) (expression_statement "plVar21 = *(long **)(local_60 + 8);" (assignment_expression "plVar21 = *(long **)(local_60 + 8)" identifier = (pointer_expression "*(long **)(local_60 + 8)" * (cast_expression "(long **)(local_60 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_60 + 8)" ( (binary_expression "local_60 + 8" identifier + number_literal) ))))) ;) (expression_statement "plVar9 = local_58;" (assignment_expression "plVar9 = local_58" identifier = identifier) ;) })) (if_statement "if ((long)plVar14 < (long)plVar25) {\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d0ee;\n    __gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14);\n    plVar9 = local_58;\n    if (plVar14 != (long *)0x0) goto LAB_0011d0f7;\nLAB_0011d108:\n    *plVar10 = *plVar10 + 1;\n    if (*plVar10 == 0) {\n      if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }\n      plVar9 = plVar10 + 1;\n      *plVar9 = *plVar9 + 1;\n      if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }\n    }\n    uVar23 = -(uint)plVar25;\n  }\n  else {\n    plVar12 = (long *)((long)plVar25 + -1);\n    if (plVar12 != (long *)0xffffffffffffffff) {\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *plVar10 = 1;\n    uVar23 = 0xffffffff;\n  }" if (parenthesized_expression "((long)plVar14 < (long)plVar25)" ( (binary_expression "(long)plVar14 < (long)plVar25" (cast_expression "(long)plVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d0ee;\n    __gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14);\n    plVar9 = local_58;\n    if (plVar14 != (long *)0x0) goto LAB_0011d0f7;\nLAB_0011d108:\n    *plVar10 = *plVar10 + 1;\n    if (*plVar10 == 0) {\n      if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }\n      plVar9 = plVar10 + 1;\n      *plVar9 = *plVar9 + 1;\n      if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }\n    }\n    uVar23 = -(uint)plVar25;\n  }" { (expression_statement "local_58 = plVar9;" (assignment_expression "local_58 = plVar9" identifier = identifier) ;) (expression_statement "*(undefined8 *)(puVar15 + -8) = 0x11d0ee;" (assignment_expression "*(undefined8 *)(puVar15 + -8) = 0x11d0ee" (pointer_expression "*(undefined8 *)(puVar15 + -8)" * (cast_expression "(undefined8 *)(puVar15 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14);" (call_expression "__gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14)" identifier (argument_list "(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14)" ( (binary_expression "plVar10 + (long)plVar14" identifier + (cast_expression "(long)plVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , (binary_expression "plVar9 + (long)plVar14" identifier + (cast_expression "(long)plVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , (binary_expression "(long)plVar25 - (long)plVar14" (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)plVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ;) (expression_statement "plVar9 = local_58;" (assignment_expression "plVar9 = local_58" identifier = identifier) ;) (if_statement "if (plVar14 != (long *)0x0) goto LAB_0011d0f7;" if (parenthesized_expression "(plVar14 != (long *)0x0)" ( (binary_expression "plVar14 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011d0f7;" goto statement_identifier ;)) (labeled_statement "LAB_0011d108:\n    *plVar10 = *plVar10 + 1;" statement_identifier : (expression_statement "*plVar10 = *plVar10 + 1;" (assignment_expression "*plVar10 = *plVar10 + 1" (pointer_expression "*plVar10" * identifier) = (binary_expression "*plVar10 + 1" (pointer_expression "*plVar10" * identifier) + number_literal)) ;)) (if_statement "if (*plVar10 == 0) {\n      if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }\n      plVar9 = plVar10 + 1;\n      *plVar9 = *plVar9 + 1;\n      if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }\n    }" if (parenthesized_expression "(*plVar10 == 0)" ( (binary_expression "*plVar10 == 0" (pointer_expression "*plVar10" * identifier) == number_literal) )) (compound_statement "{\n      if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }\n      plVar9 = plVar10 + 1;\n      *plVar9 = *plVar9 + 1;\n      if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }\n    }" { (if_statement "if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }" if (parenthesized_expression "(plVar25 == (long *)0x1)" ( (binary_expression "plVar25 == (long *)0x1" identifier == (cast_expression "(long *)0x1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }" { (labeled_statement "LAB_0011d151:\n        plVar10[(long)plVar25] = 1;" statement_identifier : (expression_statement "plVar10[(long)plVar25] = 1;" (assignment_expression "plVar10[(long)plVar25] = 1" (subscript_expression "plVar10[(long)plVar25]" identifier [ (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = number_literal) ;)) (expression_statement "uVar23 = ~(uint)plVar25;" (assignment_expression "uVar23 = ~(uint)plVar25" identifier = (unary_expression "~(uint)plVar25" ~ (cast_expression "(uint)plVar25" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (goto_statement "goto LAB_0011cf4c;" goto statement_identifier ;) })) (expression_statement "plVar9 = plVar10 + 1;" (assignment_expression "plVar9 = plVar10 + 1" identifier = (binary_expression "plVar10 + 1" identifier + number_literal)) ;) (expression_statement "*plVar9 = *plVar9 + 1;" (assignment_expression "*plVar9 = *plVar9 + 1" (pointer_expression "*plVar9" * identifier) = (binary_expression "*plVar9 + 1" (pointer_expression "*plVar9" * identifier) + number_literal)) ;) (if_statement "if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }" if (parenthesized_expression "(*plVar9 == 0)" ( (binary_expression "*plVar9 == 0" (pointer_expression "*plVar9" * identifier) == number_literal) )) (compound_statement "{\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }" { (if_statement "if (plVar25 == (long *)0x2) goto LAB_0011d151;" if (parenthesized_expression "(plVar25 == (long *)0x2)" ( (binary_expression "plVar25 == (long *)0x2" identifier == (cast_expression "(long *)0x2" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011d151;" goto statement_identifier ;)) (expression_statement "plVar9 = plVar10 + 2;" (assignment_expression "plVar9 = plVar10 + 2" identifier = (binary_expression "plVar10 + 2" identifier + number_literal)) ;) (expression_statement "*plVar9 = *plVar9 + 1;" (assignment_expression "*plVar9 = *plVar9 + 1" (pointer_expression "*plVar9" * identifier) = (binary_expression "*plVar9 + 1" (pointer_expression "*plVar9" * identifier) + number_literal)) ;) (if_statement "if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }" if (parenthesized_expression "(*plVar9 == 0)" ( (binary_expression "*plVar9 == 0" (pointer_expression "*plVar9" * identifier) == number_literal) )) (compound_statement "{\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }" { (expression_statement "plVar9 = plVar10 + 3;" (assignment_expression "plVar9 = plVar10 + 3" identifier = (binary_expression "plVar10 + 3" identifier + number_literal)) ;) (do_statement "do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);" do (compound_statement "{\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          }" { (if_statement "if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;" if (parenthesized_expression "(plVar9 == plVar10 + (long)plVar25)" ( (binary_expression "plVar9 == plVar10 + (long)plVar25" identifier == (binary_expression "plVar10 + (long)plVar25" identifier + (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) )) (goto_statement "goto LAB_0011d151;" goto statement_identifier ;)) (expression_statement "lVar18 = *plVar9;" (assignment_expression "lVar18 = *plVar9" identifier = (pointer_expression "*plVar9" * identifier)) ;) (expression_statement "*plVar9 = lVar18 + 1;" (assignment_expression "*plVar9 = lVar18 + 1" (pointer_expression "*plVar9" * identifier) = (binary_expression "lVar18 + 1" identifier + number_literal)) ;) (expression_statement "plVar9 = plVar9 + 1;" (assignment_expression "plVar9 = plVar9 + 1" identifier = (binary_expression "plVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar18 + 1 == 0)" ( (binary_expression "lVar18 + 1 == 0" (binary_expression "lVar18 + 1" identifier + number_literal) == number_literal) )) ;) })) })) })) (expression_statement "uVar23 = -(uint)plVar25;" (assignment_expression "uVar23 = -(uint)plVar25" identifier = (unary_expression "-(uint)plVar25" - (cast_expression "(uint)plVar25" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) (else_clause "else {\n    plVar12 = (long *)((long)plVar25 + -1);\n    if (plVar12 != (long *)0xffffffffffffffff) {\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *plVar10 = 1;\n    uVar23 = 0xffffffff;\n  }" else (compound_statement "{\n    plVar12 = (long *)((long)plVar25 + -1);\n    if (plVar12 != (long *)0xffffffffffffffff) {\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *plVar10 = 1;\n    uVar23 = 0xffffffff;\n  }" { (expression_statement "plVar12 = (long *)((long)plVar25 + -1);" (assignment_expression "plVar12 = (long *)((long)plVar25 + -1)" identifier = (cast_expression "(long *)((long)plVar25 + -1)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar25 + -1)" ( (binary_expression "(long)plVar25 + -1" (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (if_statement "if (plVar12 != (long *)0xffffffffffffffff) {\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }" if (parenthesized_expression "(plVar12 != (long *)0xffffffffffffffff)" ( (binary_expression "plVar12 != (long *)0xffffffffffffffff" identifier != (cast_expression "(long *)0xffffffffffffffff" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }" { (expression_statement "uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];" (assignment_expression "uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12]" identifier = (binary_expression "plVar9[(long)plVar12] & ~plVar21[(long)plVar12]" (subscript_expression "plVar9[(long)plVar12]" identifier [ (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) & (unary_expression "~plVar21[(long)plVar12]" ~ (subscript_expression "plVar21[(long)plVar12]" identifier [ (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ])))) ;) (expression_statement "plVar14 = plVar25;" (assignment_expression "plVar14 = plVar25" identifier = identifier) ;) (while_statement "while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }" while (parenthesized_expression "(plVar25 = plVar14, uVar8 == 0)" ( (comma_expression "plVar25 = plVar14, uVar8 == 0" (assignment_expression "plVar25 = plVar14" identifier = identifier) , (binary_expression "uVar8 == 0" identifier == number_literal)) )) (compound_statement "{\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }" { (expression_statement "plVar25 = (long *)((long)plVar12 + -1);" (assignment_expression "plVar25 = (long *)((long)plVar12 + -1)" identifier = (cast_expression "(long *)((long)plVar12 + -1)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar12 + -1)" ( (binary_expression "(long)plVar12 + -1" (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (if_statement "if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;" if (parenthesized_expression "(plVar25 == (long *)0xffffffffffffffff)" ( (binary_expression "plVar25 == (long *)0xffffffffffffffff" identifier == (cast_expression "(long *)0xffffffffffffffff" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011cf3f;" goto statement_identifier ;)) (expression_statement "plVar14 = plVar12;" (assignment_expression "plVar14 = plVar12" identifier = identifier) ;) (expression_statement "plVar12 = plVar25;" (assignment_expression "plVar12 = plVar25" identifier = identifier) ;) (expression_statement "uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];" (assignment_expression "uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25]" identifier = (binary_expression "plVar9[(long)plVar25] & ~plVar21[(long)plVar25]" (subscript_expression "plVar9[(long)plVar25]" identifier [ (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) & (unary_expression "~plVar21[(long)plVar25]" ~ (subscript_expression "plVar21[(long)plVar25]" identifier [ (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ])))) ;) })) (labeled_statement "LAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;" statement_identifier : (expression_statement "*(undefined8 *)(puVar15 + -8) = 0x11d108;" (assignment_expression "*(undefined8 *)(puVar15 + -8) = 0x11d108" (pointer_expression "*(undefined8 *)(puVar15 + -8)" * (cast_expression "(undefined8 *)(puVar15 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "__gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);" (call_expression "__gmpn_andn_n(plVar10,plVar9,plVar21,plVar14)" identifier (argument_list "(plVar10,plVar9,plVar21,plVar14)" ( identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_0011d108;" goto statement_identifier ;) })) (labeled_statement "LAB_0011cf3f:\n    *plVar10 = 1;" statement_identifier : (expression_statement "*plVar10 = 1;" (assignment_expression "*plVar10 = 1" (pointer_expression "*plVar10" * identifier) = number_literal) ;)) (expression_statement "uVar23 = 0xffffffff;" (assignment_expression "uVar23 = 0xffffffff" identifier = number_literal) ;) }))) (labeled_statement "LAB_0011cf4c:\n  local_50[1] = uVar23;" statement_identifier : (expression_statement "local_50[1] = uVar23;" (assignment_expression "local_50[1] = uVar23" (subscript_expression "local_50[1]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "puVar16 = puVar15;" (assignment_expression "puVar16 = puVar15" identifier = identifier) ;) (goto_statement "goto joined_r0x0011d45a;" goto statement_identifier ;) (labeled_statement "code_r0x0011d43b:\n  uVar8 = uVar8 - 1;" statement_identifier : (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;)) (if_statement "if (uVar8 == 0xffffffffffffffff) goto code_r0x0011d445;" if (parenthesized_expression "(uVar8 == 0xffffffffffffffff)" ( (binary_expression "uVar8 == 0xffffffffffffffff" identifier == number_literal) )) (goto_statement "goto code_r0x0011d445;" goto statement_identifier ;)) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;) (labeled_statement "code_r0x0011d445:\n  *plVar10 = 1;" statement_identifier : (expression_statement "*plVar10 = 1;" (assignment_expression "*plVar10 = 1" (pointer_expression "*plVar10" * identifier) = number_literal) ;)) (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (labeled_statement "LAB_0011d44c:\n  local_50[1] = iVar6;" statement_identifier : (expression_statement "local_50[1] = iVar6;" (assignment_expression "local_50[1] = iVar6" (subscript_expression "local_50[1]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" identifier = identifier) ;) (labeled_statement "joined_r0x0011d45a:\n  if (local_48 != 0) {\n    *(undefined8 *)(puVar16 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free();\n  }" statement_identifier : (if_statement "if (local_48 != 0) {\n    *(undefined8 *)(puVar16 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free();\n  }" if (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) (compound_statement "{\n    *(undefined8 *)(puVar16 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free();\n  }" { (expression_statement "*(undefined8 *)(puVar16 + -8) = 0x11d465;" (assignment_expression "*(undefined8 *)(puVar16 + -8) = 0x11d465" (pointer_expression "*(undefined8 *)(puVar16 + -8)" * (cast_expression "(undefined8 *)(puVar16 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -8)" ( (binary_expression "puVar16 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" identifier (argument_list "()" ( ))) ;) }))) (labeled_statement "LAB_0011cf61:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) comment (expression_statement "*(undefined8 *)(puVar16 + -8) = 0x11d8c8;" (assignment_expression "*(undefined8 *)(puVar16 + -8) = 0x11d8c8" (pointer_expression "*(undefined8 *)(puVar16 + -8)" * (cast_expression "(undefined8 *)(puVar16 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -8)" ( (binary_expression "puVar16 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void __gmpz_ior(mpz_ptr res,mpz_srcptr op1,mpz_srcptr op2)\n\n{\n  undefined8 *puVar1;\n  ulong *puVar2;\n  undefined8 *puVar3;\n  mp_limb_t mVar4;\n  undefined8 uVar5;\n  tmp_reentrant_t *mark;\n  mpz_ptr m;\n  int iVar6;\n  mpz_srcptr p_Var7;\n  mp_limb_t *pmVar8;\n  mp_limb_t *pmVar9;\n  ulong *puVar10;\n  mp_limb_t *pmVar11;\n  long lVar12;\n  mpz_srcptr new_alloc;\n  mp_limb_t *pmVar13;\n  undefined1 *puVar14;\n  undefined1 *puVar15;\n  undefined1 *puVar16;\n  long lVar17;\n  size_t size;\n  long lVar18;\n  mp_limb_t *pmVar19;\n  mp_limb_t *pmVar20;\n  int iVar21;\n  uint uVar22;\n  mp_limb_t *pmVar23;\n  mp_limb_t *pmVar24;\n  mp_limb_t *pmVar25;\n  ulong uVar26;\n  ulong uVar27;\n  long in_FS_OFFSET;\n  undefined1 auStack_78 [8];\n  mp_limb_t *local_70;\n  mpz_srcptr local_68;\n  mpz_srcptr local_60;\n  mp_limb_t *local_58;\n  mpz_ptr local_50;\n  tmp_reentrant_t *__tmp_marker;\n  long local_40;\n  \n  puVar14 = auStack_78;\n  puVar16 = auStack_78;\n  puVar15 = auStack_78;\n  iVar6 = op1->_mp_size;\n  pmVar19 = (mp_limb_t *)(long)iVar6;\n  iVar21 = op2->_mp_size;\n  pmVar11 = (mp_limb_t *)(long)iVar21;\n  pmVar24 = op1->_mp_d;\n  pmVar8 = op2->_mp_d;\n  pmVar9 = res->_mp_d;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  __tmp_marker = (tmp_reentrant_t *)0x0;\n  local_50 = res;\n  if ((long)pmVar19 < 0) {\n    pmVar13 = pmVar11;\n    op1 = op2;\n    pmVar23 = pmVar24;\n    pmVar20 = pmVar8;\n    pmVar25 = pmVar19;\n    if ((long)pmVar11 < 0) {\n      if ((long)pmVar11 <= (long)pmVar19) {\n        pmVar11 = pmVar19;\n      }\n      lVar17 = -(long)pmVar11;\n      size = (long)pmVar11 * -0x10;\n      if (size < 0x7f01) {\n        puVar16 = auStack_78 + -(size + 0x10);\n        pmVar19 = (mp_limb_t *)((long)&local_70 + -(size + 0x10));\n        pmVar20 = pmVar11;\n      }\n      else {\n        local_58 = pmVar11;\n        pmVar19 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,size);\n        pmVar20 = local_58;\n      }\n      mVar4 = *pmVar24;\n      pmVar13 = pmVar19 + -(long)pmVar20;\n      *pmVar19 = mVar4 - 1;\n      if (mVar4 == 0) {\n        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\nLAB_0011d84a:\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          uVar26 = 0;\n          if (mVar4 == 0) goto LAB_0011d42d;\n        }\n        else {\n          mVar4 = pmVar24[1];\n          pmVar19[1] = mVar4 - 1;\n          if (mVar4 == 0) {\n            if (-3 < (long)pmVar20) goto LAB_0011d53d;\n            mVar4 = pmVar24[2];\n            pmVar19[2] = mVar4 - 1;\n            lVar12 = 3;\n            while (mVar4 == 0) {\n              if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d53d;\n              mVar4 = pmVar24[lVar12];\n              pmVar19[lVar12] = mVar4 - 1;\n              lVar12 = lVar12 + 1;\n            }\n          }\n          else {\n            lVar12 = 2;\n          }\n          if ((pmVar19 != pmVar24) && ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17)) {\n            pmVar23 = pmVar24 + lVar12;\n            local_58 = pmVar19 + lVar12;\n            local_60 = (mpz_srcptr)CONCAT71(local_60._1_7_,pmVar19 + lVar12 + 2 <= pmVar23);\n            if ((pmVar19 + lVar12 + 2 <= pmVar23 || pmVar24 + lVar12 + 2 <= local_58) &&\n               (3 < ~(ulong)pmVar20 - lVar12)) {\n              local_60 = (mpz_srcptr)(lVar17 - lVar12);\n              lVar18 = 0;\n              do {\n                uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1];\n                *(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18);\n                ((undefined8 *)((long)local_58 + lVar18))[1] = uVar5;\n                lVar18 = lVar18 + 0x10;\n              } while (lVar18 != ((ulong)local_60 >> 1) * 0x10);\n              lVar12 = (long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc +\n                       lVar12;\n              if (local_60 != (mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                pmVar19[lVar12] = pmVar24[lVar12];\n              }\n            }\n            else {\n              do {\n                pmVar19[lVar12] = pmVar24[lVar12];\n                lVar12 = lVar12 + 1;\n              } while ((mp_limb_t *)-lVar12 != pmVar11);\n            }\n          }\nLAB_0011d53d:\n          uVar26 = ~(ulong)pmVar20;\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          if (mVar4 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((pmVar8 == pmVar13) || (pmVar20 == (mp_limb_t *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((pmVar8 + 1 < pmVar19 + (3 - (long)pmVar20) &&\n             pmVar19 + (1 - (long)pmVar20) < pmVar8 + 3) || (-6 < (long)pmVar20)) {\n          lVar12 = 1;\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          goto LAB_0011d42d;\n        }\n        uVar27 = 1;\n        if ((long)pmVar20 < -1) {\n          uVar27 = uVar26;\n        }\n        lVar17 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)pmVar8 + lVar17 + 8);\n          uVar5 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(pmVar19 + (1 - (long)pmVar20)) + lVar17);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);\n        lVar12 = (uVar27 & 0xfffffffffffffffe) + 1;\n        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (pmVar19 != pmVar24) {\n          if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((pmVar24 + 1 < pmVar19 + 3 && pmVar19 + 1 < pmVar24 + 3) || (-6 < (long)pmVar20)) {\n            lVar12 = 1;\n            do {\n              pmVar19[lVar12] = pmVar24[lVar12];\n              lVar12 = lVar12 + 1;\n            } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          }\n          else {\n            lVar12 = 8;\n            uVar26 = 1;\n            if ((long)pmVar20 < -1) {\n              uVar26 = ~(ulong)pmVar20;\n            }\n            do {\n              uVar5 = ((undefined8 *)((long)pmVar24 + lVar12))[1];\n              *(undefined8 *)((long)pmVar19 + lVar12) = *(undefined8 *)((long)pmVar24 + lVar12);\n              ((undefined8 *)((long)pmVar19 + lVar12))[1] = uVar5;\n              lVar12 = lVar12 + 0x10;\n            } while (lVar12 != (uVar26 >> 1) * 0x10 + 8);\n            lVar12 = (uVar26 & 0xfffffffffffffffe) + 1;\n            if (uVar26 != (uVar26 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        mVar4 = *pmVar8;\n        *pmVar13 = mVar4 - 1;\n        if (mVar4 != 0) {\n          uVar26 = ~(ulong)pmVar20;\n          goto LAB_0011d3a0;\n        }\n        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\n          uVar26 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar26 = ~(ulong)pmVar20;\n        mVar4 = pmVar8[1];\n        pmVar13[1] = mVar4 - 1;\n        if (mVar4 == 0) {\n          if (-3 < (long)pmVar20) goto LAB_0011d42d;\n          mVar4 = pmVar8[2];\n          lVar12 = 3;\n          pmVar13[2] = mVar4 - 1;\n          while (mVar4 == 0) {\n            if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d42d;\n            mVar4 = pmVar8[lVar12];\n            pmVar13[lVar12] = mVar4 - 1;\n            lVar12 = lVar12 + 1;\n          }\n        }\n        else {\n          lVar12 = 2;\n        }\n        if ((pmVar8 == pmVar13) || (SBORROW8(lVar12,lVar17) == (long)(lVar12 + (long)pmVar11) < 0))\n        goto LAB_0011d42d;\n        if ((pmVar13 + lVar12 < pmVar8 + lVar12 + 2 && pmVar8 + lVar12 < pmVar13 + lVar12 + 2) ||\n           (uVar26 - lVar12 < 4)) {\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11);\n          goto LAB_0011d42d;\n        }\n        uVar27 = lVar17 - lVar12;\n        lVar17 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(pmVar8 + lVar12) + lVar17);\n          uVar5 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(pmVar13 + lVar12) + lVar17);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);\n        lVar12 = lVar12 + (uVar27 & 0xfffffffffffffffe);\n        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      pmVar13[lVar12] = pmVar8[lVar12];\nLAB_0011d42d:\n      if ((pmVar13[uVar26] & pmVar19[uVar26]) == 0) goto code_r0x0011d43b;\n      lVar17 = uVar26 + 1;\n      if (lVar17 < local_50->_mp_alloc) {\n        puVar10 = local_50->_mp_d;\n      }\n      else {\n        *(undefined8 *)(puVar16 + -8) = 0x11d8b7;\n        local_58 = pmVar13;\n        puVar10 = (ulong *)__gmpz_realloc(local_50,uVar26 + 2);\n        pmVar13 = local_58;\n      }\n      *(undefined8 *)(puVar16 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar10,pmVar19,pmVar13,lVar17);\n      puVar2 = puVar10 + lVar17;\n      *puVar2 = 0;\n      do {\n        uVar26 = *puVar10;\n        *puVar10 = *puVar10 + 1;\n        puVar10 = puVar10 + 1;\n      } while (0xfffffffffffffffe < uVar26);\n      iVar6 = -((int)lVar17 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }\n  }\n  else {\n    pmVar13 = pmVar19;\n    pmVar23 = pmVar8;\n    pmVar20 = pmVar24;\n    pmVar25 = pmVar11;\n    if (-1 < (long)pmVar11) {\n      if ((long)pmVar19 < (long)pmVar11) {\n        if (res->_mp_alloc < iVar21) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_70 = pmVar19;\n          local_68 = op1;\n          local_58 = pmVar11;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar11);\n          pmVar24 = local_68->_mp_d;\n          pmVar11 = local_58;\n          pmVar19 = local_70;\n          iVar21 = (int)local_60;\n        }\n        iVar6 = iVar21;\n        if (pmVar9 != pmVar8) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_58 = pmVar19;\n          __gmpn_copyi(pmVar9 + (long)pmVar19,pmVar8 + (long)pmVar19,(long)pmVar11 - (long)pmVar19);\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar19 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8,pmVar19);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (res->_mp_alloc < iVar6) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_70 = pmVar11;\n          local_68 = op2;\n          local_58 = pmVar19;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar19);\n          pmVar8 = local_68->_mp_d;\n          pmVar11 = local_70;\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar9 != pmVar24) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_58 = pmVar11;\n          __gmpn_copyi(pmVar9 + (long)pmVar11,pmVar24 + (long)pmVar11,(long)pmVar19 - (long)pmVar11)\n          ;\n          pmVar11 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar11 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50->_mp_size = iVar6;\n      goto LAB_0011cf61;\n    }\n  }\n  pmVar24 = (mp_limb_t *)((long)pmVar25 * -8);\n  if (pmVar24 < (mp_limb_t *)0x7f01) {\n    lVar17 = -((ulong)((long)pmVar24 + 0x17) & 0xfffffffffffffff0);\n    puVar14 = auStack_78 + lVar17;\n    pmVar8 = (mp_limb_t *)((long)&local_70 + lVar17);\n    new_alloc = (mpz_srcptr)-(long)pmVar25;\n  }\n  else {\n    local_68 = op1;\n    local_60 = (mpz_srcptr)-(long)pmVar25;\n    local_58 = pmVar24;\n    pmVar8 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)pmVar24);\n    pmVar24 = local_58;\n    new_alloc = local_60;\n    op1 = local_68;\n  }\n  m = local_50;\n  mVar4 = *pmVar23;\n  *pmVar8 = mVar4 - 1;\n  if (mVar4 == 0) {\n    if (pmVar25 != (mp_limb_t *)0xffffffffffffffff) {\n      mVar4 = pmVar23[1];\n      pmVar8[1] = mVar4 - 1;\n      if (mVar4 == 0) {\n        if (-3 < (long)pmVar25) goto LAB_0011ced0;\n        mVar4 = pmVar23[2];\n        p_Var7 = (mpz_srcptr)0x3;\n        pmVar8[2] = mVar4 - 1;\n        while (mVar4 == 0) {\n          if (new_alloc == p_Var7) goto LAB_0011ced0;\n          mVar4 = pmVar23[(long)p_Var7];\n          pmVar8[(long)p_Var7] = mVar4 - 1;\n          p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n        }\n      }\n      else {\n        p_Var7 = (mpz_srcptr)0x2;\n      }\n      if ((pmVar23 != pmVar8) && ((long)p_Var7 < (long)new_alloc)) {\n        local_58 = pmVar23 + (long)p_Var7;\n        local_60 = (mpz_srcptr)\n                   CONCAT71(local_60._1_7_,pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58\n                           );\n        if ((pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58 ||\n             pmVar23 + (long)((long)&p_Var7->_mp_alloc + 2) <= pmVar8 + (long)p_Var7) &&\n           (3 < ~(ulong)pmVar25 - (long)p_Var7)) {\n          uVar26 = (long)new_alloc - (long)p_Var7;\n          lVar17 = 0;\n          do {\n            uVar5 = ((undefined8 *)((long)local_58 + lVar17))[1];\n            puVar1 = (undefined8 *)((long)(pmVar8 + (long)p_Var7) + lVar17);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar17);\n            puVar1[1] = uVar5;\n            lVar17 = lVar17 + 0x10;\n          } while ((uVar26 >> 1) * 0x10 != lVar17);\n          lVar17 = (long)&p_Var7->_mp_alloc + (uVar26 & 0xfffffffffffffffe);\n          if ((uVar26 & 0xfffffffffffffffe) != uVar26) goto LAB_0011d020;\n        }\n        else {\n          do {\n            pmVar8[(long)p_Var7] = pmVar23[(long)p_Var7];\n            p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n          } while (new_alloc != p_Var7);\n        }\n      }\n    }\n  }\n  else if ((pmVar23 != pmVar8) && (pmVar25 != (mp_limb_t *)0xffffffffffffffff)) {\n    if ((pmVar23 + 1 < pmVar8 + 3 && pmVar8 + 1 < pmVar23 + 3) || (-6 < (long)pmVar25)) {\n      lVar17 = 1;\n      do {\n        pmVar8[lVar17] = pmVar23[lVar17];\n        lVar17 = lVar17 + 1;\n      } while (lVar17 < (long)new_alloc);\n    }\n    else {\n      uVar26 = ~(ulong)pmVar25;\n      if (-2 < (long)pmVar25) {\n        uVar26 = 1;\n      }\n      lVar17 = 8;\n      do {\n        uVar5 = ((undefined8 *)((long)pmVar23 + lVar17))[1];\n        *(undefined8 *)((long)pmVar8 + lVar17) = *(undefined8 *)((long)pmVar23 + lVar17);\n        ((undefined8 *)((long)pmVar8 + lVar17))[1] = uVar5;\n        lVar17 = lVar17 + 0x10;\n      } while (lVar17 != (uVar26 >> 1) * 0x10 + 8);\n      lVar17 = (uVar26 & 0xfffffffffffffffe) + 1;\n      if ((uVar26 & 0xfffffffffffffffe) != uVar26) {\nLAB_0011d020:\n        pmVar8[lVar17] = pmVar23[lVar17];\n      }\n    }\n  }\nLAB_0011ced0:\n  pmVar24 = (mp_limb_t *)\n            ((long)new_alloc - (ulong)(*(long *)((long)(pmVar8 + -1) + (long)pmVar24) == 0));\n  if ((long)local_50->_mp_alloc < (long)new_alloc) {\n    local_60 = op1;\n    local_58 = pmVar8;\n    *(undefined8 *)(puVar14 + -8) = 0x11d187;\n    __gmpz_realloc(m,(mp_size_t)new_alloc);\n    pmVar9 = m->_mp_d;\n    pmVar20 = local_60->_mp_d;\n    pmVar8 = local_58;\n  }\n  if ((long)pmVar13 < (long)pmVar24) {\n    local_58 = pmVar8;\n    *(undefined8 *)(puVar14 + -8) = 0x11d0ee;\n    __gmpn_copyi(pmVar9 + (long)pmVar13,pmVar8 + (long)pmVar13,(long)pmVar24 - (long)pmVar13);\n    pmVar8 = local_58;\n    if (pmVar13 != (mp_limb_t *)0x0) goto LAB_0011d0f7;\nLAB_0011d108:\n    *pmVar9 = *pmVar9 + 1;\n    if (*pmVar9 == 0) {\n      if (pmVar24 == (mp_limb_t *)&DAT_00000001) {\nLAB_0011d151:\n        pmVar9[(long)pmVar24] = 1;\n        uVar22 = ~(uint)pmVar24;\n        goto LAB_0011cf4c;\n      }\n      pmVar8 = pmVar9 + 1;\n      *pmVar8 = *pmVar8 + 1;\n      if (*pmVar8 == 0) {\n        if (pmVar24 == (mp_limb_t *)0x2) goto LAB_0011d151;\n        pmVar8 = pmVar9 + 2;\n        *pmVar8 = *pmVar8 + 1;\n        if (*pmVar8 == 0) {\n          pmVar8 = pmVar9 + 3;\n          do {\n            if (pmVar8 == pmVar9 + (long)pmVar24) goto LAB_0011d151;\n            mVar4 = *pmVar8;\n            *pmVar8 = mVar4 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (mVar4 + 1 == 0);\n        }\n      }\n    }\n    uVar22 = -(uint)pmVar24;\n  }\n  else {\n    pmVar11 = (mp_limb_t *)((long)pmVar24 + -1);\n    if (pmVar11 != (mp_limb_t *)0xffffffffffffffff) {\n      uVar26 = pmVar8[(long)pmVar11] & ~pmVar20[(long)pmVar11];\n      pmVar13 = pmVar24;\n      while (pmVar24 = pmVar13, uVar26 == 0) {\n        pmVar24 = (mp_limb_t *)((long)pmVar11 + -1);\n        if (pmVar24 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011cf3f;\n        pmVar13 = pmVar11;\n        pmVar11 = pmVar24;\n        uVar26 = pmVar8[(long)pmVar24] & ~pmVar20[(long)pmVar24];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar14 + -8) = 0x11d108;\n      __gmpn_andn_n(pmVar9,pmVar8,pmVar20,pmVar13);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *pmVar9 = 1;\n    uVar22 = 0xffffffff;\n  }\nLAB_0011cf4c:\n  local_50->_mp_size = uVar22;\n  puVar15 = puVar14;\n  mark = __tmp_marker;\n  goto joined_r0x0011d45a;\ncode_r0x0011d43b:\n  uVar26 = uVar26 - 1;\n  if (uVar26 == 0xffffffffffffffff) goto code_r0x0011d445;\n  goto LAB_0011d42d;\ncode_r0x0011d445:\n  *pmVar9 = 1;\n  iVar6 = -1;\nLAB_0011d44c:\n  local_50->_mp_size = iVar6;\n  puVar15 = puVar16;\n  mark = __tmp_marker;\njoined_r0x0011d45a:\n  __tmp_marker = mark;\n  if (mark != (tmp_reentrant_t *)0x0) {\n    *(undefined8 *)(puVar15 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free(mark);\n  }\nLAB_0011cf61:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined8 *)(puVar15 + -8) = 0x11d8c8;\n  __stack_chk_fail();\n}\n\n" (function_definition "void __gmpz_ior(mpz_ptr res,mpz_srcptr op1,mpz_srcptr op2)\n\n{\n  undefined8 *puVar1;\n  ulong *puVar2;\n  undefined8 *puVar3;\n  mp_limb_t mVar4;\n  undefined8 uVar5;\n  tmp_reentrant_t *mark;\n  mpz_ptr m;\n  int iVar6;\n  mpz_srcptr p_Var7;\n  mp_limb_t *pmVar8;\n  mp_limb_t *pmVar9;\n  ulong *puVar10;\n  mp_limb_t *pmVar11;\n  long lVar12;\n  mpz_srcptr new_alloc;\n  mp_limb_t *pmVar13;\n  undefined1 *puVar14;\n  undefined1 *puVar15;\n  undefined1 *puVar16;\n  long lVar17;\n  size_t size;\n  long lVar18;\n  mp_limb_t *pmVar19;\n  mp_limb_t *pmVar20;\n  int iVar21;\n  uint uVar22;\n  mp_limb_t *pmVar23;\n  mp_limb_t *pmVar24;\n  mp_limb_t *pmVar25;\n  ulong uVar26;\n  ulong uVar27;\n  long in_FS_OFFSET;\n  undefined1 auStack_78 [8];\n  mp_limb_t *local_70;\n  mpz_srcptr local_68;\n  mpz_srcptr local_60;\n  mp_limb_t *local_58;\n  mpz_ptr local_50;\n  tmp_reentrant_t *__tmp_marker;\n  long local_40;\n  \n  puVar14 = auStack_78;\n  puVar16 = auStack_78;\n  puVar15 = auStack_78;\n  iVar6 = op1->_mp_size;\n  pmVar19 = (mp_limb_t *)(long)iVar6;\n  iVar21 = op2->_mp_size;\n  pmVar11 = (mp_limb_t *)(long)iVar21;\n  pmVar24 = op1->_mp_d;\n  pmVar8 = op2->_mp_d;\n  pmVar9 = res->_mp_d;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  __tmp_marker = (tmp_reentrant_t *)0x0;\n  local_50 = res;\n  if ((long)pmVar19 < 0) {\n    pmVar13 = pmVar11;\n    op1 = op2;\n    pmVar23 = pmVar24;\n    pmVar20 = pmVar8;\n    pmVar25 = pmVar19;\n    if ((long)pmVar11 < 0) {\n      if ((long)pmVar11 <= (long)pmVar19) {\n        pmVar11 = pmVar19;\n      }\n      lVar17 = -(long)pmVar11;\n      size = (long)pmVar11 * -0x10;\n      if (size < 0x7f01) {\n        puVar16 = auStack_78 + -(size + 0x10);\n        pmVar19 = (mp_limb_t *)((long)&local_70 + -(size + 0x10));\n        pmVar20 = pmVar11;\n      }\n      else {\n        local_58 = pmVar11;\n        pmVar19 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,size);\n        pmVar20 = local_58;\n      }\n      mVar4 = *pmVar24;\n      pmVar13 = pmVar19 + -(long)pmVar20;\n      *pmVar19 = mVar4 - 1;\n      if (mVar4 == 0) {\n        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\nLAB_0011d84a:\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          uVar26 = 0;\n          if (mVar4 == 0) goto LAB_0011d42d;\n        }\n        else {\n          mVar4 = pmVar24[1];\n          pmVar19[1] = mVar4 - 1;\n          if (mVar4 == 0) {\n            if (-3 < (long)pmVar20) goto LAB_0011d53d;\n            mVar4 = pmVar24[2];\n            pmVar19[2] = mVar4 - 1;\n            lVar12 = 3;\n            while (mVar4 == 0) {\n              if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d53d;\n              mVar4 = pmVar24[lVar12];\n              pmVar19[lVar12] = mVar4 - 1;\n              lVar12 = lVar12 + 1;\n            }\n          }\n          else {\n            lVar12 = 2;\n          }\n          if ((pmVar19 != pmVar24) && ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17)) {\n            pmVar23 = pmVar24 + lVar12;\n            local_58 = pmVar19 + lVar12;\n            local_60 = (mpz_srcptr)CONCAT71(local_60._1_7_,pmVar19 + lVar12 + 2 <= pmVar23);\n            if ((pmVar19 + lVar12 + 2 <= pmVar23 || pmVar24 + lVar12 + 2 <= local_58) &&\n               (3 < ~(ulong)pmVar20 - lVar12)) {\n              local_60 = (mpz_srcptr)(lVar17 - lVar12);\n              lVar18 = 0;\n              do {\n                uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1];\n                *(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18);\n                ((undefined8 *)((long)local_58 + lVar18))[1] = uVar5;\n                lVar18 = lVar18 + 0x10;\n              } while (lVar18 != ((ulong)local_60 >> 1) * 0x10);\n              lVar12 = (long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc +\n                       lVar12;\n              if (local_60 != (mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                pmVar19[lVar12] = pmVar24[lVar12];\n              }\n            }\n            else {\n              do {\n                pmVar19[lVar12] = pmVar24[lVar12];\n                lVar12 = lVar12 + 1;\n              } while ((mp_limb_t *)-lVar12 != pmVar11);\n            }\n          }\nLAB_0011d53d:\n          uVar26 = ~(ulong)pmVar20;\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          if (mVar4 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((pmVar8 == pmVar13) || (pmVar20 == (mp_limb_t *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((pmVar8 + 1 < pmVar19 + (3 - (long)pmVar20) &&\n             pmVar19 + (1 - (long)pmVar20) < pmVar8 + 3) || (-6 < (long)pmVar20)) {\n          lVar12 = 1;\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          goto LAB_0011d42d;\n        }\n        uVar27 = 1;\n        if ((long)pmVar20 < -1) {\n          uVar27 = uVar26;\n        }\n        lVar17 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)pmVar8 + lVar17 + 8);\n          uVar5 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(pmVar19 + (1 - (long)pmVar20)) + lVar17);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);\n        lVar12 = (uVar27 & 0xfffffffffffffffe) + 1;\n        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (pmVar19 != pmVar24) {\n          if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((pmVar24 + 1 < pmVar19 + 3 && pmVar19 + 1 < pmVar24 + 3) || (-6 < (long)pmVar20)) {\n            lVar12 = 1;\n            do {\n              pmVar19[lVar12] = pmVar24[lVar12];\n              lVar12 = lVar12 + 1;\n            } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          }\n          else {\n            lVar12 = 8;\n            uVar26 = 1;\n            if ((long)pmVar20 < -1) {\n              uVar26 = ~(ulong)pmVar20;\n            }\n            do {\n              uVar5 = ((undefined8 *)((long)pmVar24 + lVar12))[1];\n              *(undefined8 *)((long)pmVar19 + lVar12) = *(undefined8 *)((long)pmVar24 + lVar12);\n              ((undefined8 *)((long)pmVar19 + lVar12))[1] = uVar5;\n              lVar12 = lVar12 + 0x10;\n            } while (lVar12 != (uVar26 >> 1) * 0x10 + 8);\n            lVar12 = (uVar26 & 0xfffffffffffffffe) + 1;\n            if (uVar26 != (uVar26 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        mVar4 = *pmVar8;\n        *pmVar13 = mVar4 - 1;\n        if (mVar4 != 0) {\n          uVar26 = ~(ulong)pmVar20;\n          goto LAB_0011d3a0;\n        }\n        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\n          uVar26 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar26 = ~(ulong)pmVar20;\n        mVar4 = pmVar8[1];\n        pmVar13[1] = mVar4 - 1;\n        if (mVar4 == 0) {\n          if (-3 < (long)pmVar20) goto LAB_0011d42d;\n          mVar4 = pmVar8[2];\n          lVar12 = 3;\n          pmVar13[2] = mVar4 - 1;\n          while (mVar4 == 0) {\n            if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d42d;\n            mVar4 = pmVar8[lVar12];\n            pmVar13[lVar12] = mVar4 - 1;\n            lVar12 = lVar12 + 1;\n          }\n        }\n        else {\n          lVar12 = 2;\n        }\n        if ((pmVar8 == pmVar13) || (SBORROW8(lVar12,lVar17) == (long)(lVar12 + (long)pmVar11) < 0))\n        goto LAB_0011d42d;\n        if ((pmVar13 + lVar12 < pmVar8 + lVar12 + 2 && pmVar8 + lVar12 < pmVar13 + lVar12 + 2) ||\n           (uVar26 - lVar12 < 4)) {\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11);\n          goto LAB_0011d42d;\n        }\n        uVar27 = lVar17 - lVar12;\n        lVar17 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(pmVar8 + lVar12) + lVar17);\n          uVar5 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(pmVar13 + lVar12) + lVar17);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);\n        lVar12 = lVar12 + (uVar27 & 0xfffffffffffffffe);\n        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      pmVar13[lVar12] = pmVar8[lVar12];\nLAB_0011d42d:\n      if ((pmVar13[uVar26] & pmVar19[uVar26]) == 0) goto code_r0x0011d43b;\n      lVar17 = uVar26 + 1;\n      if (lVar17 < local_50->_mp_alloc) {\n        puVar10 = local_50->_mp_d;\n      }\n      else {\n        *(undefined8 *)(puVar16 + -8) = 0x11d8b7;\n        local_58 = pmVar13;\n        puVar10 = (ulong *)__gmpz_realloc(local_50,uVar26 + 2);\n        pmVar13 = local_58;\n      }\n      *(undefined8 *)(puVar16 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar10,pmVar19,pmVar13,lVar17);\n      puVar2 = puVar10 + lVar17;\n      *puVar2 = 0;\n      do {\n        uVar26 = *puVar10;\n        *puVar10 = *puVar10 + 1;\n        puVar10 = puVar10 + 1;\n      } while (0xfffffffffffffffe < uVar26);\n      iVar6 = -((int)lVar17 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }\n  }\n  else {\n    pmVar13 = pmVar19;\n    pmVar23 = pmVar8;\n    pmVar20 = pmVar24;\n    pmVar25 = pmVar11;\n    if (-1 < (long)pmVar11) {\n      if ((long)pmVar19 < (long)pmVar11) {\n        if (res->_mp_alloc < iVar21) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_70 = pmVar19;\n          local_68 = op1;\n          local_58 = pmVar11;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar11);\n          pmVar24 = local_68->_mp_d;\n          pmVar11 = local_58;\n          pmVar19 = local_70;\n          iVar21 = (int)local_60;\n        }\n        iVar6 = iVar21;\n        if (pmVar9 != pmVar8) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_58 = pmVar19;\n          __gmpn_copyi(pmVar9 + (long)pmVar19,pmVar8 + (long)pmVar19,(long)pmVar11 - (long)pmVar19);\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar19 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8,pmVar19);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (res->_mp_alloc < iVar6) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_70 = pmVar11;\n          local_68 = op2;\n          local_58 = pmVar19;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar19);\n          pmVar8 = local_68->_mp_d;\n          pmVar11 = local_70;\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar9 != pmVar24) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_58 = pmVar11;\n          __gmpn_copyi(pmVar9 + (long)pmVar11,pmVar24 + (long)pmVar11,(long)pmVar19 - (long)pmVar11)\n          ;\n          pmVar11 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar11 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50->_mp_size = iVar6;\n      goto LAB_0011cf61;\n    }\n  }\n  pmVar24 = (mp_limb_t *)((long)pmVar25 * -8);\n  if (pmVar24 < (mp_limb_t *)0x7f01) {\n    lVar17 = -((ulong)((long)pmVar24 + 0x17) & 0xfffffffffffffff0);\n    puVar14 = auStack_78 + lVar17;\n    pmVar8 = (mp_limb_t *)((long)&local_70 + lVar17);\n    new_alloc = (mpz_srcptr)-(long)pmVar25;\n  }\n  else {\n    local_68 = op1;\n    local_60 = (mpz_srcptr)-(long)pmVar25;\n    local_58 = pmVar24;\n    pmVar8 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)pmVar24);\n    pmVar24 = local_58;\n    new_alloc = local_60;\n    op1 = local_68;\n  }\n  m = local_50;\n  mVar4 = *pmVar23;\n  *pmVar8 = mVar4 - 1;\n  if (mVar4 == 0) {\n    if (pmVar25 != (mp_limb_t *)0xffffffffffffffff) {\n      mVar4 = pmVar23[1];\n      pmVar8[1] = mVar4 - 1;\n      if (mVar4 == 0) {\n        if (-3 < (long)pmVar25) goto LAB_0011ced0;\n        mVar4 = pmVar23[2];\n        p_Var7 = (mpz_srcptr)0x3;\n        pmVar8[2] = mVar4 - 1;\n        while (mVar4 == 0) {\n          if (new_alloc == p_Var7) goto LAB_0011ced0;\n          mVar4 = pmVar23[(long)p_Var7];\n          pmVar8[(long)p_Var7] = mVar4 - 1;\n          p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n        }\n      }\n      else {\n        p_Var7 = (mpz_srcptr)0x2;\n      }\n      if ((pmVar23 != pmVar8) && ((long)p_Var7 < (long)new_alloc)) {\n        local_58 = pmVar23 + (long)p_Var7;\n        local_60 = (mpz_srcptr)\n                   CONCAT71(local_60._1_7_,pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58\n                           );\n        if ((pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58 ||\n             pmVar23 + (long)((long)&p_Var7->_mp_alloc + 2) <= pmVar8 + (long)p_Var7) &&\n           (3 < ~(ulong)pmVar25 - (long)p_Var7)) {\n          uVar26 = (long)new_alloc - (long)p_Var7;\n          lVar17 = 0;\n          do {\n            uVar5 = ((undefined8 *)((long)local_58 + lVar17))[1];\n            puVar1 = (undefined8 *)((long)(pmVar8 + (long)p_Var7) + lVar17);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar17);\n            puVar1[1] = uVar5;\n            lVar17 = lVar17 + 0x10;\n          } while ((uVar26 >> 1) * 0x10 != lVar17);\n          lVar17 = (long)&p_Var7->_mp_alloc + (uVar26 & 0xfffffffffffffffe);\n          if ((uVar26 & 0xfffffffffffffffe) != uVar26) goto LAB_0011d020;\n        }\n        else {\n          do {\n            pmVar8[(long)p_Var7] = pmVar23[(long)p_Var7];\n            p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n          } while (new_alloc != p_Var7);\n        }\n      }\n    }\n  }\n  else if ((pmVar23 != pmVar8) && (pmVar25 != (mp_limb_t *)0xffffffffffffffff)) {\n    if ((pmVar23 + 1 < pmVar8 + 3 && pmVar8 + 1 < pmVar23 + 3) || (-6 < (long)pmVar25)) {\n      lVar17 = 1;\n      do {\n        pmVar8[lVar17] = pmVar23[lVar17];\n        lVar17 = lVar17 + 1;\n      } while (lVar17 < (long)new_alloc);\n    }\n    else {\n      uVar26 = ~(ulong)pmVar25;\n      if (-2 < (long)pmVar25) {\n        uVar26 = 1;\n      }\n      lVar17 = 8;\n      do {\n        uVar5 = ((undefined8 *)((long)pmVar23 + lVar17))[1];\n        *(undefined8 *)((long)pmVar8 + lVar17) = *(undefined8 *)((long)pmVar23 + lVar17);\n        ((undefined8 *)((long)pmVar8 + lVar17))[1] = uVar5;\n        lVar17 = lVar17 + 0x10;\n      } while (lVar17 != (uVar26 >> 1) * 0x10 + 8);\n      lVar17 = (uVar26 & 0xfffffffffffffffe) + 1;\n      if ((uVar26 & 0xfffffffffffffffe) != uVar26) {\nLAB_0011d020:\n        pmVar8[lVar17] = pmVar23[lVar17];\n      }\n    }\n  }\nLAB_0011ced0:\n  pmVar24 = (mp_limb_t *)\n            ((long)new_alloc - (ulong)(*(long *)((long)(pmVar8 + -1) + (long)pmVar24) == 0));\n  if ((long)local_50->_mp_alloc < (long)new_alloc) {\n    local_60 = op1;\n    local_58 = pmVar8;\n    *(undefined8 *)(puVar14 + -8) = 0x11d187;\n    __gmpz_realloc(m,(mp_size_t)new_alloc);\n    pmVar9 = m->_mp_d;\n    pmVar20 = local_60->_mp_d;\n    pmVar8 = local_58;\n  }\n  if ((long)pmVar13 < (long)pmVar24) {\n    local_58 = pmVar8;\n    *(undefined8 *)(puVar14 + -8) = 0x11d0ee;\n    __gmpn_copyi(pmVar9 + (long)pmVar13,pmVar8 + (long)pmVar13,(long)pmVar24 - (long)pmVar13);\n    pmVar8 = local_58;\n    if (pmVar13 != (mp_limb_t *)0x0) goto LAB_0011d0f7;\nLAB_0011d108:\n    *pmVar9 = *pmVar9 + 1;\n    if (*pmVar9 == 0) {\n      if (pmVar24 == (mp_limb_t *)&DAT_00000001) {\nLAB_0011d151:\n        pmVar9[(long)pmVar24] = 1;\n        uVar22 = ~(uint)pmVar24;\n        goto LAB_0011cf4c;\n      }\n      pmVar8 = pmVar9 + 1;\n      *pmVar8 = *pmVar8 + 1;\n      if (*pmVar8 == 0) {\n        if (pmVar24 == (mp_limb_t *)0x2) goto LAB_0011d151;\n        pmVar8 = pmVar9 + 2;\n        *pmVar8 = *pmVar8 + 1;\n        if (*pmVar8 == 0) {\n          pmVar8 = pmVar9 + 3;\n          do {\n            if (pmVar8 == pmVar9 + (long)pmVar24) goto LAB_0011d151;\n            mVar4 = *pmVar8;\n            *pmVar8 = mVar4 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (mVar4 + 1 == 0);\n        }\n      }\n    }\n    uVar22 = -(uint)pmVar24;\n  }\n  else {\n    pmVar11 = (mp_limb_t *)((long)pmVar24 + -1);\n    if (pmVar11 != (mp_limb_t *)0xffffffffffffffff) {\n      uVar26 = pmVar8[(long)pmVar11] & ~pmVar20[(long)pmVar11];\n      pmVar13 = pmVar24;\n      while (pmVar24 = pmVar13, uVar26 == 0) {\n        pmVar24 = (mp_limb_t *)((long)pmVar11 + -1);\n        if (pmVar24 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011cf3f;\n        pmVar13 = pmVar11;\n        pmVar11 = pmVar24;\n        uVar26 = pmVar8[(long)pmVar24] & ~pmVar20[(long)pmVar24];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar14 + -8) = 0x11d108;\n      __gmpn_andn_n(pmVar9,pmVar8,pmVar20,pmVar13);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *pmVar9 = 1;\n    uVar22 = 0xffffffff;\n  }\nLAB_0011cf4c:\n  local_50->_mp_size = uVar22;\n  puVar15 = puVar14;\n  mark = __tmp_marker;\n  goto joined_r0x0011d45a;\ncode_r0x0011d43b:\n  uVar26 = uVar26 - 1;\n  if (uVar26 == 0xffffffffffffffff) goto code_r0x0011d445;\n  goto LAB_0011d42d;\ncode_r0x0011d445:\n  *pmVar9 = 1;\n  iVar6 = -1;\nLAB_0011d44c:\n  local_50->_mp_size = iVar6;\n  puVar15 = puVar16;\n  mark = __tmp_marker;\njoined_r0x0011d45a:\n  __tmp_marker = mark;\n  if (mark != (tmp_reentrant_t *)0x0) {\n    *(undefined8 *)(puVar15 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free(mark);\n  }\nLAB_0011cf61:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined8 *)(puVar15 + -8) = 0x11d8c8;\n  __stack_chk_fail();\n}" primitive_type (function_declarator "__gmpz_ior(mpz_ptr res,mpz_srcptr op1,mpz_srcptr op2)" identifier (parameter_list "(mpz_ptr res,mpz_srcptr op1,mpz_srcptr op2)" ( (parameter_declaration "mpz_ptr res" type_identifier identifier) , (parameter_declaration "mpz_srcptr op1" type_identifier identifier) , (parameter_declaration "mpz_srcptr op2" type_identifier identifier) ))) (compound_statement "{\n  undefined8 *puVar1;\n  ulong *puVar2;\n  undefined8 *puVar3;\n  mp_limb_t mVar4;\n  undefined8 uVar5;\n  tmp_reentrant_t *mark;\n  mpz_ptr m;\n  int iVar6;\n  mpz_srcptr p_Var7;\n  mp_limb_t *pmVar8;\n  mp_limb_t *pmVar9;\n  ulong *puVar10;\n  mp_limb_t *pmVar11;\n  long lVar12;\n  mpz_srcptr new_alloc;\n  mp_limb_t *pmVar13;\n  undefined1 *puVar14;\n  undefined1 *puVar15;\n  undefined1 *puVar16;\n  long lVar17;\n  size_t size;\n  long lVar18;\n  mp_limb_t *pmVar19;\n  mp_limb_t *pmVar20;\n  int iVar21;\n  uint uVar22;\n  mp_limb_t *pmVar23;\n  mp_limb_t *pmVar24;\n  mp_limb_t *pmVar25;\n  ulong uVar26;\n  ulong uVar27;\n  long in_FS_OFFSET;\n  undefined1 auStack_78 [8];\n  mp_limb_t *local_70;\n  mpz_srcptr local_68;\n  mpz_srcptr local_60;\n  mp_limb_t *local_58;\n  mpz_ptr local_50;\n  tmp_reentrant_t *__tmp_marker;\n  long local_40;\n  \n  puVar14 = auStack_78;\n  puVar16 = auStack_78;\n  puVar15 = auStack_78;\n  iVar6 = op1->_mp_size;\n  pmVar19 = (mp_limb_t *)(long)iVar6;\n  iVar21 = op2->_mp_size;\n  pmVar11 = (mp_limb_t *)(long)iVar21;\n  pmVar24 = op1->_mp_d;\n  pmVar8 = op2->_mp_d;\n  pmVar9 = res->_mp_d;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  __tmp_marker = (tmp_reentrant_t *)0x0;\n  local_50 = res;\n  if ((long)pmVar19 < 0) {\n    pmVar13 = pmVar11;\n    op1 = op2;\n    pmVar23 = pmVar24;\n    pmVar20 = pmVar8;\n    pmVar25 = pmVar19;\n    if ((long)pmVar11 < 0) {\n      if ((long)pmVar11 <= (long)pmVar19) {\n        pmVar11 = pmVar19;\n      }\n      lVar17 = -(long)pmVar11;\n      size = (long)pmVar11 * -0x10;\n      if (size < 0x7f01) {\n        puVar16 = auStack_78 + -(size + 0x10);\n        pmVar19 = (mp_limb_t *)((long)&local_70 + -(size + 0x10));\n        pmVar20 = pmVar11;\n      }\n      else {\n        local_58 = pmVar11;\n        pmVar19 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,size);\n        pmVar20 = local_58;\n      }\n      mVar4 = *pmVar24;\n      pmVar13 = pmVar19 + -(long)pmVar20;\n      *pmVar19 = mVar4 - 1;\n      if (mVar4 == 0) {\n        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\nLAB_0011d84a:\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          uVar26 = 0;\n          if (mVar4 == 0) goto LAB_0011d42d;\n        }\n        else {\n          mVar4 = pmVar24[1];\n          pmVar19[1] = mVar4 - 1;\n          if (mVar4 == 0) {\n            if (-3 < (long)pmVar20) goto LAB_0011d53d;\n            mVar4 = pmVar24[2];\n            pmVar19[2] = mVar4 - 1;\n            lVar12 = 3;\n            while (mVar4 == 0) {\n              if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d53d;\n              mVar4 = pmVar24[lVar12];\n              pmVar19[lVar12] = mVar4 - 1;\n              lVar12 = lVar12 + 1;\n            }\n          }\n          else {\n            lVar12 = 2;\n          }\n          if ((pmVar19 != pmVar24) && ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17)) {\n            pmVar23 = pmVar24 + lVar12;\n            local_58 = pmVar19 + lVar12;\n            local_60 = (mpz_srcptr)CONCAT71(local_60._1_7_,pmVar19 + lVar12 + 2 <= pmVar23);\n            if ((pmVar19 + lVar12 + 2 <= pmVar23 || pmVar24 + lVar12 + 2 <= local_58) &&\n               (3 < ~(ulong)pmVar20 - lVar12)) {\n              local_60 = (mpz_srcptr)(lVar17 - lVar12);\n              lVar18 = 0;\n              do {\n                uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1];\n                *(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18);\n                ((undefined8 *)((long)local_58 + lVar18))[1] = uVar5;\n                lVar18 = lVar18 + 0x10;\n              } while (lVar18 != ((ulong)local_60 >> 1) * 0x10);\n              lVar12 = (long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc +\n                       lVar12;\n              if (local_60 != (mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                pmVar19[lVar12] = pmVar24[lVar12];\n              }\n            }\n            else {\n              do {\n                pmVar19[lVar12] = pmVar24[lVar12];\n                lVar12 = lVar12 + 1;\n              } while ((mp_limb_t *)-lVar12 != pmVar11);\n            }\n          }\nLAB_0011d53d:\n          uVar26 = ~(ulong)pmVar20;\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          if (mVar4 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((pmVar8 == pmVar13) || (pmVar20 == (mp_limb_t *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((pmVar8 + 1 < pmVar19 + (3 - (long)pmVar20) &&\n             pmVar19 + (1 - (long)pmVar20) < pmVar8 + 3) || (-6 < (long)pmVar20)) {\n          lVar12 = 1;\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          goto LAB_0011d42d;\n        }\n        uVar27 = 1;\n        if ((long)pmVar20 < -1) {\n          uVar27 = uVar26;\n        }\n        lVar17 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)pmVar8 + lVar17 + 8);\n          uVar5 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(pmVar19 + (1 - (long)pmVar20)) + lVar17);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);\n        lVar12 = (uVar27 & 0xfffffffffffffffe) + 1;\n        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (pmVar19 != pmVar24) {\n          if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((pmVar24 + 1 < pmVar19 + 3 && pmVar19 + 1 < pmVar24 + 3) || (-6 < (long)pmVar20)) {\n            lVar12 = 1;\n            do {\n              pmVar19[lVar12] = pmVar24[lVar12];\n              lVar12 = lVar12 + 1;\n            } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          }\n          else {\n            lVar12 = 8;\n            uVar26 = 1;\n            if ((long)pmVar20 < -1) {\n              uVar26 = ~(ulong)pmVar20;\n            }\n            do {\n              uVar5 = ((undefined8 *)((long)pmVar24 + lVar12))[1];\n              *(undefined8 *)((long)pmVar19 + lVar12) = *(undefined8 *)((long)pmVar24 + lVar12);\n              ((undefined8 *)((long)pmVar19 + lVar12))[1] = uVar5;\n              lVar12 = lVar12 + 0x10;\n            } while (lVar12 != (uVar26 >> 1) * 0x10 + 8);\n            lVar12 = (uVar26 & 0xfffffffffffffffe) + 1;\n            if (uVar26 != (uVar26 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        mVar4 = *pmVar8;\n        *pmVar13 = mVar4 - 1;\n        if (mVar4 != 0) {\n          uVar26 = ~(ulong)pmVar20;\n          goto LAB_0011d3a0;\n        }\n        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\n          uVar26 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar26 = ~(ulong)pmVar20;\n        mVar4 = pmVar8[1];\n        pmVar13[1] = mVar4 - 1;\n        if (mVar4 == 0) {\n          if (-3 < (long)pmVar20) goto LAB_0011d42d;\n          mVar4 = pmVar8[2];\n          lVar12 = 3;\n          pmVar13[2] = mVar4 - 1;\n          while (mVar4 == 0) {\n            if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d42d;\n            mVar4 = pmVar8[lVar12];\n            pmVar13[lVar12] = mVar4 - 1;\n            lVar12 = lVar12 + 1;\n          }\n        }\n        else {\n          lVar12 = 2;\n        }\n        if ((pmVar8 == pmVar13) || (SBORROW8(lVar12,lVar17) == (long)(lVar12 + (long)pmVar11) < 0))\n        goto LAB_0011d42d;\n        if ((pmVar13 + lVar12 < pmVar8 + lVar12 + 2 && pmVar8 + lVar12 < pmVar13 + lVar12 + 2) ||\n           (uVar26 - lVar12 < 4)) {\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11);\n          goto LAB_0011d42d;\n        }\n        uVar27 = lVar17 - lVar12;\n        lVar17 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(pmVar8 + lVar12) + lVar17);\n          uVar5 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(pmVar13 + lVar12) + lVar17);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);\n        lVar12 = lVar12 + (uVar27 & 0xfffffffffffffffe);\n        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      pmVar13[lVar12] = pmVar8[lVar12];\nLAB_0011d42d:\n      if ((pmVar13[uVar26] & pmVar19[uVar26]) == 0) goto code_r0x0011d43b;\n      lVar17 = uVar26 + 1;\n      if (lVar17 < local_50->_mp_alloc) {\n        puVar10 = local_50->_mp_d;\n      }\n      else {\n        *(undefined8 *)(puVar16 + -8) = 0x11d8b7;\n        local_58 = pmVar13;\n        puVar10 = (ulong *)__gmpz_realloc(local_50,uVar26 + 2);\n        pmVar13 = local_58;\n      }\n      *(undefined8 *)(puVar16 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar10,pmVar19,pmVar13,lVar17);\n      puVar2 = puVar10 + lVar17;\n      *puVar2 = 0;\n      do {\n        uVar26 = *puVar10;\n        *puVar10 = *puVar10 + 1;\n        puVar10 = puVar10 + 1;\n      } while (0xfffffffffffffffe < uVar26);\n      iVar6 = -((int)lVar17 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }\n  }\n  else {\n    pmVar13 = pmVar19;\n    pmVar23 = pmVar8;\n    pmVar20 = pmVar24;\n    pmVar25 = pmVar11;\n    if (-1 < (long)pmVar11) {\n      if ((long)pmVar19 < (long)pmVar11) {\n        if (res->_mp_alloc < iVar21) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_70 = pmVar19;\n          local_68 = op1;\n          local_58 = pmVar11;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar11);\n          pmVar24 = local_68->_mp_d;\n          pmVar11 = local_58;\n          pmVar19 = local_70;\n          iVar21 = (int)local_60;\n        }\n        iVar6 = iVar21;\n        if (pmVar9 != pmVar8) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_58 = pmVar19;\n          __gmpn_copyi(pmVar9 + (long)pmVar19,pmVar8 + (long)pmVar19,(long)pmVar11 - (long)pmVar19);\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar19 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8,pmVar19);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (res->_mp_alloc < iVar6) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_70 = pmVar11;\n          local_68 = op2;\n          local_58 = pmVar19;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar19);\n          pmVar8 = local_68->_mp_d;\n          pmVar11 = local_70;\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar9 != pmVar24) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_58 = pmVar11;\n          __gmpn_copyi(pmVar9 + (long)pmVar11,pmVar24 + (long)pmVar11,(long)pmVar19 - (long)pmVar11)\n          ;\n          pmVar11 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar11 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50->_mp_size = iVar6;\n      goto LAB_0011cf61;\n    }\n  }\n  pmVar24 = (mp_limb_t *)((long)pmVar25 * -8);\n  if (pmVar24 < (mp_limb_t *)0x7f01) {\n    lVar17 = -((ulong)((long)pmVar24 + 0x17) & 0xfffffffffffffff0);\n    puVar14 = auStack_78 + lVar17;\n    pmVar8 = (mp_limb_t *)((long)&local_70 + lVar17);\n    new_alloc = (mpz_srcptr)-(long)pmVar25;\n  }\n  else {\n    local_68 = op1;\n    local_60 = (mpz_srcptr)-(long)pmVar25;\n    local_58 = pmVar24;\n    pmVar8 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)pmVar24);\n    pmVar24 = local_58;\n    new_alloc = local_60;\n    op1 = local_68;\n  }\n  m = local_50;\n  mVar4 = *pmVar23;\n  *pmVar8 = mVar4 - 1;\n  if (mVar4 == 0) {\n    if (pmVar25 != (mp_limb_t *)0xffffffffffffffff) {\n      mVar4 = pmVar23[1];\n      pmVar8[1] = mVar4 - 1;\n      if (mVar4 == 0) {\n        if (-3 < (long)pmVar25) goto LAB_0011ced0;\n        mVar4 = pmVar23[2];\n        p_Var7 = (mpz_srcptr)0x3;\n        pmVar8[2] = mVar4 - 1;\n        while (mVar4 == 0) {\n          if (new_alloc == p_Var7) goto LAB_0011ced0;\n          mVar4 = pmVar23[(long)p_Var7];\n          pmVar8[(long)p_Var7] = mVar4 - 1;\n          p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n        }\n      }\n      else {\n        p_Var7 = (mpz_srcptr)0x2;\n      }\n      if ((pmVar23 != pmVar8) && ((long)p_Var7 < (long)new_alloc)) {\n        local_58 = pmVar23 + (long)p_Var7;\n        local_60 = (mpz_srcptr)\n                   CONCAT71(local_60._1_7_,pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58\n                           );\n        if ((pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58 ||\n             pmVar23 + (long)((long)&p_Var7->_mp_alloc + 2) <= pmVar8 + (long)p_Var7) &&\n           (3 < ~(ulong)pmVar25 - (long)p_Var7)) {\n          uVar26 = (long)new_alloc - (long)p_Var7;\n          lVar17 = 0;\n          do {\n            uVar5 = ((undefined8 *)((long)local_58 + lVar17))[1];\n            puVar1 = (undefined8 *)((long)(pmVar8 + (long)p_Var7) + lVar17);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar17);\n            puVar1[1] = uVar5;\n            lVar17 = lVar17 + 0x10;\n          } while ((uVar26 >> 1) * 0x10 != lVar17);\n          lVar17 = (long)&p_Var7->_mp_alloc + (uVar26 & 0xfffffffffffffffe);\n          if ((uVar26 & 0xfffffffffffffffe) != uVar26) goto LAB_0011d020;\n        }\n        else {\n          do {\n            pmVar8[(long)p_Var7] = pmVar23[(long)p_Var7];\n            p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n          } while (new_alloc != p_Var7);\n        }\n      }\n    }\n  }\n  else if ((pmVar23 != pmVar8) && (pmVar25 != (mp_limb_t *)0xffffffffffffffff)) {\n    if ((pmVar23 + 1 < pmVar8 + 3 && pmVar8 + 1 < pmVar23 + 3) || (-6 < (long)pmVar25)) {\n      lVar17 = 1;\n      do {\n        pmVar8[lVar17] = pmVar23[lVar17];\n        lVar17 = lVar17 + 1;\n      } while (lVar17 < (long)new_alloc);\n    }\n    else {\n      uVar26 = ~(ulong)pmVar25;\n      if (-2 < (long)pmVar25) {\n        uVar26 = 1;\n      }\n      lVar17 = 8;\n      do {\n        uVar5 = ((undefined8 *)((long)pmVar23 + lVar17))[1];\n        *(undefined8 *)((long)pmVar8 + lVar17) = *(undefined8 *)((long)pmVar23 + lVar17);\n        ((undefined8 *)((long)pmVar8 + lVar17))[1] = uVar5;\n        lVar17 = lVar17 + 0x10;\n      } while (lVar17 != (uVar26 >> 1) * 0x10 + 8);\n      lVar17 = (uVar26 & 0xfffffffffffffffe) + 1;\n      if ((uVar26 & 0xfffffffffffffffe) != uVar26) {\nLAB_0011d020:\n        pmVar8[lVar17] = pmVar23[lVar17];\n      }\n    }\n  }\nLAB_0011ced0:\n  pmVar24 = (mp_limb_t *)\n            ((long)new_alloc - (ulong)(*(long *)((long)(pmVar8 + -1) + (long)pmVar24) == 0));\n  if ((long)local_50->_mp_alloc < (long)new_alloc) {\n    local_60 = op1;\n    local_58 = pmVar8;\n    *(undefined8 *)(puVar14 + -8) = 0x11d187;\n    __gmpz_realloc(m,(mp_size_t)new_alloc);\n    pmVar9 = m->_mp_d;\n    pmVar20 = local_60->_mp_d;\n    pmVar8 = local_58;\n  }\n  if ((long)pmVar13 < (long)pmVar24) {\n    local_58 = pmVar8;\n    *(undefined8 *)(puVar14 + -8) = 0x11d0ee;\n    __gmpn_copyi(pmVar9 + (long)pmVar13,pmVar8 + (long)pmVar13,(long)pmVar24 - (long)pmVar13);\n    pmVar8 = local_58;\n    if (pmVar13 != (mp_limb_t *)0x0) goto LAB_0011d0f7;\nLAB_0011d108:\n    *pmVar9 = *pmVar9 + 1;\n    if (*pmVar9 == 0) {\n      if (pmVar24 == (mp_limb_t *)&DAT_00000001) {\nLAB_0011d151:\n        pmVar9[(long)pmVar24] = 1;\n        uVar22 = ~(uint)pmVar24;\n        goto LAB_0011cf4c;\n      }\n      pmVar8 = pmVar9 + 1;\n      *pmVar8 = *pmVar8 + 1;\n      if (*pmVar8 == 0) {\n        if (pmVar24 == (mp_limb_t *)0x2) goto LAB_0011d151;\n        pmVar8 = pmVar9 + 2;\n        *pmVar8 = *pmVar8 + 1;\n        if (*pmVar8 == 0) {\n          pmVar8 = pmVar9 + 3;\n          do {\n            if (pmVar8 == pmVar9 + (long)pmVar24) goto LAB_0011d151;\n            mVar4 = *pmVar8;\n            *pmVar8 = mVar4 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (mVar4 + 1 == 0);\n        }\n      }\n    }\n    uVar22 = -(uint)pmVar24;\n  }\n  else {\n    pmVar11 = (mp_limb_t *)((long)pmVar24 + -1);\n    if (pmVar11 != (mp_limb_t *)0xffffffffffffffff) {\n      uVar26 = pmVar8[(long)pmVar11] & ~pmVar20[(long)pmVar11];\n      pmVar13 = pmVar24;\n      while (pmVar24 = pmVar13, uVar26 == 0) {\n        pmVar24 = (mp_limb_t *)((long)pmVar11 + -1);\n        if (pmVar24 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011cf3f;\n        pmVar13 = pmVar11;\n        pmVar11 = pmVar24;\n        uVar26 = pmVar8[(long)pmVar24] & ~pmVar20[(long)pmVar24];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar14 + -8) = 0x11d108;\n      __gmpn_andn_n(pmVar9,pmVar8,pmVar20,pmVar13);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *pmVar9 = 1;\n    uVar22 = 0xffffffff;\n  }\nLAB_0011cf4c:\n  local_50->_mp_size = uVar22;\n  puVar15 = puVar14;\n  mark = __tmp_marker;\n  goto joined_r0x0011d45a;\ncode_r0x0011d43b:\n  uVar26 = uVar26 - 1;\n  if (uVar26 == 0xffffffffffffffff) goto code_r0x0011d445;\n  goto LAB_0011d42d;\ncode_r0x0011d445:\n  *pmVar9 = 1;\n  iVar6 = -1;\nLAB_0011d44c:\n  local_50->_mp_size = iVar6;\n  puVar15 = puVar16;\n  mark = __tmp_marker;\njoined_r0x0011d45a:\n  __tmp_marker = mark;\n  if (mark != (tmp_reentrant_t *)0x0) {\n    *(undefined8 *)(puVar15 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free(mark);\n  }\nLAB_0011cf61:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined8 *)(puVar15 + -8) = 0x11d8c8;\n  __stack_chk_fail();\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "ulong *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "mp_limb_t mVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "tmp_reentrant_t *mark;" type_identifier (pointer_declarator "*mark" * identifier) ;) (declaration "mpz_ptr m;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "mpz_srcptr p_Var7;" type_identifier identifier ;) (declaration "mp_limb_t *pmVar8;" type_identifier (pointer_declarator "*pmVar8" * identifier) ;) (declaration "mp_limb_t *pmVar9;" type_identifier (pointer_declarator "*pmVar9" * identifier) ;) (declaration "ulong *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "mp_limb_t *pmVar11;" type_identifier (pointer_declarator "*pmVar11" * identifier) ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "mpz_srcptr new_alloc;" type_identifier identifier ;) (declaration "mp_limb_t *pmVar13;" type_identifier (pointer_declarator "*pmVar13" * identifier) ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "long lVar17;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t size;" primitive_type identifier ;) (declaration "long lVar18;" (sized_type_specifier "long" long) identifier ;) (declaration "mp_limb_t *pmVar19;" type_identifier (pointer_declarator "*pmVar19" * identifier) ;) (declaration "mp_limb_t *pmVar20;" type_identifier (pointer_declarator "*pmVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "mp_limb_t *pmVar23;" type_identifier (pointer_declarator "*pmVar23" * identifier) ;) (declaration "mp_limb_t *pmVar24;" type_identifier (pointer_declarator "*pmVar24" * identifier) ;) (declaration "mp_limb_t *pmVar25;" type_identifier (pointer_declarator "*pmVar25" * identifier) ;) (declaration "ulong uVar26;" type_identifier identifier ;) (declaration "ulong uVar27;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 auStack_78 [8];" type_identifier (array_declarator "auStack_78 [8]" identifier [ number_literal ]) ;) (declaration "mp_limb_t *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "mpz_srcptr local_68;" type_identifier identifier ;) (declaration "mpz_srcptr local_60;" type_identifier identifier ;) (declaration "mp_limb_t *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "mpz_ptr local_50;" type_identifier identifier ;) (declaration "tmp_reentrant_t *__tmp_marker;" type_identifier (pointer_declarator "*__tmp_marker" * identifier) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "puVar14 = auStack_78;" (assignment_expression "puVar14 = auStack_78" identifier = identifier) ;) (expression_statement "puVar16 = auStack_78;" (assignment_expression "puVar16 = auStack_78" identifier = identifier) ;) (expression_statement "puVar15 = auStack_78;" (assignment_expression "puVar15 = auStack_78" identifier = identifier) ;) (expression_statement "iVar6 = op1->_mp_size;" (assignment_expression "iVar6 = op1->_mp_size" identifier = (field_expression "op1->_mp_size" identifier -> field_identifier)) ;) (expression_statement "pmVar19 = (mp_limb_t *)(long)iVar6;" (assignment_expression "pmVar19 = (mp_limb_t *)(long)iVar6" identifier = (cast_expression "(mp_limb_t *)(long)iVar6" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(long)iVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "iVar21 = op2->_mp_size;" (assignment_expression "iVar21 = op2->_mp_size" identifier = (field_expression "op2->_mp_size" identifier -> field_identifier)) ;) (expression_statement "pmVar11 = (mp_limb_t *)(long)iVar21;" (assignment_expression "pmVar11 = (mp_limb_t *)(long)iVar21" identifier = (cast_expression "(mp_limb_t *)(long)iVar21" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(long)iVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "pmVar24 = op1->_mp_d;" (assignment_expression "pmVar24 = op1->_mp_d" identifier = (field_expression "op1->_mp_d" identifier -> field_identifier)) ;) (expression_statement "pmVar8 = op2->_mp_d;" (assignment_expression "pmVar8 = op2->_mp_d" identifier = (field_expression "op2->_mp_d" identifier -> field_identifier)) ;) (expression_statement "pmVar9 = res->_mp_d;" (assignment_expression "pmVar9 = res->_mp_d" identifier = (field_expression "res->_mp_d" identifier -> field_identifier)) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "__tmp_marker = (tmp_reentrant_t *)0x0;" (assignment_expression "__tmp_marker = (tmp_reentrant_t *)0x0" identifier = (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = res;" (assignment_expression "local_50 = res" identifier = identifier) ;) (if_statement "if ((long)pmVar19 < 0) {\n    pmVar13 = pmVar11;\n    op1 = op2;\n    pmVar23 = pmVar24;\n    pmVar20 = pmVar8;\n    pmVar25 = pmVar19;\n    if ((long)pmVar11 < 0) {\n      if ((long)pmVar11 <= (long)pmVar19) {\n        pmVar11 = pmVar19;\n      }\n      lVar17 = -(long)pmVar11;\n      size = (long)pmVar11 * -0x10;\n      if (size < 0x7f01) {\n        puVar16 = auStack_78 + -(size + 0x10);\n        pmVar19 = (mp_limb_t *)((long)&local_70 + -(size + 0x10));\n        pmVar20 = pmVar11;\n      }\n      else {\n        local_58 = pmVar11;\n        pmVar19 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,size);\n        pmVar20 = local_58;\n      }\n      mVar4 = *pmVar24;\n      pmVar13 = pmVar19 + -(long)pmVar20;\n      *pmVar19 = mVar4 - 1;\n      if (mVar4 == 0) {\n        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\nLAB_0011d84a:\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          uVar26 = 0;\n          if (mVar4 == 0) goto LAB_0011d42d;\n        }\n        else {\n          mVar4 = pmVar24[1];\n          pmVar19[1] = mVar4 - 1;\n          if (mVar4 == 0) {\n            if (-3 < (long)pmVar20) goto LAB_0011d53d;\n            mVar4 = pmVar24[2];\n            pmVar19[2] = mVar4 - 1;\n            lVar12 = 3;\n            while (mVar4 == 0) {\n              if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d53d;\n              mVar4 = pmVar24[lVar12];\n              pmVar19[lVar12] = mVar4 - 1;\n              lVar12 = lVar12 + 1;\n            }\n          }\n          else {\n            lVar12 = 2;\n          }\n          if ((pmVar19 != pmVar24) && ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17)) {\n            pmVar23 = pmVar24 + lVar12;\n            local_58 = pmVar19 + lVar12;\n            local_60 = (mpz_srcptr)CONCAT71(local_60._1_7_,pmVar19 + lVar12 + 2 <= pmVar23);\n            if ((pmVar19 + lVar12 + 2 <= pmVar23 || pmVar24 + lVar12 + 2 <= local_58) &&\n               (3 < ~(ulong)pmVar20 - lVar12)) {\n              local_60 = (mpz_srcptr)(lVar17 - lVar12);\n              lVar18 = 0;\n              do {\n                uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1];\n                *(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18);\n                ((undefined8 *)((long)local_58 + lVar18))[1] = uVar5;\n                lVar18 = lVar18 + 0x10;\n              } while (lVar18 != ((ulong)local_60 >> 1) * 0x10);\n              lVar12 = (long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc +\n                       lVar12;\n              if (local_60 != (mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                pmVar19[lVar12] = pmVar24[lVar12];\n              }\n            }\n            else {\n              do {\n                pmVar19[lVar12] = pmVar24[lVar12];\n                lVar12 = lVar12 + 1;\n              } while ((mp_limb_t *)-lVar12 != pmVar11);\n            }\n          }\nLAB_0011d53d:\n          uVar26 = ~(ulong)pmVar20;\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          if (mVar4 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((pmVar8 == pmVar13) || (pmVar20 == (mp_limb_t *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((pmVar8 + 1 < pmVar19 + (3 - (long)pmVar20) &&\n             pmVar19 + (1 - (long)pmVar20) < pmVar8 + 3) || (-6 < (long)pmVar20)) {\n          lVar12 = 1;\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          goto LAB_0011d42d;\n        }\n        uVar27 = 1;\n        if ((long)pmVar20 < -1) {\n          uVar27 = uVar26;\n        }\n        lVar17 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)pmVar8 + lVar17 + 8);\n          uVar5 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(pmVar19 + (1 - (long)pmVar20)) + lVar17);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);\n        lVar12 = (uVar27 & 0xfffffffffffffffe) + 1;\n        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (pmVar19 != pmVar24) {\n          if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((pmVar24 + 1 < pmVar19 + 3 && pmVar19 + 1 < pmVar24 + 3) || (-6 < (long)pmVar20)) {\n            lVar12 = 1;\n            do {\n              pmVar19[lVar12] = pmVar24[lVar12];\n              lVar12 = lVar12 + 1;\n            } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          }\n          else {\n            lVar12 = 8;\n            uVar26 = 1;\n            if ((long)pmVar20 < -1) {\n              uVar26 = ~(ulong)pmVar20;\n            }\n            do {\n              uVar5 = ((undefined8 *)((long)pmVar24 + lVar12))[1];\n              *(undefined8 *)((long)pmVar19 + lVar12) = *(undefined8 *)((long)pmVar24 + lVar12);\n              ((undefined8 *)((long)pmVar19 + lVar12))[1] = uVar5;\n              lVar12 = lVar12 + 0x10;\n            } while (lVar12 != (uVar26 >> 1) * 0x10 + 8);\n            lVar12 = (uVar26 & 0xfffffffffffffffe) + 1;\n            if (uVar26 != (uVar26 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        mVar4 = *pmVar8;\n        *pmVar13 = mVar4 - 1;\n        if (mVar4 != 0) {\n          uVar26 = ~(ulong)pmVar20;\n          goto LAB_0011d3a0;\n        }\n        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\n          uVar26 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar26 = ~(ulong)pmVar20;\n        mVar4 = pmVar8[1];\n        pmVar13[1] = mVar4 - 1;\n        if (mVar4 == 0) {\n          if (-3 < (long)pmVar20) goto LAB_0011d42d;\n          mVar4 = pmVar8[2];\n          lVar12 = 3;\n          pmVar13[2] = mVar4 - 1;\n          while (mVar4 == 0) {\n            if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d42d;\n            mVar4 = pmVar8[lVar12];\n            pmVar13[lVar12] = mVar4 - 1;\n            lVar12 = lVar12 + 1;\n          }\n        }\n        else {\n          lVar12 = 2;\n        }\n        if ((pmVar8 == pmVar13) || (SBORROW8(lVar12,lVar17) == (long)(lVar12 + (long)pmVar11) < 0))\n        goto LAB_0011d42d;\n        if ((pmVar13 + lVar12 < pmVar8 + lVar12 + 2 && pmVar8 + lVar12 < pmVar13 + lVar12 + 2) ||\n           (uVar26 - lVar12 < 4)) {\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11);\n          goto LAB_0011d42d;\n        }\n        uVar27 = lVar17 - lVar12;\n        lVar17 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(pmVar8 + lVar12) + lVar17);\n          uVar5 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(pmVar13 + lVar12) + lVar17);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);\n        lVar12 = lVar12 + (uVar27 & 0xfffffffffffffffe);\n        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      pmVar13[lVar12] = pmVar8[lVar12];\nLAB_0011d42d:\n      if ((pmVar13[uVar26] & pmVar19[uVar26]) == 0) goto code_r0x0011d43b;\n      lVar17 = uVar26 + 1;\n      if (lVar17 < local_50->_mp_alloc) {\n        puVar10 = local_50->_mp_d;\n      }\n      else {\n        *(undefined8 *)(puVar16 + -8) = 0x11d8b7;\n        local_58 = pmVar13;\n        puVar10 = (ulong *)__gmpz_realloc(local_50,uVar26 + 2);\n        pmVar13 = local_58;\n      }\n      *(undefined8 *)(puVar16 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar10,pmVar19,pmVar13,lVar17);\n      puVar2 = puVar10 + lVar17;\n      *puVar2 = 0;\n      do {\n        uVar26 = *puVar10;\n        *puVar10 = *puVar10 + 1;\n        puVar10 = puVar10 + 1;\n      } while (0xfffffffffffffffe < uVar26);\n      iVar6 = -((int)lVar17 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }\n  }\n  else {\n    pmVar13 = pmVar19;\n    pmVar23 = pmVar8;\n    pmVar20 = pmVar24;\n    pmVar25 = pmVar11;\n    if (-1 < (long)pmVar11) {\n      if ((long)pmVar19 < (long)pmVar11) {\n        if (res->_mp_alloc < iVar21) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_70 = pmVar19;\n          local_68 = op1;\n          local_58 = pmVar11;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar11);\n          pmVar24 = local_68->_mp_d;\n          pmVar11 = local_58;\n          pmVar19 = local_70;\n          iVar21 = (int)local_60;\n        }\n        iVar6 = iVar21;\n        if (pmVar9 != pmVar8) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_58 = pmVar19;\n          __gmpn_copyi(pmVar9 + (long)pmVar19,pmVar8 + (long)pmVar19,(long)pmVar11 - (long)pmVar19);\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar19 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8,pmVar19);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (res->_mp_alloc < iVar6) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_70 = pmVar11;\n          local_68 = op2;\n          local_58 = pmVar19;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar19);\n          pmVar8 = local_68->_mp_d;\n          pmVar11 = local_70;\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar9 != pmVar24) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_58 = pmVar11;\n          __gmpn_copyi(pmVar9 + (long)pmVar11,pmVar24 + (long)pmVar11,(long)pmVar19 - (long)pmVar11)\n          ;\n          pmVar11 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar11 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50->_mp_size = iVar6;\n      goto LAB_0011cf61;\n    }\n  }" if (parenthesized_expression "((long)pmVar19 < 0)" ( (binary_expression "(long)pmVar19 < 0" (cast_expression "(long)pmVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n    pmVar13 = pmVar11;\n    op1 = op2;\n    pmVar23 = pmVar24;\n    pmVar20 = pmVar8;\n    pmVar25 = pmVar19;\n    if ((long)pmVar11 < 0) {\n      if ((long)pmVar11 <= (long)pmVar19) {\n        pmVar11 = pmVar19;\n      }\n      lVar17 = -(long)pmVar11;\n      size = (long)pmVar11 * -0x10;\n      if (size < 0x7f01) {\n        puVar16 = auStack_78 + -(size + 0x10);\n        pmVar19 = (mp_limb_t *)((long)&local_70 + -(size + 0x10));\n        pmVar20 = pmVar11;\n      }\n      else {\n        local_58 = pmVar11;\n        pmVar19 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,size);\n        pmVar20 = local_58;\n      }\n      mVar4 = *pmVar24;\n      pmVar13 = pmVar19 + -(long)pmVar20;\n      *pmVar19 = mVar4 - 1;\n      if (mVar4 == 0) {\n        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\nLAB_0011d84a:\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          uVar26 = 0;\n          if (mVar4 == 0) goto LAB_0011d42d;\n        }\n        else {\n          mVar4 = pmVar24[1];\n          pmVar19[1] = mVar4 - 1;\n          if (mVar4 == 0) {\n            if (-3 < (long)pmVar20) goto LAB_0011d53d;\n            mVar4 = pmVar24[2];\n            pmVar19[2] = mVar4 - 1;\n            lVar12 = 3;\n            while (mVar4 == 0) {\n              if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d53d;\n              mVar4 = pmVar24[lVar12];\n              pmVar19[lVar12] = mVar4 - 1;\n              lVar12 = lVar12 + 1;\n            }\n          }\n          else {\n            lVar12 = 2;\n          }\n          if ((pmVar19 != pmVar24) && ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17)) {\n            pmVar23 = pmVar24 + lVar12;\n            local_58 = pmVar19 + lVar12;\n            local_60 = (mpz_srcptr)CONCAT71(local_60._1_7_,pmVar19 + lVar12 + 2 <= pmVar23);\n            if ((pmVar19 + lVar12 + 2 <= pmVar23 || pmVar24 + lVar12 + 2 <= local_58) &&\n               (3 < ~(ulong)pmVar20 - lVar12)) {\n              local_60 = (mpz_srcptr)(lVar17 - lVar12);\n              lVar18 = 0;\n              do {\n                uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1];\n                *(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18);\n                ((undefined8 *)((long)local_58 + lVar18))[1] = uVar5;\n                lVar18 = lVar18 + 0x10;\n              } while (lVar18 != ((ulong)local_60 >> 1) * 0x10);\n              lVar12 = (long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc +\n                       lVar12;\n              if (local_60 != (mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                pmVar19[lVar12] = pmVar24[lVar12];\n              }\n            }\n            else {\n              do {\n                pmVar19[lVar12] = pmVar24[lVar12];\n                lVar12 = lVar12 + 1;\n              } while ((mp_limb_t *)-lVar12 != pmVar11);\n            }\n          }\nLAB_0011d53d:\n          uVar26 = ~(ulong)pmVar20;\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          if (mVar4 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((pmVar8 == pmVar13) || (pmVar20 == (mp_limb_t *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((pmVar8 + 1 < pmVar19 + (3 - (long)pmVar20) &&\n             pmVar19 + (1 - (long)pmVar20) < pmVar8 + 3) || (-6 < (long)pmVar20)) {\n          lVar12 = 1;\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          goto LAB_0011d42d;\n        }\n        uVar27 = 1;\n        if ((long)pmVar20 < -1) {\n          uVar27 = uVar26;\n        }\n        lVar17 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)pmVar8 + lVar17 + 8);\n          uVar5 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(pmVar19 + (1 - (long)pmVar20)) + lVar17);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);\n        lVar12 = (uVar27 & 0xfffffffffffffffe) + 1;\n        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (pmVar19 != pmVar24) {\n          if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((pmVar24 + 1 < pmVar19 + 3 && pmVar19 + 1 < pmVar24 + 3) || (-6 < (long)pmVar20)) {\n            lVar12 = 1;\n            do {\n              pmVar19[lVar12] = pmVar24[lVar12];\n              lVar12 = lVar12 + 1;\n            } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          }\n          else {\n            lVar12 = 8;\n            uVar26 = 1;\n            if ((long)pmVar20 < -1) {\n              uVar26 = ~(ulong)pmVar20;\n            }\n            do {\n              uVar5 = ((undefined8 *)((long)pmVar24 + lVar12))[1];\n              *(undefined8 *)((long)pmVar19 + lVar12) = *(undefined8 *)((long)pmVar24 + lVar12);\n              ((undefined8 *)((long)pmVar19 + lVar12))[1] = uVar5;\n              lVar12 = lVar12 + 0x10;\n            } while (lVar12 != (uVar26 >> 1) * 0x10 + 8);\n            lVar12 = (uVar26 & 0xfffffffffffffffe) + 1;\n            if (uVar26 != (uVar26 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        mVar4 = *pmVar8;\n        *pmVar13 = mVar4 - 1;\n        if (mVar4 != 0) {\n          uVar26 = ~(ulong)pmVar20;\n          goto LAB_0011d3a0;\n        }\n        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\n          uVar26 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar26 = ~(ulong)pmVar20;\n        mVar4 = pmVar8[1];\n        pmVar13[1] = mVar4 - 1;\n        if (mVar4 == 0) {\n          if (-3 < (long)pmVar20) goto LAB_0011d42d;\n          mVar4 = pmVar8[2];\n          lVar12 = 3;\n          pmVar13[2] = mVar4 - 1;\n          while (mVar4 == 0) {\n            if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d42d;\n            mVar4 = pmVar8[lVar12];\n            pmVar13[lVar12] = mVar4 - 1;\n            lVar12 = lVar12 + 1;\n          }\n        }\n        else {\n          lVar12 = 2;\n        }\n        if ((pmVar8 == pmVar13) || (SBORROW8(lVar12,lVar17) == (long)(lVar12 + (long)pmVar11) < 0))\n        goto LAB_0011d42d;\n        if ((pmVar13 + lVar12 < pmVar8 + lVar12 + 2 && pmVar8 + lVar12 < pmVar13 + lVar12 + 2) ||\n           (uVar26 - lVar12 < 4)) {\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11);\n          goto LAB_0011d42d;\n        }\n        uVar27 = lVar17 - lVar12;\n        lVar17 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(pmVar8 + lVar12) + lVar17);\n          uVar5 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(pmVar13 + lVar12) + lVar17);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);\n        lVar12 = lVar12 + (uVar27 & 0xfffffffffffffffe);\n        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      pmVar13[lVar12] = pmVar8[lVar12];\nLAB_0011d42d:\n      if ((pmVar13[uVar26] & pmVar19[uVar26]) == 0) goto code_r0x0011d43b;\n      lVar17 = uVar26 + 1;\n      if (lVar17 < local_50->_mp_alloc) {\n        puVar10 = local_50->_mp_d;\n      }\n      else {\n        *(undefined8 *)(puVar16 + -8) = 0x11d8b7;\n        local_58 = pmVar13;\n        puVar10 = (ulong *)__gmpz_realloc(local_50,uVar26 + 2);\n        pmVar13 = local_58;\n      }\n      *(undefined8 *)(puVar16 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar10,pmVar19,pmVar13,lVar17);\n      puVar2 = puVar10 + lVar17;\n      *puVar2 = 0;\n      do {\n        uVar26 = *puVar10;\n        *puVar10 = *puVar10 + 1;\n        puVar10 = puVar10 + 1;\n      } while (0xfffffffffffffffe < uVar26);\n      iVar6 = -((int)lVar17 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }\n  }" { (expression_statement "pmVar13 = pmVar11;" (assignment_expression "pmVar13 = pmVar11" identifier = identifier) ;) (expression_statement "op1 = op2;" (assignment_expression "op1 = op2" identifier = identifier) ;) (expression_statement "pmVar23 = pmVar24;" (assignment_expression "pmVar23 = pmVar24" identifier = identifier) ;) (expression_statement "pmVar20 = pmVar8;" (assignment_expression "pmVar20 = pmVar8" identifier = identifier) ;) (expression_statement "pmVar25 = pmVar19;" (assignment_expression "pmVar25 = pmVar19" identifier = identifier) ;) (if_statement "if ((long)pmVar11 < 0) {\n      if ((long)pmVar11 <= (long)pmVar19) {\n        pmVar11 = pmVar19;\n      }\n      lVar17 = -(long)pmVar11;\n      size = (long)pmVar11 * -0x10;\n      if (size < 0x7f01) {\n        puVar16 = auStack_78 + -(size + 0x10);\n        pmVar19 = (mp_limb_t *)((long)&local_70 + -(size + 0x10));\n        pmVar20 = pmVar11;\n      }\n      else {\n        local_58 = pmVar11;\n        pmVar19 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,size);\n        pmVar20 = local_58;\n      }\n      mVar4 = *pmVar24;\n      pmVar13 = pmVar19 + -(long)pmVar20;\n      *pmVar19 = mVar4 - 1;\n      if (mVar4 == 0) {\n        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\nLAB_0011d84a:\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          uVar26 = 0;\n          if (mVar4 == 0) goto LAB_0011d42d;\n        }\n        else {\n          mVar4 = pmVar24[1];\n          pmVar19[1] = mVar4 - 1;\n          if (mVar4 == 0) {\n            if (-3 < (long)pmVar20) goto LAB_0011d53d;\n            mVar4 = pmVar24[2];\n            pmVar19[2] = mVar4 - 1;\n            lVar12 = 3;\n            while (mVar4 == 0) {\n              if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d53d;\n              mVar4 = pmVar24[lVar12];\n              pmVar19[lVar12] = mVar4 - 1;\n              lVar12 = lVar12 + 1;\n            }\n          }\n          else {\n            lVar12 = 2;\n          }\n          if ((pmVar19 != pmVar24) && ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17)) {\n            pmVar23 = pmVar24 + lVar12;\n            local_58 = pmVar19 + lVar12;\n            local_60 = (mpz_srcptr)CONCAT71(local_60._1_7_,pmVar19 + lVar12 + 2 <= pmVar23);\n            if ((pmVar19 + lVar12 + 2 <= pmVar23 || pmVar24 + lVar12 + 2 <= local_58) &&\n               (3 < ~(ulong)pmVar20 - lVar12)) {\n              local_60 = (mpz_srcptr)(lVar17 - lVar12);\n              lVar18 = 0;\n              do {\n                uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1];\n                *(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18);\n                ((undefined8 *)((long)local_58 + lVar18))[1] = uVar5;\n                lVar18 = lVar18 + 0x10;\n              } while (lVar18 != ((ulong)local_60 >> 1) * 0x10);\n              lVar12 = (long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc +\n                       lVar12;\n              if (local_60 != (mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                pmVar19[lVar12] = pmVar24[lVar12];\n              }\n            }\n            else {\n              do {\n                pmVar19[lVar12] = pmVar24[lVar12];\n                lVar12 = lVar12 + 1;\n              } while ((mp_limb_t *)-lVar12 != pmVar11);\n            }\n          }\nLAB_0011d53d:\n          uVar26 = ~(ulong)pmVar20;\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          if (mVar4 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((pmVar8 == pmVar13) || (pmVar20 == (mp_limb_t *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((pmVar8 + 1 < pmVar19 + (3 - (long)pmVar20) &&\n             pmVar19 + (1 - (long)pmVar20) < pmVar8 + 3) || (-6 < (long)pmVar20)) {\n          lVar12 = 1;\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          goto LAB_0011d42d;\n        }\n        uVar27 = 1;\n        if ((long)pmVar20 < -1) {\n          uVar27 = uVar26;\n        }\n        lVar17 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)pmVar8 + lVar17 + 8);\n          uVar5 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(pmVar19 + (1 - (long)pmVar20)) + lVar17);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);\n        lVar12 = (uVar27 & 0xfffffffffffffffe) + 1;\n        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (pmVar19 != pmVar24) {\n          if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((pmVar24 + 1 < pmVar19 + 3 && pmVar19 + 1 < pmVar24 + 3) || (-6 < (long)pmVar20)) {\n            lVar12 = 1;\n            do {\n              pmVar19[lVar12] = pmVar24[lVar12];\n              lVar12 = lVar12 + 1;\n            } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          }\n          else {\n            lVar12 = 8;\n            uVar26 = 1;\n            if ((long)pmVar20 < -1) {\n              uVar26 = ~(ulong)pmVar20;\n            }\n            do {\n              uVar5 = ((undefined8 *)((long)pmVar24 + lVar12))[1];\n              *(undefined8 *)((long)pmVar19 + lVar12) = *(undefined8 *)((long)pmVar24 + lVar12);\n              ((undefined8 *)((long)pmVar19 + lVar12))[1] = uVar5;\n              lVar12 = lVar12 + 0x10;\n            } while (lVar12 != (uVar26 >> 1) * 0x10 + 8);\n            lVar12 = (uVar26 & 0xfffffffffffffffe) + 1;\n            if (uVar26 != (uVar26 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        mVar4 = *pmVar8;\n        *pmVar13 = mVar4 - 1;\n        if (mVar4 != 0) {\n          uVar26 = ~(ulong)pmVar20;\n          goto LAB_0011d3a0;\n        }\n        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\n          uVar26 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar26 = ~(ulong)pmVar20;\n        mVar4 = pmVar8[1];\n        pmVar13[1] = mVar4 - 1;\n        if (mVar4 == 0) {\n          if (-3 < (long)pmVar20) goto LAB_0011d42d;\n          mVar4 = pmVar8[2];\n          lVar12 = 3;\n          pmVar13[2] = mVar4 - 1;\n          while (mVar4 == 0) {\n            if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d42d;\n            mVar4 = pmVar8[lVar12];\n            pmVar13[lVar12] = mVar4 - 1;\n            lVar12 = lVar12 + 1;\n          }\n        }\n        else {\n          lVar12 = 2;\n        }\n        if ((pmVar8 == pmVar13) || (SBORROW8(lVar12,lVar17) == (long)(lVar12 + (long)pmVar11) < 0))\n        goto LAB_0011d42d;\n        if ((pmVar13 + lVar12 < pmVar8 + lVar12 + 2 && pmVar8 + lVar12 < pmVar13 + lVar12 + 2) ||\n           (uVar26 - lVar12 < 4)) {\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11);\n          goto LAB_0011d42d;\n        }\n        uVar27 = lVar17 - lVar12;\n        lVar17 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(pmVar8 + lVar12) + lVar17);\n          uVar5 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(pmVar13 + lVar12) + lVar17);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);\n        lVar12 = lVar12 + (uVar27 & 0xfffffffffffffffe);\n        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      pmVar13[lVar12] = pmVar8[lVar12];\nLAB_0011d42d:\n      if ((pmVar13[uVar26] & pmVar19[uVar26]) == 0) goto code_r0x0011d43b;\n      lVar17 = uVar26 + 1;\n      if (lVar17 < local_50->_mp_alloc) {\n        puVar10 = local_50->_mp_d;\n      }\n      else {\n        *(undefined8 *)(puVar16 + -8) = 0x11d8b7;\n        local_58 = pmVar13;\n        puVar10 = (ulong *)__gmpz_realloc(local_50,uVar26 + 2);\n        pmVar13 = local_58;\n      }\n      *(undefined8 *)(puVar16 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar10,pmVar19,pmVar13,lVar17);\n      puVar2 = puVar10 + lVar17;\n      *puVar2 = 0;\n      do {\n        uVar26 = *puVar10;\n        *puVar10 = *puVar10 + 1;\n        puVar10 = puVar10 + 1;\n      } while (0xfffffffffffffffe < uVar26);\n      iVar6 = -((int)lVar17 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }" if (parenthesized_expression "((long)pmVar11 < 0)" ( (binary_expression "(long)pmVar11 < 0" (cast_expression "(long)pmVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n      if ((long)pmVar11 <= (long)pmVar19) {\n        pmVar11 = pmVar19;\n      }\n      lVar17 = -(long)pmVar11;\n      size = (long)pmVar11 * -0x10;\n      if (size < 0x7f01) {\n        puVar16 = auStack_78 + -(size + 0x10);\n        pmVar19 = (mp_limb_t *)((long)&local_70 + -(size + 0x10));\n        pmVar20 = pmVar11;\n      }\n      else {\n        local_58 = pmVar11;\n        pmVar19 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,size);\n        pmVar20 = local_58;\n      }\n      mVar4 = *pmVar24;\n      pmVar13 = pmVar19 + -(long)pmVar20;\n      *pmVar19 = mVar4 - 1;\n      if (mVar4 == 0) {\n        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\nLAB_0011d84a:\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          uVar26 = 0;\n          if (mVar4 == 0) goto LAB_0011d42d;\n        }\n        else {\n          mVar4 = pmVar24[1];\n          pmVar19[1] = mVar4 - 1;\n          if (mVar4 == 0) {\n            if (-3 < (long)pmVar20) goto LAB_0011d53d;\n            mVar4 = pmVar24[2];\n            pmVar19[2] = mVar4 - 1;\n            lVar12 = 3;\n            while (mVar4 == 0) {\n              if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d53d;\n              mVar4 = pmVar24[lVar12];\n              pmVar19[lVar12] = mVar4 - 1;\n              lVar12 = lVar12 + 1;\n            }\n          }\n          else {\n            lVar12 = 2;\n          }\n          if ((pmVar19 != pmVar24) && ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17)) {\n            pmVar23 = pmVar24 + lVar12;\n            local_58 = pmVar19 + lVar12;\n            local_60 = (mpz_srcptr)CONCAT71(local_60._1_7_,pmVar19 + lVar12 + 2 <= pmVar23);\n            if ((pmVar19 + lVar12 + 2 <= pmVar23 || pmVar24 + lVar12 + 2 <= local_58) &&\n               (3 < ~(ulong)pmVar20 - lVar12)) {\n              local_60 = (mpz_srcptr)(lVar17 - lVar12);\n              lVar18 = 0;\n              do {\n                uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1];\n                *(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18);\n                ((undefined8 *)((long)local_58 + lVar18))[1] = uVar5;\n                lVar18 = lVar18 + 0x10;\n              } while (lVar18 != ((ulong)local_60 >> 1) * 0x10);\n              lVar12 = (long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc +\n                       lVar12;\n              if (local_60 != (mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                pmVar19[lVar12] = pmVar24[lVar12];\n              }\n            }\n            else {\n              do {\n                pmVar19[lVar12] = pmVar24[lVar12];\n                lVar12 = lVar12 + 1;\n              } while ((mp_limb_t *)-lVar12 != pmVar11);\n            }\n          }\nLAB_0011d53d:\n          uVar26 = ~(ulong)pmVar20;\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          if (mVar4 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((pmVar8 == pmVar13) || (pmVar20 == (mp_limb_t *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((pmVar8 + 1 < pmVar19 + (3 - (long)pmVar20) &&\n             pmVar19 + (1 - (long)pmVar20) < pmVar8 + 3) || (-6 < (long)pmVar20)) {\n          lVar12 = 1;\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          goto LAB_0011d42d;\n        }\n        uVar27 = 1;\n        if ((long)pmVar20 < -1) {\n          uVar27 = uVar26;\n        }\n        lVar17 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)pmVar8 + lVar17 + 8);\n          uVar5 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(pmVar19 + (1 - (long)pmVar20)) + lVar17);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);\n        lVar12 = (uVar27 & 0xfffffffffffffffe) + 1;\n        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (pmVar19 != pmVar24) {\n          if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((pmVar24 + 1 < pmVar19 + 3 && pmVar19 + 1 < pmVar24 + 3) || (-6 < (long)pmVar20)) {\n            lVar12 = 1;\n            do {\n              pmVar19[lVar12] = pmVar24[lVar12];\n              lVar12 = lVar12 + 1;\n            } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          }\n          else {\n            lVar12 = 8;\n            uVar26 = 1;\n            if ((long)pmVar20 < -1) {\n              uVar26 = ~(ulong)pmVar20;\n            }\n            do {\n              uVar5 = ((undefined8 *)((long)pmVar24 + lVar12))[1];\n              *(undefined8 *)((long)pmVar19 + lVar12) = *(undefined8 *)((long)pmVar24 + lVar12);\n              ((undefined8 *)((long)pmVar19 + lVar12))[1] = uVar5;\n              lVar12 = lVar12 + 0x10;\n            } while (lVar12 != (uVar26 >> 1) * 0x10 + 8);\n            lVar12 = (uVar26 & 0xfffffffffffffffe) + 1;\n            if (uVar26 != (uVar26 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        mVar4 = *pmVar8;\n        *pmVar13 = mVar4 - 1;\n        if (mVar4 != 0) {\n          uVar26 = ~(ulong)pmVar20;\n          goto LAB_0011d3a0;\n        }\n        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\n          uVar26 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar26 = ~(ulong)pmVar20;\n        mVar4 = pmVar8[1];\n        pmVar13[1] = mVar4 - 1;\n        if (mVar4 == 0) {\n          if (-3 < (long)pmVar20) goto LAB_0011d42d;\n          mVar4 = pmVar8[2];\n          lVar12 = 3;\n          pmVar13[2] = mVar4 - 1;\n          while (mVar4 == 0) {\n            if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d42d;\n            mVar4 = pmVar8[lVar12];\n            pmVar13[lVar12] = mVar4 - 1;\n            lVar12 = lVar12 + 1;\n          }\n        }\n        else {\n          lVar12 = 2;\n        }\n        if ((pmVar8 == pmVar13) || (SBORROW8(lVar12,lVar17) == (long)(lVar12 + (long)pmVar11) < 0))\n        goto LAB_0011d42d;\n        if ((pmVar13 + lVar12 < pmVar8 + lVar12 + 2 && pmVar8 + lVar12 < pmVar13 + lVar12 + 2) ||\n           (uVar26 - lVar12 < 4)) {\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11);\n          goto LAB_0011d42d;\n        }\n        uVar27 = lVar17 - lVar12;\n        lVar17 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(pmVar8 + lVar12) + lVar17);\n          uVar5 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(pmVar13 + lVar12) + lVar17);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);\n        lVar12 = lVar12 + (uVar27 & 0xfffffffffffffffe);\n        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      pmVar13[lVar12] = pmVar8[lVar12];\nLAB_0011d42d:\n      if ((pmVar13[uVar26] & pmVar19[uVar26]) == 0) goto code_r0x0011d43b;\n      lVar17 = uVar26 + 1;\n      if (lVar17 < local_50->_mp_alloc) {\n        puVar10 = local_50->_mp_d;\n      }\n      else {\n        *(undefined8 *)(puVar16 + -8) = 0x11d8b7;\n        local_58 = pmVar13;\n        puVar10 = (ulong *)__gmpz_realloc(local_50,uVar26 + 2);\n        pmVar13 = local_58;\n      }\n      *(undefined8 *)(puVar16 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar10,pmVar19,pmVar13,lVar17);\n      puVar2 = puVar10 + lVar17;\n      *puVar2 = 0;\n      do {\n        uVar26 = *puVar10;\n        *puVar10 = *puVar10 + 1;\n        puVar10 = puVar10 + 1;\n      } while (0xfffffffffffffffe < uVar26);\n      iVar6 = -((int)lVar17 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }" { (if_statement "if ((long)pmVar11 <= (long)pmVar19) {\n        pmVar11 = pmVar19;\n      }" if (parenthesized_expression "((long)pmVar11 <= (long)pmVar19)" ( (binary_expression "(long)pmVar11 <= (long)pmVar19" (cast_expression "(long)pmVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) <= (cast_expression "(long)pmVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n        pmVar11 = pmVar19;\n      }" { (expression_statement "pmVar11 = pmVar19;" (assignment_expression "pmVar11 = pmVar19" identifier = identifier) ;) })) (expression_statement "lVar17 = -(long)pmVar11;" (assignment_expression "lVar17 = -(long)pmVar11" identifier = (unary_expression "-(long)pmVar11" - (cast_expression "(long)pmVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "size = (long)pmVar11 * -0x10;" (assignment_expression "size = (long)pmVar11 * -0x10" identifier = (binary_expression "(long)pmVar11 * -0x10" (cast_expression "(long)pmVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) ;) (if_statement "if (size < 0x7f01) {\n        puVar16 = auStack_78 + -(size + 0x10);\n        pmVar19 = (mp_limb_t *)((long)&local_70 + -(size + 0x10));\n        pmVar20 = pmVar11;\n      }\n      else {\n        local_58 = pmVar11;\n        pmVar19 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,size);\n        pmVar20 = local_58;\n      }" if (parenthesized_expression "(size < 0x7f01)" ( (binary_expression "size < 0x7f01" identifier < number_literal) )) (compound_statement "{\n        puVar16 = auStack_78 + -(size + 0x10);\n        pmVar19 = (mp_limb_t *)((long)&local_70 + -(size + 0x10));\n        pmVar20 = pmVar11;\n      }" { (expression_statement "puVar16 = auStack_78 + -(size + 0x10);" (assignment_expression "puVar16 = auStack_78 + -(size + 0x10)" identifier = (binary_expression "auStack_78 + -(size + 0x10)" identifier + (unary_expression "-(size + 0x10)" - (parenthesized_expression "(size + 0x10)" ( (binary_expression "size + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pmVar19 = (mp_limb_t *)((long)&local_70 + -(size + 0x10));" (assignment_expression "pmVar19 = (mp_limb_t *)((long)&local_70 + -(size + 0x10))" identifier = (cast_expression "(mp_limb_t *)((long)&local_70 + -(size + 0x10))" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_70 + -(size + 0x10))" ( (binary_expression "(long)&local_70 + -(size + 0x10)" (cast_expression "(long)&local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_70" & identifier)) + (unary_expression "-(size + 0x10)" - (parenthesized_expression "(size + 0x10)" ( (binary_expression "size + 0x10" identifier + number_literal) )))) )))) ;) (expression_statement "pmVar20 = pmVar11;" (assignment_expression "pmVar20 = pmVar11" identifier = identifier) ;) }) (else_clause "else {\n        local_58 = pmVar11;\n        pmVar19 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,size);\n        pmVar20 = local_58;\n      }" else (compound_statement "{\n        local_58 = pmVar11;\n        pmVar19 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,size);\n        pmVar20 = local_58;\n      }" { (expression_statement "local_58 = pmVar11;" (assignment_expression "local_58 = pmVar11" identifier = identifier) ;) (expression_statement "pmVar19 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,size);" (assignment_expression "pmVar19 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,size)" identifier = (cast_expression "(mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,size)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmp_tmp_reentrant_alloc(&__tmp_marker,size)" identifier (argument_list "(&__tmp_marker,size)" ( (pointer_expression "&__tmp_marker" & identifier) , identifier ))))) ;) (expression_statement "pmVar20 = local_58;" (assignment_expression "pmVar20 = local_58" identifier = identifier) ;) }))) (expression_statement "mVar4 = *pmVar24;" (assignment_expression "mVar4 = *pmVar24" identifier = (pointer_expression "*pmVar24" * identifier)) ;) (expression_statement "pmVar13 = pmVar19 + -(long)pmVar20;" (assignment_expression "pmVar13 = pmVar19 + -(long)pmVar20" identifier = (binary_expression "pmVar19 + -(long)pmVar20" identifier + (unary_expression "-(long)pmVar20" - (cast_expression "(long)pmVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)))) ;) (expression_statement "*pmVar19 = mVar4 - 1;" (assignment_expression "*pmVar19 = mVar4 - 1" (pointer_expression "*pmVar19" * identifier) = (binary_expression "mVar4 - 1" identifier - number_literal)) ;) (if_statement "if (mVar4 == 0) {\n        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\nLAB_0011d84a:\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          uVar26 = 0;\n          if (mVar4 == 0) goto LAB_0011d42d;\n        }\n        else {\n          mVar4 = pmVar24[1];\n          pmVar19[1] = mVar4 - 1;\n          if (mVar4 == 0) {\n            if (-3 < (long)pmVar20) goto LAB_0011d53d;\n            mVar4 = pmVar24[2];\n            pmVar19[2] = mVar4 - 1;\n            lVar12 = 3;\n            while (mVar4 == 0) {\n              if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d53d;\n              mVar4 = pmVar24[lVar12];\n              pmVar19[lVar12] = mVar4 - 1;\n              lVar12 = lVar12 + 1;\n            }\n          }\n          else {\n            lVar12 = 2;\n          }\n          if ((pmVar19 != pmVar24) && ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17)) {\n            pmVar23 = pmVar24 + lVar12;\n            local_58 = pmVar19 + lVar12;\n            local_60 = (mpz_srcptr)CONCAT71(local_60._1_7_,pmVar19 + lVar12 + 2 <= pmVar23);\n            if ((pmVar19 + lVar12 + 2 <= pmVar23 || pmVar24 + lVar12 + 2 <= local_58) &&\n               (3 < ~(ulong)pmVar20 - lVar12)) {\n              local_60 = (mpz_srcptr)(lVar17 - lVar12);\n              lVar18 = 0;\n              do {\n                uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1];\n                *(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18);\n                ((undefined8 *)((long)local_58 + lVar18))[1] = uVar5;\n                lVar18 = lVar18 + 0x10;\n              } while (lVar18 != ((ulong)local_60 >> 1) * 0x10);\n              lVar12 = (long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc +\n                       lVar12;\n              if (local_60 != (mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                pmVar19[lVar12] = pmVar24[lVar12];\n              }\n            }\n            else {\n              do {\n                pmVar19[lVar12] = pmVar24[lVar12];\n                lVar12 = lVar12 + 1;\n              } while ((mp_limb_t *)-lVar12 != pmVar11);\n            }\n          }\nLAB_0011d53d:\n          uVar26 = ~(ulong)pmVar20;\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          if (mVar4 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((pmVar8 == pmVar13) || (pmVar20 == (mp_limb_t *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((pmVar8 + 1 < pmVar19 + (3 - (long)pmVar20) &&\n             pmVar19 + (1 - (long)pmVar20) < pmVar8 + 3) || (-6 < (long)pmVar20)) {\n          lVar12 = 1;\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          goto LAB_0011d42d;\n        }\n        uVar27 = 1;\n        if ((long)pmVar20 < -1) {\n          uVar27 = uVar26;\n        }\n        lVar17 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)pmVar8 + lVar17 + 8);\n          uVar5 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(pmVar19 + (1 - (long)pmVar20)) + lVar17);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);\n        lVar12 = (uVar27 & 0xfffffffffffffffe) + 1;\n        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (pmVar19 != pmVar24) {\n          if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((pmVar24 + 1 < pmVar19 + 3 && pmVar19 + 1 < pmVar24 + 3) || (-6 < (long)pmVar20)) {\n            lVar12 = 1;\n            do {\n              pmVar19[lVar12] = pmVar24[lVar12];\n              lVar12 = lVar12 + 1;\n            } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          }\n          else {\n            lVar12 = 8;\n            uVar26 = 1;\n            if ((long)pmVar20 < -1) {\n              uVar26 = ~(ulong)pmVar20;\n            }\n            do {\n              uVar5 = ((undefined8 *)((long)pmVar24 + lVar12))[1];\n              *(undefined8 *)((long)pmVar19 + lVar12) = *(undefined8 *)((long)pmVar24 + lVar12);\n              ((undefined8 *)((long)pmVar19 + lVar12))[1] = uVar5;\n              lVar12 = lVar12 + 0x10;\n            } while (lVar12 != (uVar26 >> 1) * 0x10 + 8);\n            lVar12 = (uVar26 & 0xfffffffffffffffe) + 1;\n            if (uVar26 != (uVar26 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        mVar4 = *pmVar8;\n        *pmVar13 = mVar4 - 1;\n        if (mVar4 != 0) {\n          uVar26 = ~(ulong)pmVar20;\n          goto LAB_0011d3a0;\n        }\n        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\n          uVar26 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar26 = ~(ulong)pmVar20;\n        mVar4 = pmVar8[1];\n        pmVar13[1] = mVar4 - 1;\n        if (mVar4 == 0) {\n          if (-3 < (long)pmVar20) goto LAB_0011d42d;\n          mVar4 = pmVar8[2];\n          lVar12 = 3;\n          pmVar13[2] = mVar4 - 1;\n          while (mVar4 == 0) {\n            if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d42d;\n            mVar4 = pmVar8[lVar12];\n            pmVar13[lVar12] = mVar4 - 1;\n            lVar12 = lVar12 + 1;\n          }\n        }\n        else {\n          lVar12 = 2;\n        }\n        if ((pmVar8 == pmVar13) || (SBORROW8(lVar12,lVar17) == (long)(lVar12 + (long)pmVar11) < 0))\n        goto LAB_0011d42d;\n        if ((pmVar13 + lVar12 < pmVar8 + lVar12 + 2 && pmVar8 + lVar12 < pmVar13 + lVar12 + 2) ||\n           (uVar26 - lVar12 < 4)) {\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11);\n          goto LAB_0011d42d;\n        }\n        uVar27 = lVar17 - lVar12;\n        lVar17 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(pmVar8 + lVar12) + lVar17);\n          uVar5 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(pmVar13 + lVar12) + lVar17);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);\n        lVar12 = lVar12 + (uVar27 & 0xfffffffffffffffe);\n        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }" if (parenthesized_expression "(mVar4 == 0)" ( (binary_expression "mVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\nLAB_0011d84a:\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          uVar26 = 0;\n          if (mVar4 == 0) goto LAB_0011d42d;\n        }\n        else {\n          mVar4 = pmVar24[1];\n          pmVar19[1] = mVar4 - 1;\n          if (mVar4 == 0) {\n            if (-3 < (long)pmVar20) goto LAB_0011d53d;\n            mVar4 = pmVar24[2];\n            pmVar19[2] = mVar4 - 1;\n            lVar12 = 3;\n            while (mVar4 == 0) {\n              if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d53d;\n              mVar4 = pmVar24[lVar12];\n              pmVar19[lVar12] = mVar4 - 1;\n              lVar12 = lVar12 + 1;\n            }\n          }\n          else {\n            lVar12 = 2;\n          }\n          if ((pmVar19 != pmVar24) && ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17)) {\n            pmVar23 = pmVar24 + lVar12;\n            local_58 = pmVar19 + lVar12;\n            local_60 = (mpz_srcptr)CONCAT71(local_60._1_7_,pmVar19 + lVar12 + 2 <= pmVar23);\n            if ((pmVar19 + lVar12 + 2 <= pmVar23 || pmVar24 + lVar12 + 2 <= local_58) &&\n               (3 < ~(ulong)pmVar20 - lVar12)) {\n              local_60 = (mpz_srcptr)(lVar17 - lVar12);\n              lVar18 = 0;\n              do {\n                uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1];\n                *(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18);\n                ((undefined8 *)((long)local_58 + lVar18))[1] = uVar5;\n                lVar18 = lVar18 + 0x10;\n              } while (lVar18 != ((ulong)local_60 >> 1) * 0x10);\n              lVar12 = (long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc +\n                       lVar12;\n              if (local_60 != (mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                pmVar19[lVar12] = pmVar24[lVar12];\n              }\n            }\n            else {\n              do {\n                pmVar19[lVar12] = pmVar24[lVar12];\n                lVar12 = lVar12 + 1;\n              } while ((mp_limb_t *)-lVar12 != pmVar11);\n            }\n          }\nLAB_0011d53d:\n          uVar26 = ~(ulong)pmVar20;\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          if (mVar4 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((pmVar8 == pmVar13) || (pmVar20 == (mp_limb_t *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((pmVar8 + 1 < pmVar19 + (3 - (long)pmVar20) &&\n             pmVar19 + (1 - (long)pmVar20) < pmVar8 + 3) || (-6 < (long)pmVar20)) {\n          lVar12 = 1;\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          goto LAB_0011d42d;\n        }\n        uVar27 = 1;\n        if ((long)pmVar20 < -1) {\n          uVar27 = uVar26;\n        }\n        lVar17 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)pmVar8 + lVar17 + 8);\n          uVar5 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(pmVar19 + (1 - (long)pmVar20)) + lVar17);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);\n        lVar12 = (uVar27 & 0xfffffffffffffffe) + 1;\n        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }" { (if_statement "if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\nLAB_0011d84a:\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          uVar26 = 0;\n          if (mVar4 == 0) goto LAB_0011d42d;\n        }\n        else {\n          mVar4 = pmVar24[1];\n          pmVar19[1] = mVar4 - 1;\n          if (mVar4 == 0) {\n            if (-3 < (long)pmVar20) goto LAB_0011d53d;\n            mVar4 = pmVar24[2];\n            pmVar19[2] = mVar4 - 1;\n            lVar12 = 3;\n            while (mVar4 == 0) {\n              if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d53d;\n              mVar4 = pmVar24[lVar12];\n              pmVar19[lVar12] = mVar4 - 1;\n              lVar12 = lVar12 + 1;\n            }\n          }\n          else {\n            lVar12 = 2;\n          }\n          if ((pmVar19 != pmVar24) && ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17)) {\n            pmVar23 = pmVar24 + lVar12;\n            local_58 = pmVar19 + lVar12;\n            local_60 = (mpz_srcptr)CONCAT71(local_60._1_7_,pmVar19 + lVar12 + 2 <= pmVar23);\n            if ((pmVar19 + lVar12 + 2 <= pmVar23 || pmVar24 + lVar12 + 2 <= local_58) &&\n               (3 < ~(ulong)pmVar20 - lVar12)) {\n              local_60 = (mpz_srcptr)(lVar17 - lVar12);\n              lVar18 = 0;\n              do {\n                uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1];\n                *(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18);\n                ((undefined8 *)((long)local_58 + lVar18))[1] = uVar5;\n                lVar18 = lVar18 + 0x10;\n              } while (lVar18 != ((ulong)local_60 >> 1) * 0x10);\n              lVar12 = (long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc +\n                       lVar12;\n              if (local_60 != (mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                pmVar19[lVar12] = pmVar24[lVar12];\n              }\n            }\n            else {\n              do {\n                pmVar19[lVar12] = pmVar24[lVar12];\n                lVar12 = lVar12 + 1;\n              } while ((mp_limb_t *)-lVar12 != pmVar11);\n            }\n          }\nLAB_0011d53d:\n          uVar26 = ~(ulong)pmVar20;\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          if (mVar4 == 0) goto LAB_0011d551;\n        }" if (parenthesized_expression "(pmVar20 == (mp_limb_t *)0xffffffffffffffff)" ( (binary_expression "pmVar20 == (mp_limb_t *)0xffffffffffffffff" identifier == (cast_expression "(mp_limb_t *)0xffffffffffffffff" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0011d84a:\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          uVar26 = 0;\n          if (mVar4 == 0) goto LAB_0011d42d;\n        }" { (labeled_statement "LAB_0011d84a:\n          mVar4 = *pmVar8;" statement_identifier : (expression_statement "mVar4 = *pmVar8;" (assignment_expression "mVar4 = *pmVar8" identifier = (pointer_expression "*pmVar8" * identifier)) ;)) (expression_statement "*pmVar13 = mVar4 - 1;" (assignment_expression "*pmVar13 = mVar4 - 1" (pointer_expression "*pmVar13" * identifier) = (binary_expression "mVar4 - 1" identifier - number_literal)) ;) (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;) (if_statement "if (mVar4 == 0) goto LAB_0011d42d;" if (parenthesized_expression "(mVar4 == 0)" ( (binary_expression "mVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;)) }) (else_clause "else {\n          mVar4 = pmVar24[1];\n          pmVar19[1] = mVar4 - 1;\n          if (mVar4 == 0) {\n            if (-3 < (long)pmVar20) goto LAB_0011d53d;\n            mVar4 = pmVar24[2];\n            pmVar19[2] = mVar4 - 1;\n            lVar12 = 3;\n            while (mVar4 == 0) {\n              if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d53d;\n              mVar4 = pmVar24[lVar12];\n              pmVar19[lVar12] = mVar4 - 1;\n              lVar12 = lVar12 + 1;\n            }\n          }\n          else {\n            lVar12 = 2;\n          }\n          if ((pmVar19 != pmVar24) && ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17)) {\n            pmVar23 = pmVar24 + lVar12;\n            local_58 = pmVar19 + lVar12;\n            local_60 = (mpz_srcptr)CONCAT71(local_60._1_7_,pmVar19 + lVar12 + 2 <= pmVar23);\n            if ((pmVar19 + lVar12 + 2 <= pmVar23 || pmVar24 + lVar12 + 2 <= local_58) &&\n               (3 < ~(ulong)pmVar20 - lVar12)) {\n              local_60 = (mpz_srcptr)(lVar17 - lVar12);\n              lVar18 = 0;\n              do {\n                uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1];\n                *(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18);\n                ((undefined8 *)((long)local_58 + lVar18))[1] = uVar5;\n                lVar18 = lVar18 + 0x10;\n              } while (lVar18 != ((ulong)local_60 >> 1) * 0x10);\n              lVar12 = (long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc +\n                       lVar12;\n              if (local_60 != (mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                pmVar19[lVar12] = pmVar24[lVar12];\n              }\n            }\n            else {\n              do {\n                pmVar19[lVar12] = pmVar24[lVar12];\n                lVar12 = lVar12 + 1;\n              } while ((mp_limb_t *)-lVar12 != pmVar11);\n            }\n          }\nLAB_0011d53d:\n          uVar26 = ~(ulong)pmVar20;\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          if (mVar4 == 0) goto LAB_0011d551;\n        }" else (compound_statement "{\n          mVar4 = pmVar24[1];\n          pmVar19[1] = mVar4 - 1;\n          if (mVar4 == 0) {\n            if (-3 < (long)pmVar20) goto LAB_0011d53d;\n            mVar4 = pmVar24[2];\n            pmVar19[2] = mVar4 - 1;\n            lVar12 = 3;\n            while (mVar4 == 0) {\n              if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d53d;\n              mVar4 = pmVar24[lVar12];\n              pmVar19[lVar12] = mVar4 - 1;\n              lVar12 = lVar12 + 1;\n            }\n          }\n          else {\n            lVar12 = 2;\n          }\n          if ((pmVar19 != pmVar24) && ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17)) {\n            pmVar23 = pmVar24 + lVar12;\n            local_58 = pmVar19 + lVar12;\n            local_60 = (mpz_srcptr)CONCAT71(local_60._1_7_,pmVar19 + lVar12 + 2 <= pmVar23);\n            if ((pmVar19 + lVar12 + 2 <= pmVar23 || pmVar24 + lVar12 + 2 <= local_58) &&\n               (3 < ~(ulong)pmVar20 - lVar12)) {\n              local_60 = (mpz_srcptr)(lVar17 - lVar12);\n              lVar18 = 0;\n              do {\n                uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1];\n                *(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18);\n                ((undefined8 *)((long)local_58 + lVar18))[1] = uVar5;\n                lVar18 = lVar18 + 0x10;\n              } while (lVar18 != ((ulong)local_60 >> 1) * 0x10);\n              lVar12 = (long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc +\n                       lVar12;\n              if (local_60 != (mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                pmVar19[lVar12] = pmVar24[lVar12];\n              }\n            }\n            else {\n              do {\n                pmVar19[lVar12] = pmVar24[lVar12];\n                lVar12 = lVar12 + 1;\n              } while ((mp_limb_t *)-lVar12 != pmVar11);\n            }\n          }\nLAB_0011d53d:\n          uVar26 = ~(ulong)pmVar20;\n          mVar4 = *pmVar8;\n          *pmVar13 = mVar4 - 1;\n          if (mVar4 == 0) goto LAB_0011d551;\n        }" { (expression_statement "mVar4 = pmVar24[1];" (assignment_expression "mVar4 = pmVar24[1]" identifier = (subscript_expression "pmVar24[1]" identifier [ number_literal ])) ;) (expression_statement "pmVar19[1] = mVar4 - 1;" (assignment_expression "pmVar19[1] = mVar4 - 1" (subscript_expression "pmVar19[1]" identifier [ number_literal ]) = (binary_expression "mVar4 - 1" identifier - number_literal)) ;) (if_statement "if (mVar4 == 0) {\n            if (-3 < (long)pmVar20) goto LAB_0011d53d;\n            mVar4 = pmVar24[2];\n            pmVar19[2] = mVar4 - 1;\n            lVar12 = 3;\n            while (mVar4 == 0) {\n              if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d53d;\n              mVar4 = pmVar24[lVar12];\n              pmVar19[lVar12] = mVar4 - 1;\n              lVar12 = lVar12 + 1;\n            }\n          }\n          else {\n            lVar12 = 2;\n          }" if (parenthesized_expression "(mVar4 == 0)" ( (binary_expression "mVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            if (-3 < (long)pmVar20) goto LAB_0011d53d;\n            mVar4 = pmVar24[2];\n            pmVar19[2] = mVar4 - 1;\n            lVar12 = 3;\n            while (mVar4 == 0) {\n              if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d53d;\n              mVar4 = pmVar24[lVar12];\n              pmVar19[lVar12] = mVar4 - 1;\n              lVar12 = lVar12 + 1;\n            }\n          }" { (if_statement "if (-3 < (long)pmVar20) goto LAB_0011d53d;" if (parenthesized_expression "(-3 < (long)pmVar20)" ( (binary_expression "-3 < (long)pmVar20" number_literal < (cast_expression "(long)pmVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_0011d53d;" goto statement_identifier ;)) (expression_statement "mVar4 = pmVar24[2];" (assignment_expression "mVar4 = pmVar24[2]" identifier = (subscript_expression "pmVar24[2]" identifier [ number_literal ])) ;) (expression_statement "pmVar19[2] = mVar4 - 1;" (assignment_expression "pmVar19[2] = mVar4 - 1" (subscript_expression "pmVar19[2]" identifier [ number_literal ]) = (binary_expression "mVar4 - 1" identifier - number_literal)) ;) (expression_statement "lVar12 = 3;" (assignment_expression "lVar12 = 3" identifier = number_literal) ;) (while_statement "while (mVar4 == 0) {\n              if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d53d;\n              mVar4 = pmVar24[lVar12];\n              pmVar19[lVar12] = mVar4 - 1;\n              lVar12 = lVar12 + 1;\n            }" while (parenthesized_expression "(mVar4 == 0)" ( (binary_expression "mVar4 == 0" identifier == number_literal) )) (compound_statement "{\n              if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d53d;\n              mVar4 = pmVar24[lVar12];\n              pmVar19[lVar12] = mVar4 - 1;\n              lVar12 = lVar12 + 1;\n            }" { (if_statement "if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d53d;" if (parenthesized_expression "((mp_limb_t *)-lVar12 == pmVar11)" ( (binary_expression "(mp_limb_t *)-lVar12 == pmVar11" (cast_expression "(mp_limb_t *)-lVar12" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar12" - identifier)) == identifier) )) (goto_statement "goto LAB_0011d53d;" goto statement_identifier ;)) (expression_statement "mVar4 = pmVar24[lVar12];" (assignment_expression "mVar4 = pmVar24[lVar12]" identifier = (subscript_expression "pmVar24[lVar12]" identifier [ identifier ])) ;) (expression_statement "pmVar19[lVar12] = mVar4 - 1;" (assignment_expression "pmVar19[lVar12] = mVar4 - 1" (subscript_expression "pmVar19[lVar12]" identifier [ identifier ]) = (binary_expression "mVar4 - 1" identifier - number_literal)) ;) (expression_statement "lVar12 = lVar12 + 1;" (assignment_expression "lVar12 = lVar12 + 1" identifier = (binary_expression "lVar12 + 1" identifier + number_literal)) ;) })) }) (else_clause "else {\n            lVar12 = 2;\n          }" else (compound_statement "{\n            lVar12 = 2;\n          }" { (expression_statement "lVar12 = 2;" (assignment_expression "lVar12 = 2" identifier = number_literal) ;) }))) (if_statement "if ((pmVar19 != pmVar24) && ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17)) {\n            pmVar23 = pmVar24 + lVar12;\n            local_58 = pmVar19 + lVar12;\n            local_60 = (mpz_srcptr)CONCAT71(local_60._1_7_,pmVar19 + lVar12 + 2 <= pmVar23);\n            if ((pmVar19 + lVar12 + 2 <= pmVar23 || pmVar24 + lVar12 + 2 <= local_58) &&\n               (3 < ~(ulong)pmVar20 - lVar12)) {\n              local_60 = (mpz_srcptr)(lVar17 - lVar12);\n              lVar18 = 0;\n              do {\n                uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1];\n                *(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18);\n                ((undefined8 *)((long)local_58 + lVar18))[1] = uVar5;\n                lVar18 = lVar18 + 0x10;\n              } while (lVar18 != ((ulong)local_60 >> 1) * 0x10);\n              lVar12 = (long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc +\n                       lVar12;\n              if (local_60 != (mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                pmVar19[lVar12] = pmVar24[lVar12];\n              }\n            }\n            else {\n              do {\n                pmVar19[lVar12] = pmVar24[lVar12];\n                lVar12 = lVar12 + 1;\n              } while ((mp_limb_t *)-lVar12 != pmVar11);\n            }\n          }" if (parenthesized_expression "((pmVar19 != pmVar24) && ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17))" ( (binary_expression "(pmVar19 != pmVar24) && ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17)" (parenthesized_expression "(pmVar19 != pmVar24)" ( (binary_expression "pmVar19 != pmVar24" identifier != identifier) )) && (parenthesized_expression "((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17)" ( (binary_expression "(mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17" (binary_expression "(mp_limb_t *)-lVar12 != pmVar11" (cast_expression "(mp_limb_t *)-lVar12" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar12" - identifier)) != identifier) && (binary_expression "lVar12 <= lVar17" identifier <= identifier)) ))) )) (compound_statement "{\n            pmVar23 = pmVar24 + lVar12;\n            local_58 = pmVar19 + lVar12;\n            local_60 = (mpz_srcptr)CONCAT71(local_60._1_7_,pmVar19 + lVar12 + 2 <= pmVar23);\n            if ((pmVar19 + lVar12 + 2 <= pmVar23 || pmVar24 + lVar12 + 2 <= local_58) &&\n               (3 < ~(ulong)pmVar20 - lVar12)) {\n              local_60 = (mpz_srcptr)(lVar17 - lVar12);\n              lVar18 = 0;\n              do {\n                uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1];\n                *(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18);\n                ((undefined8 *)((long)local_58 + lVar18))[1] = uVar5;\n                lVar18 = lVar18 + 0x10;\n              } while (lVar18 != ((ulong)local_60 >> 1) * 0x10);\n              lVar12 = (long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc +\n                       lVar12;\n              if (local_60 != (mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                pmVar19[lVar12] = pmVar24[lVar12];\n              }\n            }\n            else {\n              do {\n                pmVar19[lVar12] = pmVar24[lVar12];\n                lVar12 = lVar12 + 1;\n              } while ((mp_limb_t *)-lVar12 != pmVar11);\n            }\n          }" { (expression_statement "pmVar23 = pmVar24 + lVar12;" (assignment_expression "pmVar23 = pmVar24 + lVar12" identifier = (binary_expression "pmVar24 + lVar12" identifier + identifier)) ;) (expression_statement "local_58 = pmVar19 + lVar12;" (assignment_expression "local_58 = pmVar19 + lVar12" identifier = (binary_expression "pmVar19 + lVar12" identifier + identifier)) ;) (expression_statement "local_60 = (mpz_srcptr)CONCAT71(local_60._1_7_,pmVar19 + lVar12 + 2 <= pmVar23);" (assignment_expression "local_60 = (mpz_srcptr)CONCAT71(local_60._1_7_,pmVar19 + lVar12 + 2 <= pmVar23)" identifier = (cast_expression "(mpz_srcptr)CONCAT71(local_60._1_7_,pmVar19 + lVar12 + 2 <= pmVar23)" ( (type_descriptor "mpz_srcptr" type_identifier) ) (call_expression "CONCAT71(local_60._1_7_,pmVar19 + lVar12 + 2 <= pmVar23)" identifier (argument_list "(local_60._1_7_,pmVar19 + lVar12 + 2 <= pmVar23)" ( (field_expression "local_60._1_7_" identifier . field_identifier) , (binary_expression "pmVar19 + lVar12 + 2 <= pmVar23" (binary_expression "pmVar19 + lVar12 + 2" (binary_expression "pmVar19 + lVar12" identifier + identifier) + number_literal) <= identifier) ))))) ;) (if_statement "if ((pmVar19 + lVar12 + 2 <= pmVar23 || pmVar24 + lVar12 + 2 <= local_58) &&\n               (3 < ~(ulong)pmVar20 - lVar12)) {\n              local_60 = (mpz_srcptr)(lVar17 - lVar12);\n              lVar18 = 0;\n              do {\n                uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1];\n                *(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18);\n                ((undefined8 *)((long)local_58 + lVar18))[1] = uVar5;\n                lVar18 = lVar18 + 0x10;\n              } while (lVar18 != ((ulong)local_60 >> 1) * 0x10);\n              lVar12 = (long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc +\n                       lVar12;\n              if (local_60 != (mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                pmVar19[lVar12] = pmVar24[lVar12];\n              }\n            }\n            else {\n              do {\n                pmVar19[lVar12] = pmVar24[lVar12];\n                lVar12 = lVar12 + 1;\n              } while ((mp_limb_t *)-lVar12 != pmVar11);\n            }" if (parenthesized_expression "((pmVar19 + lVar12 + 2 <= pmVar23 || pmVar24 + lVar12 + 2 <= local_58) &&\n               (3 < ~(ulong)pmVar20 - lVar12))" ( (binary_expression "(pmVar19 + lVar12 + 2 <= pmVar23 || pmVar24 + lVar12 + 2 <= local_58) &&\n               (3 < ~(ulong)pmVar20 - lVar12)" (parenthesized_expression "(pmVar19 + lVar12 + 2 <= pmVar23 || pmVar24 + lVar12 + 2 <= local_58)" ( (binary_expression "pmVar19 + lVar12 + 2 <= pmVar23 || pmVar24 + lVar12 + 2 <= local_58" (binary_expression "pmVar19 + lVar12 + 2 <= pmVar23" (binary_expression "pmVar19 + lVar12 + 2" (binary_expression "pmVar19 + lVar12" identifier + identifier) + number_literal) <= identifier) || (binary_expression "pmVar24 + lVar12 + 2 <= local_58" (binary_expression "pmVar24 + lVar12 + 2" (binary_expression "pmVar24 + lVar12" identifier + identifier) + number_literal) <= identifier)) )) && (parenthesized_expression "(3 < ~(ulong)pmVar20 - lVar12)" ( (binary_expression "3 < ~(ulong)pmVar20 - lVar12" number_literal < (binary_expression "~(ulong)pmVar20 - lVar12" (unary_expression "~(ulong)pmVar20" ~ (cast_expression "(ulong)pmVar20" ( (type_descriptor "ulong" type_identifier) ) identifier)) - identifier)) ))) )) (compound_statement "{\n              local_60 = (mpz_srcptr)(lVar17 - lVar12);\n              lVar18 = 0;\n              do {\n                uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1];\n                *(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18);\n                ((undefined8 *)((long)local_58 + lVar18))[1] = uVar5;\n                lVar18 = lVar18 + 0x10;\n              } while (lVar18 != ((ulong)local_60 >> 1) * 0x10);\n              lVar12 = (long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc +\n                       lVar12;\n              if (local_60 != (mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                pmVar19[lVar12] = pmVar24[lVar12];\n              }\n            }" { (expression_statement "local_60 = (mpz_srcptr)(lVar17 - lVar12);" (assignment_expression "local_60 = (mpz_srcptr)(lVar17 - lVar12)" identifier = (call_expression "(mpz_srcptr)(lVar17 - lVar12)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "(lVar17 - lVar12)" ( (binary_expression "lVar17 - lVar12" identifier - identifier) )))) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n                uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1];\n                *(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18);\n                ((undefined8 *)((long)local_58 + lVar18))[1] = uVar5;\n                lVar18 = lVar18 + 0x10;\n              } while (lVar18 != ((ulong)local_60 >> 1) * 0x10);" do (compound_statement "{\n                uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1];\n                *(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18);\n                ((undefined8 *)((long)local_58 + lVar18))[1] = uVar5;\n                lVar18 = lVar18 + 0x10;\n              }" { (expression_statement "uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1];" (assignment_expression "uVar5 = ((undefined8 *)((long)pmVar23 + lVar18))[1]" identifier = (subscript_expression "((undefined8 *)((long)pmVar23 + lVar18))[1]" (parenthesized_expression "((undefined8 *)((long)pmVar23 + lVar18))" ( (cast_expression "(undefined8 *)((long)pmVar23 + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pmVar23 + lVar18)" ( (binary_expression "(long)pmVar23 + lVar18" (cast_expression "(long)pmVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18);" (assignment_expression "*(undefined8 *)((long)local_58 + lVar18) = *(undefined8 *)((long)pmVar23 + lVar18)" (pointer_expression "*(undefined8 *)((long)local_58 + lVar18)" * (cast_expression "(undefined8 *)((long)local_58 + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + lVar18)" ( (binary_expression "(long)local_58 + lVar18" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (pointer_expression "*(undefined8 *)((long)pmVar23 + lVar18)" * (cast_expression "(undefined8 *)((long)pmVar23 + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pmVar23 + lVar18)" ( (binary_expression "(long)pmVar23 + lVar18" (cast_expression "(long)pmVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ;) (expression_statement "((undefined8 *)((long)local_58 + lVar18))[1] = uVar5;" (assignment_expression "((undefined8 *)((long)local_58 + lVar18))[1] = uVar5" (subscript_expression "((undefined8 *)((long)local_58 + lVar18))[1]" (parenthesized_expression "((undefined8 *)((long)local_58 + lVar18))" ( (cast_expression "(undefined8 *)((long)local_58 + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + lVar18)" ( (binary_expression "(long)local_58 + lVar18" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = identifier) ;) (expression_statement "lVar18 = lVar18 + 0x10;" (assignment_expression "lVar18 = lVar18 + 0x10" identifier = (binary_expression "lVar18 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar18 != ((ulong)local_60 >> 1) * 0x10)" ( (binary_expression "lVar18 != ((ulong)local_60 >> 1) * 0x10" identifier != (binary_expression "((ulong)local_60 >> 1) * 0x10" (parenthesized_expression "((ulong)local_60 >> 1)" ( (binary_expression "(ulong)local_60 >> 1" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) )) * number_literal)) )) ;) (expression_statement "lVar12 = (long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc +\n                       lVar12;" (assignment_expression "lVar12 = (long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc +\n                       lVar12" identifier = (binary_expression "(long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc +\n                       lVar12" (cast_expression "(long)&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc" & (field_expression "((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))->_mp_alloc" (parenthesized_expression "((mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))" ( (call_expression "(mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "((ulong)local_60 & 0xfffffffffffffffe)" ( (binary_expression "(ulong)local_60 & 0xfffffffffffffffe" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) ))) )) -> field_identifier))) + identifier)) ;) (if_statement "if (local_60 != (mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                pmVar19[lVar12] = pmVar24[lVar12];\n              }" if (parenthesized_expression "(local_60 != (mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe))" ( (binary_expression "local_60 != (mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)" identifier != (call_expression "(mpz_srcptr)((ulong)local_60 & 0xfffffffffffffffe)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "((ulong)local_60 & 0xfffffffffffffffe)" ( (binary_expression "(ulong)local_60 & 0xfffffffffffffffe" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )))) )) (compound_statement "{\nLAB_0011d534:\n                pmVar19[lVar12] = pmVar24[lVar12];\n              }" { (labeled_statement "LAB_0011d534:\n                pmVar19[lVar12] = pmVar24[lVar12];" statement_identifier : (expression_statement "pmVar19[lVar12] = pmVar24[lVar12];" (assignment_expression "pmVar19[lVar12] = pmVar24[lVar12]" (subscript_expression "pmVar19[lVar12]" identifier [ identifier ]) = (subscript_expression "pmVar24[lVar12]" identifier [ identifier ])) ;)) })) }) (else_clause "else {\n              do {\n                pmVar19[lVar12] = pmVar24[lVar12];\n                lVar12 = lVar12 + 1;\n              } while ((mp_limb_t *)-lVar12 != pmVar11);\n            }" else (compound_statement "{\n              do {\n                pmVar19[lVar12] = pmVar24[lVar12];\n                lVar12 = lVar12 + 1;\n              } while ((mp_limb_t *)-lVar12 != pmVar11);\n            }" { (do_statement "do {\n                pmVar19[lVar12] = pmVar24[lVar12];\n                lVar12 = lVar12 + 1;\n              } while ((mp_limb_t *)-lVar12 != pmVar11);" do (compound_statement "{\n                pmVar19[lVar12] = pmVar24[lVar12];\n                lVar12 = lVar12 + 1;\n              }" { (expression_statement "pmVar19[lVar12] = pmVar24[lVar12];" (assignment_expression "pmVar19[lVar12] = pmVar24[lVar12]" (subscript_expression "pmVar19[lVar12]" identifier [ identifier ]) = (subscript_expression "pmVar24[lVar12]" identifier [ identifier ])) ;) (expression_statement "lVar12 = lVar12 + 1;" (assignment_expression "lVar12 = lVar12 + 1" identifier = (binary_expression "lVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((mp_limb_t *)-lVar12 != pmVar11)" ( (binary_expression "(mp_limb_t *)-lVar12 != pmVar11" (cast_expression "(mp_limb_t *)-lVar12" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar12" - identifier)) != identifier) )) ;) }))) })) (labeled_statement "LAB_0011d53d:\n          uVar26 = ~(ulong)pmVar20;" statement_identifier : (expression_statement "uVar26 = ~(ulong)pmVar20;" (assignment_expression "uVar26 = ~(ulong)pmVar20" identifier = (unary_expression "~(ulong)pmVar20" ~ (cast_expression "(ulong)pmVar20" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;)) (expression_statement "mVar4 = *pmVar8;" (assignment_expression "mVar4 = *pmVar8" identifier = (pointer_expression "*pmVar8" * identifier)) ;) (expression_statement "*pmVar13 = mVar4 - 1;" (assignment_expression "*pmVar13 = mVar4 - 1" (pointer_expression "*pmVar13" * identifier) = (binary_expression "mVar4 - 1" identifier - number_literal)) ;) (if_statement "if (mVar4 == 0) goto LAB_0011d551;" if (parenthesized_expression "(mVar4 == 0)" ( (binary_expression "mVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011d551;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0011d3a0:\n        if ((pmVar8 == pmVar13) || (pmVar20 == (mp_limb_t *)0xffffffffffffffff)) goto LAB_0011d42d;" statement_identifier : (if_statement "if ((pmVar8 == pmVar13) || (pmVar20 == (mp_limb_t *)0xffffffffffffffff)) goto LAB_0011d42d;" if (parenthesized_expression "((pmVar8 == pmVar13) || (pmVar20 == (mp_limb_t *)0xffffffffffffffff))" ( (binary_expression "(pmVar8 == pmVar13) || (pmVar20 == (mp_limb_t *)0xffffffffffffffff)" (parenthesized_expression "(pmVar8 == pmVar13)" ( (binary_expression "pmVar8 == pmVar13" identifier == identifier) )) || (parenthesized_expression "(pmVar20 == (mp_limb_t *)0xffffffffffffffff)" ( (binary_expression "pmVar20 == (mp_limb_t *)0xffffffffffffffff" identifier == (cast_expression "(mp_limb_t *)0xffffffffffffffff" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;))) (if_statement "if ((pmVar8 + 1 < pmVar19 + (3 - (long)pmVar20) &&\n             pmVar19 + (1 - (long)pmVar20) < pmVar8 + 3) || (-6 < (long)pmVar20)) {\n          lVar12 = 1;\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          goto LAB_0011d42d;\n        }" if (parenthesized_expression "((pmVar8 + 1 < pmVar19 + (3 - (long)pmVar20) &&\n             pmVar19 + (1 - (long)pmVar20) < pmVar8 + 3) || (-6 < (long)pmVar20))" ( (binary_expression "(pmVar8 + 1 < pmVar19 + (3 - (long)pmVar20) &&\n             pmVar19 + (1 - (long)pmVar20) < pmVar8 + 3) || (-6 < (long)pmVar20)" (parenthesized_expression "(pmVar8 + 1 < pmVar19 + (3 - (long)pmVar20) &&\n             pmVar19 + (1 - (long)pmVar20) < pmVar8 + 3)" ( (binary_expression "pmVar8 + 1 < pmVar19 + (3 - (long)pmVar20) &&\n             pmVar19 + (1 - (long)pmVar20) < pmVar8 + 3" (binary_expression "pmVar8 + 1 < pmVar19 + (3 - (long)pmVar20)" (binary_expression "pmVar8 + 1" identifier + number_literal) < (binary_expression "pmVar19 + (3 - (long)pmVar20)" identifier + (parenthesized_expression "(3 - (long)pmVar20)" ( (binary_expression "3 - (long)pmVar20" number_literal - (cast_expression "(long)pmVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) && (binary_expression "pmVar19 + (1 - (long)pmVar20) < pmVar8 + 3" (binary_expression "pmVar19 + (1 - (long)pmVar20)" identifier + (parenthesized_expression "(1 - (long)pmVar20)" ( (binary_expression "1 - (long)pmVar20" number_literal - (cast_expression "(long)pmVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) < (binary_expression "pmVar8 + 3" identifier + number_literal))) )) || (parenthesized_expression "(-6 < (long)pmVar20)" ( (binary_expression "-6 < (long)pmVar20" number_literal < (cast_expression "(long)pmVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) )) (compound_statement "{\n          lVar12 = 1;\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          goto LAB_0011d42d;\n        }" { (expression_statement "lVar12 = 1;" (assignment_expression "lVar12 = 1" identifier = number_literal) ;) (do_statement "do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);" do (compound_statement "{\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          }" { (expression_statement "pmVar13[lVar12] = pmVar8[lVar12];" (assignment_expression "pmVar13[lVar12] = pmVar8[lVar12]" (subscript_expression "pmVar13[lVar12]" identifier [ identifier ]) = (subscript_expression "pmVar8[lVar12]" identifier [ identifier ])) ;) (expression_statement "lVar12 = lVar12 + 1;" (assignment_expression "lVar12 = lVar12 + 1" identifier = (binary_expression "lVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17)" ( (binary_expression "(mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17" (binary_expression "(mp_limb_t *)-lVar12 != pmVar11" (cast_expression "(mp_limb_t *)-lVar12" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar12" - identifier)) != identifier) && (binary_expression "lVar12 <= lVar17" identifier <= identifier)) )) ;) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;) })) (expression_statement "uVar27 = 1;" (assignment_expression "uVar27 = 1" identifier = number_literal) ;) (if_statement "if ((long)pmVar20 < -1) {\n          uVar27 = uVar26;\n        }" if (parenthesized_expression "((long)pmVar20 < -1)" ( (binary_expression "(long)pmVar20 < -1" (cast_expression "(long)pmVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n          uVar27 = uVar26;\n        }" { (expression_statement "uVar27 = uVar26;" (assignment_expression "uVar27 = uVar26" identifier = identifier) ;) })) (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" identifier = number_literal) ;) (do_statement "do {\n          puVar3 = (undefined8 *)((long)pmVar8 + lVar17 + 8);\n          uVar5 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(pmVar19 + (1 - (long)pmVar20)) + lVar17);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);" do (compound_statement "{\n          puVar3 = (undefined8 *)((long)pmVar8 + lVar17 + 8);\n          uVar5 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(pmVar19 + (1 - (long)pmVar20)) + lVar17);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        }" { (expression_statement "puVar3 = (undefined8 *)((long)pmVar8 + lVar17 + 8);" (assignment_expression "puVar3 = (undefined8 *)((long)pmVar8 + lVar17 + 8)" identifier = (cast_expression "(undefined8 *)((long)pmVar8 + lVar17 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pmVar8 + lVar17 + 8)" ( (binary_expression "(long)pmVar8 + lVar17 + 8" (binary_expression "(long)pmVar8 + lVar17" (cast_expression "(long)pmVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar5 = puVar3[1];" (assignment_expression "uVar5 = puVar3[1]" identifier = (subscript_expression "puVar3[1]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = (undefined8 *)((long)(pmVar19 + (1 - (long)pmVar20)) + lVar17);" (assignment_expression "puVar1 = (undefined8 *)((long)(pmVar19 + (1 - (long)pmVar20)) + lVar17)" identifier = (cast_expression "(undefined8 *)((long)(pmVar19 + (1 - (long)pmVar20)) + lVar17)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(pmVar19 + (1 - (long)pmVar20)) + lVar17)" ( (binary_expression "(long)(pmVar19 + (1 - (long)pmVar20)) + lVar17" (cast_expression "(long)(pmVar19 + (1 - (long)pmVar20))" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pmVar19 + (1 - (long)pmVar20))" ( (binary_expression "pmVar19 + (1 - (long)pmVar20)" identifier + (parenthesized_expression "(1 - (long)pmVar20)" ( (binary_expression "1 - (long)pmVar20" number_literal - (cast_expression "(long)pmVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ))) + identifier) )))) ;) (expression_statement "*puVar1 = *puVar3;" (assignment_expression "*puVar1 = *puVar3" (pointer_expression "*puVar1" * identifier) = (pointer_expression "*puVar3" * identifier)) ;) (expression_statement "puVar1[1] = uVar5;" (assignment_expression "puVar1[1] = uVar5" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "lVar17 = lVar17 + 0x10;" (assignment_expression "lVar17 = lVar17 + 0x10" identifier = (binary_expression "lVar17 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar17 != (uVar27 >> 1) * 0x10)" ( (binary_expression "lVar17 != (uVar27 >> 1) * 0x10" identifier != (binary_expression "(uVar27 >> 1) * 0x10" (parenthesized_expression "(uVar27 >> 1)" ( (binary_expression "uVar27 >> 1" identifier >> number_literal) )) * number_literal)) )) ;) (expression_statement "lVar12 = (uVar27 & 0xfffffffffffffffe) + 1;" (assignment_expression "lVar12 = (uVar27 & 0xfffffffffffffffe) + 1" identifier = (binary_expression "(uVar27 & 0xfffffffffffffffe) + 1" (parenthesized_expression "(uVar27 & 0xfffffffffffffffe)" ( (binary_expression "uVar27 & 0xfffffffffffffffe" identifier & number_literal) )) + number_literal)) ;) (if_statement "if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;" if (parenthesized_expression "(uVar27 == (uVar27 & 0xfffffffffffffffe))" ( (binary_expression "uVar27 == (uVar27 & 0xfffffffffffffffe)" identifier == (parenthesized_expression "(uVar27 & 0xfffffffffffffffe)" ( (binary_expression "uVar27 & 0xfffffffffffffffe" identifier & number_literal) ))) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;)) }) (else_clause "else {\n        if (pmVar19 != pmVar24) {\n          if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((pmVar24 + 1 < pmVar19 + 3 && pmVar19 + 1 < pmVar24 + 3) || (-6 < (long)pmVar20)) {\n            lVar12 = 1;\n            do {\n              pmVar19[lVar12] = pmVar24[lVar12];\n              lVar12 = lVar12 + 1;\n            } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          }\n          else {\n            lVar12 = 8;\n            uVar26 = 1;\n            if ((long)pmVar20 < -1) {\n              uVar26 = ~(ulong)pmVar20;\n            }\n            do {\n              uVar5 = ((undefined8 *)((long)pmVar24 + lVar12))[1];\n              *(undefined8 *)((long)pmVar19 + lVar12) = *(undefined8 *)((long)pmVar24 + lVar12);\n              ((undefined8 *)((long)pmVar19 + lVar12))[1] = uVar5;\n              lVar12 = lVar12 + 0x10;\n            } while (lVar12 != (uVar26 >> 1) * 0x10 + 8);\n            lVar12 = (uVar26 & 0xfffffffffffffffe) + 1;\n            if (uVar26 != (uVar26 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        mVar4 = *pmVar8;\n        *pmVar13 = mVar4 - 1;\n        if (mVar4 != 0) {\n          uVar26 = ~(ulong)pmVar20;\n          goto LAB_0011d3a0;\n        }\n        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\n          uVar26 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar26 = ~(ulong)pmVar20;\n        mVar4 = pmVar8[1];\n        pmVar13[1] = mVar4 - 1;\n        if (mVar4 == 0) {\n          if (-3 < (long)pmVar20) goto LAB_0011d42d;\n          mVar4 = pmVar8[2];\n          lVar12 = 3;\n          pmVar13[2] = mVar4 - 1;\n          while (mVar4 == 0) {\n            if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d42d;\n            mVar4 = pmVar8[lVar12];\n            pmVar13[lVar12] = mVar4 - 1;\n            lVar12 = lVar12 + 1;\n          }\n        }\n        else {\n          lVar12 = 2;\n        }\n        if ((pmVar8 == pmVar13) || (SBORROW8(lVar12,lVar17) == (long)(lVar12 + (long)pmVar11) < 0))\n        goto LAB_0011d42d;\n        if ((pmVar13 + lVar12 < pmVar8 + lVar12 + 2 && pmVar8 + lVar12 < pmVar13 + lVar12 + 2) ||\n           (uVar26 - lVar12 < 4)) {\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11);\n          goto LAB_0011d42d;\n        }\n        uVar27 = lVar17 - lVar12;\n        lVar17 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(pmVar8 + lVar12) + lVar17);\n          uVar5 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(pmVar13 + lVar12) + lVar17);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);\n        lVar12 = lVar12 + (uVar27 & 0xfffffffffffffffe);\n        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }" else (compound_statement "{\n        if (pmVar19 != pmVar24) {\n          if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((pmVar24 + 1 < pmVar19 + 3 && pmVar19 + 1 < pmVar24 + 3) || (-6 < (long)pmVar20)) {\n            lVar12 = 1;\n            do {\n              pmVar19[lVar12] = pmVar24[lVar12];\n              lVar12 = lVar12 + 1;\n            } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          }\n          else {\n            lVar12 = 8;\n            uVar26 = 1;\n            if ((long)pmVar20 < -1) {\n              uVar26 = ~(ulong)pmVar20;\n            }\n            do {\n              uVar5 = ((undefined8 *)((long)pmVar24 + lVar12))[1];\n              *(undefined8 *)((long)pmVar19 + lVar12) = *(undefined8 *)((long)pmVar24 + lVar12);\n              ((undefined8 *)((long)pmVar19 + lVar12))[1] = uVar5;\n              lVar12 = lVar12 + 0x10;\n            } while (lVar12 != (uVar26 >> 1) * 0x10 + 8);\n            lVar12 = (uVar26 & 0xfffffffffffffffe) + 1;\n            if (uVar26 != (uVar26 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        mVar4 = *pmVar8;\n        *pmVar13 = mVar4 - 1;\n        if (mVar4 != 0) {\n          uVar26 = ~(ulong)pmVar20;\n          goto LAB_0011d3a0;\n        }\n        if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\n          uVar26 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar26 = ~(ulong)pmVar20;\n        mVar4 = pmVar8[1];\n        pmVar13[1] = mVar4 - 1;\n        if (mVar4 == 0) {\n          if (-3 < (long)pmVar20) goto LAB_0011d42d;\n          mVar4 = pmVar8[2];\n          lVar12 = 3;\n          pmVar13[2] = mVar4 - 1;\n          while (mVar4 == 0) {\n            if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d42d;\n            mVar4 = pmVar8[lVar12];\n            pmVar13[lVar12] = mVar4 - 1;\n            lVar12 = lVar12 + 1;\n          }\n        }\n        else {\n          lVar12 = 2;\n        }\n        if ((pmVar8 == pmVar13) || (SBORROW8(lVar12,lVar17) == (long)(lVar12 + (long)pmVar11) < 0))\n        goto LAB_0011d42d;\n        if ((pmVar13 + lVar12 < pmVar8 + lVar12 + 2 && pmVar8 + lVar12 < pmVar13 + lVar12 + 2) ||\n           (uVar26 - lVar12 < 4)) {\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11);\n          goto LAB_0011d42d;\n        }\n        uVar27 = lVar17 - lVar12;\n        lVar17 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(pmVar8 + lVar12) + lVar17);\n          uVar5 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(pmVar13 + lVar12) + lVar17);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);\n        lVar12 = lVar12 + (uVar27 & 0xfffffffffffffffe);\n        if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }" { (if_statement "if (pmVar19 != pmVar24) {\n          if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((pmVar24 + 1 < pmVar19 + 3 && pmVar19 + 1 < pmVar24 + 3) || (-6 < (long)pmVar20)) {\n            lVar12 = 1;\n            do {\n              pmVar19[lVar12] = pmVar24[lVar12];\n              lVar12 = lVar12 + 1;\n            } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          }\n          else {\n            lVar12 = 8;\n            uVar26 = 1;\n            if ((long)pmVar20 < -1) {\n              uVar26 = ~(ulong)pmVar20;\n            }\n            do {\n              uVar5 = ((undefined8 *)((long)pmVar24 + lVar12))[1];\n              *(undefined8 *)((long)pmVar19 + lVar12) = *(undefined8 *)((long)pmVar24 + lVar12);\n              ((undefined8 *)((long)pmVar19 + lVar12))[1] = uVar5;\n              lVar12 = lVar12 + 0x10;\n            } while (lVar12 != (uVar26 >> 1) * 0x10 + 8);\n            lVar12 = (uVar26 & 0xfffffffffffffffe) + 1;\n            if (uVar26 != (uVar26 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }" if (parenthesized_expression "(pmVar19 != pmVar24)" ( (binary_expression "pmVar19 != pmVar24" identifier != identifier) )) (compound_statement "{\n          if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((pmVar24 + 1 < pmVar19 + 3 && pmVar19 + 1 < pmVar24 + 3) || (-6 < (long)pmVar20)) {\n            lVar12 = 1;\n            do {\n              pmVar19[lVar12] = pmVar24[lVar12];\n              lVar12 = lVar12 + 1;\n            } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          }\n          else {\n            lVar12 = 8;\n            uVar26 = 1;\n            if ((long)pmVar20 < -1) {\n              uVar26 = ~(ulong)pmVar20;\n            }\n            do {\n              uVar5 = ((undefined8 *)((long)pmVar24 + lVar12))[1];\n              *(undefined8 *)((long)pmVar19 + lVar12) = *(undefined8 *)((long)pmVar24 + lVar12);\n              ((undefined8 *)((long)pmVar19 + lVar12))[1] = uVar5;\n              lVar12 = lVar12 + 0x10;\n            } while (lVar12 != (uVar26 >> 1) * 0x10 + 8);\n            lVar12 = (uVar26 & 0xfffffffffffffffe) + 1;\n            if (uVar26 != (uVar26 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }" { (if_statement "if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011d84a;" if (parenthesized_expression "(pmVar20 == (mp_limb_t *)0xffffffffffffffff)" ( (binary_expression "pmVar20 == (mp_limb_t *)0xffffffffffffffff" identifier == (cast_expression "(mp_limb_t *)0xffffffffffffffff" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011d84a;" goto statement_identifier ;)) (if_statement "if ((pmVar24 + 1 < pmVar19 + 3 && pmVar19 + 1 < pmVar24 + 3) || (-6 < (long)pmVar20)) {\n            lVar12 = 1;\n            do {\n              pmVar19[lVar12] = pmVar24[lVar12];\n              lVar12 = lVar12 + 1;\n            } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          }\n          else {\n            lVar12 = 8;\n            uVar26 = 1;\n            if ((long)pmVar20 < -1) {\n              uVar26 = ~(ulong)pmVar20;\n            }\n            do {\n              uVar5 = ((undefined8 *)((long)pmVar24 + lVar12))[1];\n              *(undefined8 *)((long)pmVar19 + lVar12) = *(undefined8 *)((long)pmVar24 + lVar12);\n              ((undefined8 *)((long)pmVar19 + lVar12))[1] = uVar5;\n              lVar12 = lVar12 + 0x10;\n            } while (lVar12 != (uVar26 >> 1) * 0x10 + 8);\n            lVar12 = (uVar26 & 0xfffffffffffffffe) + 1;\n            if (uVar26 != (uVar26 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }" if (parenthesized_expression "((pmVar24 + 1 < pmVar19 + 3 && pmVar19 + 1 < pmVar24 + 3) || (-6 < (long)pmVar20))" ( (binary_expression "(pmVar24 + 1 < pmVar19 + 3 && pmVar19 + 1 < pmVar24 + 3) || (-6 < (long)pmVar20)" (parenthesized_expression "(pmVar24 + 1 < pmVar19 + 3 && pmVar19 + 1 < pmVar24 + 3)" ( (binary_expression "pmVar24 + 1 < pmVar19 + 3 && pmVar19 + 1 < pmVar24 + 3" (binary_expression "pmVar24 + 1 < pmVar19 + 3" (binary_expression "pmVar24 + 1" identifier + number_literal) < (binary_expression "pmVar19 + 3" identifier + number_literal)) && (binary_expression "pmVar19 + 1 < pmVar24 + 3" (binary_expression "pmVar19 + 1" identifier + number_literal) < (binary_expression "pmVar24 + 3" identifier + number_literal))) )) || (parenthesized_expression "(-6 < (long)pmVar20)" ( (binary_expression "-6 < (long)pmVar20" number_literal < (cast_expression "(long)pmVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) )) (compound_statement "{\n            lVar12 = 1;\n            do {\n              pmVar19[lVar12] = pmVar24[lVar12];\n              lVar12 = lVar12 + 1;\n            } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);\n          }" { (expression_statement "lVar12 = 1;" (assignment_expression "lVar12 = 1" identifier = number_literal) ;) (do_statement "do {\n              pmVar19[lVar12] = pmVar24[lVar12];\n              lVar12 = lVar12 + 1;\n            } while ((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17);" do (compound_statement "{\n              pmVar19[lVar12] = pmVar24[lVar12];\n              lVar12 = lVar12 + 1;\n            }" { (expression_statement "pmVar19[lVar12] = pmVar24[lVar12];" (assignment_expression "pmVar19[lVar12] = pmVar24[lVar12]" (subscript_expression "pmVar19[lVar12]" identifier [ identifier ]) = (subscript_expression "pmVar24[lVar12]" identifier [ identifier ])) ;) (expression_statement "lVar12 = lVar12 + 1;" (assignment_expression "lVar12 = lVar12 + 1" identifier = (binary_expression "lVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17)" ( (binary_expression "(mp_limb_t *)-lVar12 != pmVar11 && lVar12 <= lVar17" (binary_expression "(mp_limb_t *)-lVar12 != pmVar11" (cast_expression "(mp_limb_t *)-lVar12" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar12" - identifier)) != identifier) && (binary_expression "lVar12 <= lVar17" identifier <= identifier)) )) ;) }) (else_clause "else {\n            lVar12 = 8;\n            uVar26 = 1;\n            if ((long)pmVar20 < -1) {\n              uVar26 = ~(ulong)pmVar20;\n            }\n            do {\n              uVar5 = ((undefined8 *)((long)pmVar24 + lVar12))[1];\n              *(undefined8 *)((long)pmVar19 + lVar12) = *(undefined8 *)((long)pmVar24 + lVar12);\n              ((undefined8 *)((long)pmVar19 + lVar12))[1] = uVar5;\n              lVar12 = lVar12 + 0x10;\n            } while (lVar12 != (uVar26 >> 1) * 0x10 + 8);\n            lVar12 = (uVar26 & 0xfffffffffffffffe) + 1;\n            if (uVar26 != (uVar26 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }" else (compound_statement "{\n            lVar12 = 8;\n            uVar26 = 1;\n            if ((long)pmVar20 < -1) {\n              uVar26 = ~(ulong)pmVar20;\n            }\n            do {\n              uVar5 = ((undefined8 *)((long)pmVar24 + lVar12))[1];\n              *(undefined8 *)((long)pmVar19 + lVar12) = *(undefined8 *)((long)pmVar24 + lVar12);\n              ((undefined8 *)((long)pmVar19 + lVar12))[1] = uVar5;\n              lVar12 = lVar12 + 0x10;\n            } while (lVar12 != (uVar26 >> 1) * 0x10 + 8);\n            lVar12 = (uVar26 & 0xfffffffffffffffe) + 1;\n            if (uVar26 != (uVar26 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }" { (expression_statement "lVar12 = 8;" (assignment_expression "lVar12 = 8" identifier = number_literal) ;) (expression_statement "uVar26 = 1;" (assignment_expression "uVar26 = 1" identifier = number_literal) ;) (if_statement "if ((long)pmVar20 < -1) {\n              uVar26 = ~(ulong)pmVar20;\n            }" if (parenthesized_expression "((long)pmVar20 < -1)" ( (binary_expression "(long)pmVar20 < -1" (cast_expression "(long)pmVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n              uVar26 = ~(ulong)pmVar20;\n            }" { (expression_statement "uVar26 = ~(ulong)pmVar20;" (assignment_expression "uVar26 = ~(ulong)pmVar20" identifier = (unary_expression "~(ulong)pmVar20" ~ (cast_expression "(ulong)pmVar20" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) })) (do_statement "do {\n              uVar5 = ((undefined8 *)((long)pmVar24 + lVar12))[1];\n              *(undefined8 *)((long)pmVar19 + lVar12) = *(undefined8 *)((long)pmVar24 + lVar12);\n              ((undefined8 *)((long)pmVar19 + lVar12))[1] = uVar5;\n              lVar12 = lVar12 + 0x10;\n            } while (lVar12 != (uVar26 >> 1) * 0x10 + 8);" do (compound_statement "{\n              uVar5 = ((undefined8 *)((long)pmVar24 + lVar12))[1];\n              *(undefined8 *)((long)pmVar19 + lVar12) = *(undefined8 *)((long)pmVar24 + lVar12);\n              ((undefined8 *)((long)pmVar19 + lVar12))[1] = uVar5;\n              lVar12 = lVar12 + 0x10;\n            }" { (expression_statement "uVar5 = ((undefined8 *)((long)pmVar24 + lVar12))[1];" (assignment_expression "uVar5 = ((undefined8 *)((long)pmVar24 + lVar12))[1]" identifier = (subscript_expression "((undefined8 *)((long)pmVar24 + lVar12))[1]" (parenthesized_expression "((undefined8 *)((long)pmVar24 + lVar12))" ( (cast_expression "(undefined8 *)((long)pmVar24 + lVar12)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pmVar24 + lVar12)" ( (binary_expression "(long)pmVar24 + lVar12" (cast_expression "(long)pmVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)pmVar19 + lVar12) = *(undefined8 *)((long)pmVar24 + lVar12);" (assignment_expression "*(undefined8 *)((long)pmVar19 + lVar12) = *(undefined8 *)((long)pmVar24 + lVar12)" (pointer_expression "*(undefined8 *)((long)pmVar19 + lVar12)" * (cast_expression "(undefined8 *)((long)pmVar19 + lVar12)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pmVar19 + lVar12)" ( (binary_expression "(long)pmVar19 + lVar12" (cast_expression "(long)pmVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (pointer_expression "*(undefined8 *)((long)pmVar24 + lVar12)" * (cast_expression "(undefined8 *)((long)pmVar24 + lVar12)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pmVar24 + lVar12)" ( (binary_expression "(long)pmVar24 + lVar12" (cast_expression "(long)pmVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ;) (expression_statement "((undefined8 *)((long)pmVar19 + lVar12))[1] = uVar5;" (assignment_expression "((undefined8 *)((long)pmVar19 + lVar12))[1] = uVar5" (subscript_expression "((undefined8 *)((long)pmVar19 + lVar12))[1]" (parenthesized_expression "((undefined8 *)((long)pmVar19 + lVar12))" ( (cast_expression "(undefined8 *)((long)pmVar19 + lVar12)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pmVar19 + lVar12)" ( (binary_expression "(long)pmVar19 + lVar12" (cast_expression "(long)pmVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = identifier) ;) (expression_statement "lVar12 = lVar12 + 0x10;" (assignment_expression "lVar12 = lVar12 + 0x10" identifier = (binary_expression "lVar12 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar12 != (uVar26 >> 1) * 0x10 + 8)" ( (binary_expression "lVar12 != (uVar26 >> 1) * 0x10 + 8" identifier != (binary_expression "(uVar26 >> 1) * 0x10 + 8" (binary_expression "(uVar26 >> 1) * 0x10" (parenthesized_expression "(uVar26 >> 1)" ( (binary_expression "uVar26 >> 1" identifier >> number_literal) )) * number_literal) + number_literal)) )) ;) (expression_statement "lVar12 = (uVar26 & 0xfffffffffffffffe) + 1;" (assignment_expression "lVar12 = (uVar26 & 0xfffffffffffffffe) + 1" identifier = (binary_expression "(uVar26 & 0xfffffffffffffffe) + 1" (parenthesized_expression "(uVar26 & 0xfffffffffffffffe)" ( (binary_expression "uVar26 & 0xfffffffffffffffe" identifier & number_literal) )) + number_literal)) ;) (if_statement "if (uVar26 != (uVar26 & 0xfffffffffffffffe)) goto LAB_0011d534;" if (parenthesized_expression "(uVar26 != (uVar26 & 0xfffffffffffffffe))" ( (binary_expression "uVar26 != (uVar26 & 0xfffffffffffffffe)" identifier != (parenthesized_expression "(uVar26 & 0xfffffffffffffffe)" ( (binary_expression "uVar26 & 0xfffffffffffffffe" identifier & number_literal) ))) )) (goto_statement "goto LAB_0011d534;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0011d53d;" goto statement_identifier ;) })) (expression_statement "mVar4 = *pmVar8;" (assignment_expression "mVar4 = *pmVar8" identifier = (pointer_expression "*pmVar8" * identifier)) ;) (expression_statement "*pmVar13 = mVar4 - 1;" (assignment_expression "*pmVar13 = mVar4 - 1" (pointer_expression "*pmVar13" * identifier) = (binary_expression "mVar4 - 1" identifier - number_literal)) ;) (if_statement "if (mVar4 != 0) {\n          uVar26 = ~(ulong)pmVar20;\n          goto LAB_0011d3a0;\n        }" if (parenthesized_expression "(mVar4 != 0)" ( (binary_expression "mVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar26 = ~(ulong)pmVar20;\n          goto LAB_0011d3a0;\n        }" { (expression_statement "uVar26 = ~(ulong)pmVar20;" (assignment_expression "uVar26 = ~(ulong)pmVar20" identifier = (unary_expression "~(ulong)pmVar20" ~ (cast_expression "(ulong)pmVar20" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (goto_statement "goto LAB_0011d3a0;" goto statement_identifier ;) })) (if_statement "if (pmVar20 == (mp_limb_t *)0xffffffffffffffff) {\n          uVar26 = 0;\n          goto LAB_0011d42d;\n        }" if (parenthesized_expression "(pmVar20 == (mp_limb_t *)0xffffffffffffffff)" ( (binary_expression "pmVar20 == (mp_limb_t *)0xffffffffffffffff" identifier == (cast_expression "(mp_limb_t *)0xffffffffffffffff" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar26 = 0;\n          goto LAB_0011d42d;\n        }" { (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;) })) (labeled_statement "LAB_0011d551:\n        uVar26 = ~(ulong)pmVar20;" statement_identifier : (expression_statement "uVar26 = ~(ulong)pmVar20;" (assignment_expression "uVar26 = ~(ulong)pmVar20" identifier = (unary_expression "~(ulong)pmVar20" ~ (cast_expression "(ulong)pmVar20" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;)) (expression_statement "mVar4 = pmVar8[1];" (assignment_expression "mVar4 = pmVar8[1]" identifier = (subscript_expression "pmVar8[1]" identifier [ number_literal ])) ;) (expression_statement "pmVar13[1] = mVar4 - 1;" (assignment_expression "pmVar13[1] = mVar4 - 1" (subscript_expression "pmVar13[1]" identifier [ number_literal ]) = (binary_expression "mVar4 - 1" identifier - number_literal)) ;) (if_statement "if (mVar4 == 0) {\n          if (-3 < (long)pmVar20) goto LAB_0011d42d;\n          mVar4 = pmVar8[2];\n          lVar12 = 3;\n          pmVar13[2] = mVar4 - 1;\n          while (mVar4 == 0) {\n            if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d42d;\n            mVar4 = pmVar8[lVar12];\n            pmVar13[lVar12] = mVar4 - 1;\n            lVar12 = lVar12 + 1;\n          }\n        }\n        else {\n          lVar12 = 2;\n        }" if (parenthesized_expression "(mVar4 == 0)" ( (binary_expression "mVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          if (-3 < (long)pmVar20) goto LAB_0011d42d;\n          mVar4 = pmVar8[2];\n          lVar12 = 3;\n          pmVar13[2] = mVar4 - 1;\n          while (mVar4 == 0) {\n            if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d42d;\n            mVar4 = pmVar8[lVar12];\n            pmVar13[lVar12] = mVar4 - 1;\n            lVar12 = lVar12 + 1;\n          }\n        }" { (if_statement "if (-3 < (long)pmVar20) goto LAB_0011d42d;" if (parenthesized_expression "(-3 < (long)pmVar20)" ( (binary_expression "-3 < (long)pmVar20" number_literal < (cast_expression "(long)pmVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;)) (expression_statement "mVar4 = pmVar8[2];" (assignment_expression "mVar4 = pmVar8[2]" identifier = (subscript_expression "pmVar8[2]" identifier [ number_literal ])) ;) (expression_statement "lVar12 = 3;" (assignment_expression "lVar12 = 3" identifier = number_literal) ;) (expression_statement "pmVar13[2] = mVar4 - 1;" (assignment_expression "pmVar13[2] = mVar4 - 1" (subscript_expression "pmVar13[2]" identifier [ number_literal ]) = (binary_expression "mVar4 - 1" identifier - number_literal)) ;) (while_statement "while (mVar4 == 0) {\n            if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d42d;\n            mVar4 = pmVar8[lVar12];\n            pmVar13[lVar12] = mVar4 - 1;\n            lVar12 = lVar12 + 1;\n          }" while (parenthesized_expression "(mVar4 == 0)" ( (binary_expression "mVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d42d;\n            mVar4 = pmVar8[lVar12];\n            pmVar13[lVar12] = mVar4 - 1;\n            lVar12 = lVar12 + 1;\n          }" { (if_statement "if ((mp_limb_t *)-lVar12 == pmVar11) goto LAB_0011d42d;" if (parenthesized_expression "((mp_limb_t *)-lVar12 == pmVar11)" ( (binary_expression "(mp_limb_t *)-lVar12 == pmVar11" (cast_expression "(mp_limb_t *)-lVar12" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar12" - identifier)) == identifier) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;)) (expression_statement "mVar4 = pmVar8[lVar12];" (assignment_expression "mVar4 = pmVar8[lVar12]" identifier = (subscript_expression "pmVar8[lVar12]" identifier [ identifier ])) ;) (expression_statement "pmVar13[lVar12] = mVar4 - 1;" (assignment_expression "pmVar13[lVar12] = mVar4 - 1" (subscript_expression "pmVar13[lVar12]" identifier [ identifier ]) = (binary_expression "mVar4 - 1" identifier - number_literal)) ;) (expression_statement "lVar12 = lVar12 + 1;" (assignment_expression "lVar12 = lVar12 + 1" identifier = (binary_expression "lVar12 + 1" identifier + number_literal)) ;) })) }) (else_clause "else {\n          lVar12 = 2;\n        }" else (compound_statement "{\n          lVar12 = 2;\n        }" { (expression_statement "lVar12 = 2;" (assignment_expression "lVar12 = 2" identifier = number_literal) ;) }))) (if_statement "if ((pmVar8 == pmVar13) || (SBORROW8(lVar12,lVar17) == (long)(lVar12 + (long)pmVar11) < 0))\n        goto LAB_0011d42d;" if (parenthesized_expression "((pmVar8 == pmVar13) || (SBORROW8(lVar12,lVar17) == (long)(lVar12 + (long)pmVar11) < 0))" ( (binary_expression "(pmVar8 == pmVar13) || (SBORROW8(lVar12,lVar17) == (long)(lVar12 + (long)pmVar11) < 0)" (parenthesized_expression "(pmVar8 == pmVar13)" ( (binary_expression "pmVar8 == pmVar13" identifier == identifier) )) || (parenthesized_expression "(SBORROW8(lVar12,lVar17) == (long)(lVar12 + (long)pmVar11) < 0)" ( (binary_expression "SBORROW8(lVar12,lVar17) == (long)(lVar12 + (long)pmVar11) < 0" (call_expression "SBORROW8(lVar12,lVar17)" identifier (argument_list "(lVar12,lVar17)" ( identifier , identifier ))) == (binary_expression "(long)(lVar12 + (long)pmVar11) < 0" (cast_expression "(long)(lVar12 + (long)pmVar11)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(lVar12 + (long)pmVar11)" ( (binary_expression "lVar12 + (long)pmVar11" identifier + (cast_expression "(long)pmVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) < number_literal)) ))) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;)) (if_statement "if ((pmVar13 + lVar12 < pmVar8 + lVar12 + 2 && pmVar8 + lVar12 < pmVar13 + lVar12 + 2) ||\n           (uVar26 - lVar12 < 4)) {\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11);\n          goto LAB_0011d42d;\n        }" if (parenthesized_expression "((pmVar13 + lVar12 < pmVar8 + lVar12 + 2 && pmVar8 + lVar12 < pmVar13 + lVar12 + 2) ||\n           (uVar26 - lVar12 < 4))" ( (binary_expression "(pmVar13 + lVar12 < pmVar8 + lVar12 + 2 && pmVar8 + lVar12 < pmVar13 + lVar12 + 2) ||\n           (uVar26 - lVar12 < 4)" (parenthesized_expression "(pmVar13 + lVar12 < pmVar8 + lVar12 + 2 && pmVar8 + lVar12 < pmVar13 + lVar12 + 2)" ( (binary_expression "pmVar13 + lVar12 < pmVar8 + lVar12 + 2 && pmVar8 + lVar12 < pmVar13 + lVar12 + 2" (binary_expression "pmVar13 + lVar12 < pmVar8 + lVar12 + 2" (binary_expression "pmVar13 + lVar12" identifier + identifier) < (binary_expression "pmVar8 + lVar12 + 2" (binary_expression "pmVar8 + lVar12" identifier + identifier) + number_literal)) && (binary_expression "pmVar8 + lVar12 < pmVar13 + lVar12 + 2" (binary_expression "pmVar8 + lVar12" identifier + identifier) < (binary_expression "pmVar13 + lVar12 + 2" (binary_expression "pmVar13 + lVar12" identifier + identifier) + number_literal))) )) || (parenthesized_expression "(uVar26 - lVar12 < 4)" ( (binary_expression "uVar26 - lVar12 < 4" (binary_expression "uVar26 - lVar12" identifier - identifier) < number_literal) ))) )) (compound_statement "{\n          do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11);\n          goto LAB_0011d42d;\n        }" { (do_statement "do {\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          } while ((mp_limb_t *)-lVar12 != pmVar11);" do (compound_statement "{\n            pmVar13[lVar12] = pmVar8[lVar12];\n            lVar12 = lVar12 + 1;\n          }" { (expression_statement "pmVar13[lVar12] = pmVar8[lVar12];" (assignment_expression "pmVar13[lVar12] = pmVar8[lVar12]" (subscript_expression "pmVar13[lVar12]" identifier [ identifier ]) = (subscript_expression "pmVar8[lVar12]" identifier [ identifier ])) ;) (expression_statement "lVar12 = lVar12 + 1;" (assignment_expression "lVar12 = lVar12 + 1" identifier = (binary_expression "lVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((mp_limb_t *)-lVar12 != pmVar11)" ( (binary_expression "(mp_limb_t *)-lVar12 != pmVar11" (cast_expression "(mp_limb_t *)-lVar12" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar12" - identifier)) != identifier) )) ;) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;) })) (expression_statement "uVar27 = lVar17 - lVar12;" (assignment_expression "uVar27 = lVar17 - lVar12" identifier = (binary_expression "lVar17 - lVar12" identifier - identifier)) ;) (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" identifier = number_literal) ;) (do_statement "do {\n          puVar1 = (undefined8 *)((long)(pmVar8 + lVar12) + lVar17);\n          uVar5 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(pmVar13 + lVar12) + lVar17);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        } while (lVar17 != (uVar27 >> 1) * 0x10);" do (compound_statement "{\n          puVar1 = (undefined8 *)((long)(pmVar8 + lVar12) + lVar17);\n          uVar5 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(pmVar13 + lVar12) + lVar17);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar5;\n          lVar17 = lVar17 + 0x10;\n        }" { (expression_statement "puVar1 = (undefined8 *)((long)(pmVar8 + lVar12) + lVar17);" (assignment_expression "puVar1 = (undefined8 *)((long)(pmVar8 + lVar12) + lVar17)" identifier = (cast_expression "(undefined8 *)((long)(pmVar8 + lVar12) + lVar17)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(pmVar8 + lVar12) + lVar17)" ( (binary_expression "(long)(pmVar8 + lVar12) + lVar17" (cast_expression "(long)(pmVar8 + lVar12)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pmVar8 + lVar12)" ( (binary_expression "pmVar8 + lVar12" identifier + identifier) ))) + identifier) )))) ;) (expression_statement "uVar5 = puVar1[1];" (assignment_expression "uVar5 = puVar1[1]" identifier = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (expression_statement "puVar3 = (undefined8 *)((long)(pmVar13 + lVar12) + lVar17);" (assignment_expression "puVar3 = (undefined8 *)((long)(pmVar13 + lVar12) + lVar17)" identifier = (cast_expression "(undefined8 *)((long)(pmVar13 + lVar12) + lVar17)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(pmVar13 + lVar12) + lVar17)" ( (binary_expression "(long)(pmVar13 + lVar12) + lVar17" (cast_expression "(long)(pmVar13 + lVar12)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pmVar13 + lVar12)" ( (binary_expression "pmVar13 + lVar12" identifier + identifier) ))) + identifier) )))) ;) (expression_statement "*puVar3 = *puVar1;" (assignment_expression "*puVar3 = *puVar1" (pointer_expression "*puVar3" * identifier) = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "puVar3[1] = uVar5;" (assignment_expression "puVar3[1] = uVar5" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "lVar17 = lVar17 + 0x10;" (assignment_expression "lVar17 = lVar17 + 0x10" identifier = (binary_expression "lVar17 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar17 != (uVar27 >> 1) * 0x10)" ( (binary_expression "lVar17 != (uVar27 >> 1) * 0x10" identifier != (binary_expression "(uVar27 >> 1) * 0x10" (parenthesized_expression "(uVar27 >> 1)" ( (binary_expression "uVar27 >> 1" identifier >> number_literal) )) * number_literal)) )) ;) (expression_statement "lVar12 = lVar12 + (uVar27 & 0xfffffffffffffffe);" (assignment_expression "lVar12 = lVar12 + (uVar27 & 0xfffffffffffffffe)" identifier = (binary_expression "lVar12 + (uVar27 & 0xfffffffffffffffe)" identifier + (parenthesized_expression "(uVar27 & 0xfffffffffffffffe)" ( (binary_expression "uVar27 & 0xfffffffffffffffe" identifier & number_literal) )))) ;) (if_statement "if (uVar27 == (uVar27 & 0xfffffffffffffffe)) goto LAB_0011d42d;" if (parenthesized_expression "(uVar27 == (uVar27 & 0xfffffffffffffffe))" ( (binary_expression "uVar27 == (uVar27 & 0xfffffffffffffffe)" identifier == (parenthesized_expression "(uVar27 & 0xfffffffffffffffe)" ( (binary_expression "uVar27 & 0xfffffffffffffffe" identifier & number_literal) ))) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;)) }))) (expression_statement "pmVar13[lVar12] = pmVar8[lVar12];" (assignment_expression "pmVar13[lVar12] = pmVar8[lVar12]" (subscript_expression "pmVar13[lVar12]" identifier [ identifier ]) = (subscript_expression "pmVar8[lVar12]" identifier [ identifier ])) ;) (labeled_statement "LAB_0011d42d:\n      if ((pmVar13[uVar26] & pmVar19[uVar26]) == 0) goto code_r0x0011d43b;" statement_identifier : (if_statement "if ((pmVar13[uVar26] & pmVar19[uVar26]) == 0) goto code_r0x0011d43b;" if (parenthesized_expression "((pmVar13[uVar26] & pmVar19[uVar26]) == 0)" ( (binary_expression "(pmVar13[uVar26] & pmVar19[uVar26]) == 0" (parenthesized_expression "(pmVar13[uVar26] & pmVar19[uVar26])" ( (binary_expression "pmVar13[uVar26] & pmVar19[uVar26]" (subscript_expression "pmVar13[uVar26]" identifier [ identifier ]) & (subscript_expression "pmVar19[uVar26]" identifier [ identifier ])) )) == number_literal) )) (goto_statement "goto code_r0x0011d43b;" goto statement_identifier ;))) (expression_statement "lVar17 = uVar26 + 1;" (assignment_expression "lVar17 = uVar26 + 1" identifier = (binary_expression "uVar26 + 1" identifier + number_literal)) ;) (if_statement "if (lVar17 < local_50->_mp_alloc) {\n        puVar10 = local_50->_mp_d;\n      }\n      else {\n        *(undefined8 *)(puVar16 + -8) = 0x11d8b7;\n        local_58 = pmVar13;\n        puVar10 = (ulong *)__gmpz_realloc(local_50,uVar26 + 2);\n        pmVar13 = local_58;\n      }" if (parenthesized_expression "(lVar17 < local_50->_mp_alloc)" ( (binary_expression "lVar17 < local_50->_mp_alloc" identifier < (field_expression "local_50->_mp_alloc" identifier -> field_identifier)) )) (compound_statement "{\n        puVar10 = local_50->_mp_d;\n      }" { (expression_statement "puVar10 = local_50->_mp_d;" (assignment_expression "puVar10 = local_50->_mp_d" identifier = (field_expression "local_50->_mp_d" identifier -> field_identifier)) ;) }) (else_clause "else {\n        *(undefined8 *)(puVar16 + -8) = 0x11d8b7;\n        local_58 = pmVar13;\n        puVar10 = (ulong *)__gmpz_realloc(local_50,uVar26 + 2);\n        pmVar13 = local_58;\n      }" else (compound_statement "{\n        *(undefined8 *)(puVar16 + -8) = 0x11d8b7;\n        local_58 = pmVar13;\n        puVar10 = (ulong *)__gmpz_realloc(local_50,uVar26 + 2);\n        pmVar13 = local_58;\n      }" { (expression_statement "*(undefined8 *)(puVar16 + -8) = 0x11d8b7;" (assignment_expression "*(undefined8 *)(puVar16 + -8) = 0x11d8b7" (pointer_expression "*(undefined8 *)(puVar16 + -8)" * (cast_expression "(undefined8 *)(puVar16 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -8)" ( (binary_expression "puVar16 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_58 = pmVar13;" (assignment_expression "local_58 = pmVar13" identifier = identifier) ;) (expression_statement "puVar10 = (ulong *)__gmpz_realloc(local_50,uVar26 + 2);" (assignment_expression "puVar10 = (ulong *)__gmpz_realloc(local_50,uVar26 + 2)" identifier = (cast_expression "(ulong *)__gmpz_realloc(local_50,uVar26 + 2)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmpz_realloc(local_50,uVar26 + 2)" identifier (argument_list "(local_50,uVar26 + 2)" ( identifier , (binary_expression "uVar26 + 2" identifier + number_literal) ))))) ;) (expression_statement "pmVar13 = local_58;" (assignment_expression "pmVar13 = local_58" identifier = identifier) ;) }))) (expression_statement "*(undefined8 *)(puVar16 + -8) = 0x11d6ca;" (assignment_expression "*(undefined8 *)(puVar16 + -8) = 0x11d6ca" (pointer_expression "*(undefined8 *)(puVar16 + -8)" * (cast_expression "(undefined8 *)(puVar16 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -8)" ( (binary_expression "puVar16 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_and_n(puVar10,pmVar19,pmVar13,lVar17);" (call_expression "__gmpn_and_n(puVar10,pmVar19,pmVar13,lVar17)" identifier (argument_list "(puVar10,pmVar19,pmVar13,lVar17)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar2 = puVar10 + lVar17;" (assignment_expression "puVar2 = puVar10 + lVar17" identifier = (binary_expression "puVar10 + lVar17" identifier + identifier)) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (do_statement "do {\n        uVar26 = *puVar10;\n        *puVar10 = *puVar10 + 1;\n        puVar10 = puVar10 + 1;\n      } while (0xfffffffffffffffe < uVar26);" do (compound_statement "{\n        uVar26 = *puVar10;\n        *puVar10 = *puVar10 + 1;\n        puVar10 = puVar10 + 1;\n      }" { (expression_statement "uVar26 = *puVar10;" (assignment_expression "uVar26 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "*puVar10 = *puVar10 + 1;" (assignment_expression "*puVar10 = *puVar10 + 1" (pointer_expression "*puVar10" * identifier) = (binary_expression "*puVar10 + 1" (pointer_expression "*puVar10" * identifier) + number_literal)) ;) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(0xfffffffffffffffe < uVar26)" ( (binary_expression "0xfffffffffffffffe < uVar26" number_literal < identifier) )) ;) (expression_statement "iVar6 = -((int)lVar17 + (int)*puVar2);" (assignment_expression "iVar6 = -((int)lVar17 + (int)*puVar2)" identifier = (unary_expression "-((int)lVar17 + (int)*puVar2)" - (parenthesized_expression "((int)lVar17 + (int)*puVar2)" ( (binary_expression "(int)lVar17 + (int)*puVar2" (cast_expression "(int)lVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)*puVar2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*puVar2" * identifier))) )))) ;) (goto_statement "goto LAB_0011d44c;" goto statement_identifier ;) })) }) (else_clause "else {\n    pmVar13 = pmVar19;\n    pmVar23 = pmVar8;\n    pmVar20 = pmVar24;\n    pmVar25 = pmVar11;\n    if (-1 < (long)pmVar11) {\n      if ((long)pmVar19 < (long)pmVar11) {\n        if (res->_mp_alloc < iVar21) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_70 = pmVar19;\n          local_68 = op1;\n          local_58 = pmVar11;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar11);\n          pmVar24 = local_68->_mp_d;\n          pmVar11 = local_58;\n          pmVar19 = local_70;\n          iVar21 = (int)local_60;\n        }\n        iVar6 = iVar21;\n        if (pmVar9 != pmVar8) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_58 = pmVar19;\n          __gmpn_copyi(pmVar9 + (long)pmVar19,pmVar8 + (long)pmVar19,(long)pmVar11 - (long)pmVar19);\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar19 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8,pmVar19);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (res->_mp_alloc < iVar6) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_70 = pmVar11;\n          local_68 = op2;\n          local_58 = pmVar19;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar19);\n          pmVar8 = local_68->_mp_d;\n          pmVar11 = local_70;\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar9 != pmVar24) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_58 = pmVar11;\n          __gmpn_copyi(pmVar9 + (long)pmVar11,pmVar24 + (long)pmVar11,(long)pmVar19 - (long)pmVar11)\n          ;\n          pmVar11 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar11 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50->_mp_size = iVar6;\n      goto LAB_0011cf61;\n    }\n  }" else (compound_statement "{\n    pmVar13 = pmVar19;\n    pmVar23 = pmVar8;\n    pmVar20 = pmVar24;\n    pmVar25 = pmVar11;\n    if (-1 < (long)pmVar11) {\n      if ((long)pmVar19 < (long)pmVar11) {\n        if (res->_mp_alloc < iVar21) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_70 = pmVar19;\n          local_68 = op1;\n          local_58 = pmVar11;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar11);\n          pmVar24 = local_68->_mp_d;\n          pmVar11 = local_58;\n          pmVar19 = local_70;\n          iVar21 = (int)local_60;\n        }\n        iVar6 = iVar21;\n        if (pmVar9 != pmVar8) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_58 = pmVar19;\n          __gmpn_copyi(pmVar9 + (long)pmVar19,pmVar8 + (long)pmVar19,(long)pmVar11 - (long)pmVar19);\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar19 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8,pmVar19);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (res->_mp_alloc < iVar6) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_70 = pmVar11;\n          local_68 = op2;\n          local_58 = pmVar19;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar19);\n          pmVar8 = local_68->_mp_d;\n          pmVar11 = local_70;\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar9 != pmVar24) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_58 = pmVar11;\n          __gmpn_copyi(pmVar9 + (long)pmVar11,pmVar24 + (long)pmVar11,(long)pmVar19 - (long)pmVar11)\n          ;\n          pmVar11 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar11 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50->_mp_size = iVar6;\n      goto LAB_0011cf61;\n    }\n  }" { (expression_statement "pmVar13 = pmVar19;" (assignment_expression "pmVar13 = pmVar19" identifier = identifier) ;) (expression_statement "pmVar23 = pmVar8;" (assignment_expression "pmVar23 = pmVar8" identifier = identifier) ;) (expression_statement "pmVar20 = pmVar24;" (assignment_expression "pmVar20 = pmVar24" identifier = identifier) ;) (expression_statement "pmVar25 = pmVar11;" (assignment_expression "pmVar25 = pmVar11" identifier = identifier) ;) (if_statement "if (-1 < (long)pmVar11) {\n      if ((long)pmVar19 < (long)pmVar11) {\n        if (res->_mp_alloc < iVar21) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_70 = pmVar19;\n          local_68 = op1;\n          local_58 = pmVar11;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar11);\n          pmVar24 = local_68->_mp_d;\n          pmVar11 = local_58;\n          pmVar19 = local_70;\n          iVar21 = (int)local_60;\n        }\n        iVar6 = iVar21;\n        if (pmVar9 != pmVar8) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_58 = pmVar19;\n          __gmpn_copyi(pmVar9 + (long)pmVar19,pmVar8 + (long)pmVar19,(long)pmVar11 - (long)pmVar19);\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar19 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8,pmVar19);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (res->_mp_alloc < iVar6) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_70 = pmVar11;\n          local_68 = op2;\n          local_58 = pmVar19;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar19);\n          pmVar8 = local_68->_mp_d;\n          pmVar11 = local_70;\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar9 != pmVar24) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_58 = pmVar11;\n          __gmpn_copyi(pmVar9 + (long)pmVar11,pmVar24 + (long)pmVar11,(long)pmVar19 - (long)pmVar11)\n          ;\n          pmVar11 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar11 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50->_mp_size = iVar6;\n      goto LAB_0011cf61;\n    }" if (parenthesized_expression "(-1 < (long)pmVar11)" ( (binary_expression "-1 < (long)pmVar11" number_literal < (cast_expression "(long)pmVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n      if ((long)pmVar19 < (long)pmVar11) {\n        if (res->_mp_alloc < iVar21) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_70 = pmVar19;\n          local_68 = op1;\n          local_58 = pmVar11;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar11);\n          pmVar24 = local_68->_mp_d;\n          pmVar11 = local_58;\n          pmVar19 = local_70;\n          iVar21 = (int)local_60;\n        }\n        iVar6 = iVar21;\n        if (pmVar9 != pmVar8) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_58 = pmVar19;\n          __gmpn_copyi(pmVar9 + (long)pmVar19,pmVar8 + (long)pmVar19,(long)pmVar11 - (long)pmVar19);\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar19 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8,pmVar19);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (res->_mp_alloc < iVar6) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_70 = pmVar11;\n          local_68 = op2;\n          local_58 = pmVar19;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar19);\n          pmVar8 = local_68->_mp_d;\n          pmVar11 = local_70;\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar9 != pmVar24) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_58 = pmVar11;\n          __gmpn_copyi(pmVar9 + (long)pmVar11,pmVar24 + (long)pmVar11,(long)pmVar19 - (long)pmVar11)\n          ;\n          pmVar11 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar11 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50->_mp_size = iVar6;\n      goto LAB_0011cf61;\n    }" { (if_statement "if ((long)pmVar19 < (long)pmVar11) {\n        if (res->_mp_alloc < iVar21) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_70 = pmVar19;\n          local_68 = op1;\n          local_58 = pmVar11;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar11);\n          pmVar24 = local_68->_mp_d;\n          pmVar11 = local_58;\n          pmVar19 = local_70;\n          iVar21 = (int)local_60;\n        }\n        iVar6 = iVar21;\n        if (pmVar9 != pmVar8) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_58 = pmVar19;\n          __gmpn_copyi(pmVar9 + (long)pmVar19,pmVar8 + (long)pmVar19,(long)pmVar11 - (long)pmVar19);\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar19 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8,pmVar19);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (res->_mp_alloc < iVar6) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_70 = pmVar11;\n          local_68 = op2;\n          local_58 = pmVar19;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar19);\n          pmVar8 = local_68->_mp_d;\n          pmVar11 = local_70;\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar9 != pmVar24) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_58 = pmVar11;\n          __gmpn_copyi(pmVar9 + (long)pmVar11,pmVar24 + (long)pmVar11,(long)pmVar19 - (long)pmVar11)\n          ;\n          pmVar11 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar11 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8);\n          iVar6 = (int)local_58;\n        }\n      }" if (parenthesized_expression "((long)pmVar19 < (long)pmVar11)" ( (binary_expression "(long)pmVar19 < (long)pmVar11" (cast_expression "(long)pmVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)pmVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n        if (res->_mp_alloc < iVar21) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_70 = pmVar19;\n          local_68 = op1;\n          local_58 = pmVar11;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar11);\n          pmVar24 = local_68->_mp_d;\n          pmVar11 = local_58;\n          pmVar19 = local_70;\n          iVar21 = (int)local_60;\n        }\n        iVar6 = iVar21;\n        if (pmVar9 != pmVar8) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_58 = pmVar19;\n          __gmpn_copyi(pmVar9 + (long)pmVar19,pmVar8 + (long)pmVar19,(long)pmVar11 - (long)pmVar19);\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar19 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8,pmVar19);\n          iVar6 = (int)local_58;\n        }\n      }" { (if_statement "if (res->_mp_alloc < iVar21) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_70 = pmVar19;\n          local_68 = op1;\n          local_58 = pmVar11;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar11);\n          pmVar24 = local_68->_mp_d;\n          pmVar11 = local_58;\n          pmVar19 = local_70;\n          iVar21 = (int)local_60;\n        }" if (parenthesized_expression "(res->_mp_alloc < iVar21)" ( (binary_expression "res->_mp_alloc < iVar21" (field_expression "res->_mp_alloc" identifier -> field_identifier) < identifier) )) (compound_statement "{\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_70 = pmVar19;\n          local_68 = op1;\n          local_58 = pmVar11;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar11);\n          pmVar24 = local_68->_mp_d;\n          pmVar11 = local_58;\n          pmVar19 = local_70;\n          iVar21 = (int)local_60;\n        }" { (expression_statement "local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);" (assignment_expression "local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21)" identifier = (cast_expression "(mpz_srcptr)CONCAT44(local_60._4_4_,iVar21)" ( (type_descriptor "mpz_srcptr" type_identifier) ) (call_expression "CONCAT44(local_60._4_4_,iVar21)" identifier (argument_list "(local_60._4_4_,iVar21)" ( (field_expression "local_60._4_4_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "local_70 = pmVar19;" (assignment_expression "local_70 = pmVar19" identifier = identifier) ;) (expression_statement "local_68 = op1;" (assignment_expression "local_68 = op1" identifier = identifier) ;) (expression_statement "local_58 = pmVar11;" (assignment_expression "local_58 = pmVar11" identifier = identifier) ;) (expression_statement "pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar11);" (assignment_expression "pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar11)" identifier = (cast_expression "(mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar11)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmpz_realloc(res,(mp_size_t)pmVar11)" identifier (argument_list "(res,(mp_size_t)pmVar11)" ( identifier , (cast_expression "(mp_size_t)pmVar11" ( (type_descriptor "mp_size_t" type_identifier) ) identifier) ))))) ;) (expression_statement "pmVar24 = local_68->_mp_d;" (assignment_expression "pmVar24 = local_68->_mp_d" identifier = (field_expression "local_68->_mp_d" identifier -> field_identifier)) ;) (expression_statement "pmVar11 = local_58;" (assignment_expression "pmVar11 = local_58" identifier = identifier) ;) (expression_statement "pmVar19 = local_70;" (assignment_expression "pmVar19 = local_70" identifier = identifier) ;) (expression_statement "iVar21 = (int)local_60;" (assignment_expression "iVar21 = (int)local_60" identifier = (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "iVar6 = iVar21;" (assignment_expression "iVar6 = iVar21" identifier = identifier) ;) (if_statement "if (pmVar9 != pmVar8) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_58 = pmVar19;\n          __gmpn_copyi(pmVar9 + (long)pmVar19,pmVar8 + (long)pmVar19,(long)pmVar11 - (long)pmVar19);\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }" if (parenthesized_expression "(pmVar9 != pmVar8)" ( (binary_expression "pmVar9 != pmVar8" identifier != identifier) )) (compound_statement "{\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);\n          local_58 = pmVar19;\n          __gmpn_copyi(pmVar9 + (long)pmVar19,pmVar8 + (long)pmVar19,(long)pmVar11 - (long)pmVar19);\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }" { (expression_statement "local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21);" (assignment_expression "local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar21)" identifier = (cast_expression "(mpz_srcptr)CONCAT44(local_60._4_4_,iVar21)" ( (type_descriptor "mpz_srcptr" type_identifier) ) (call_expression "CONCAT44(local_60._4_4_,iVar21)" identifier (argument_list "(local_60._4_4_,iVar21)" ( (field_expression "local_60._4_4_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "local_58 = pmVar19;" (assignment_expression "local_58 = pmVar19" identifier = identifier) ;) (expression_statement "__gmpn_copyi(pmVar9 + (long)pmVar19,pmVar8 + (long)pmVar19,(long)pmVar11 - (long)pmVar19);" (call_expression "__gmpn_copyi(pmVar9 + (long)pmVar19,pmVar8 + (long)pmVar19,(long)pmVar11 - (long)pmVar19)" identifier (argument_list "(pmVar9 + (long)pmVar19,pmVar8 + (long)pmVar19,(long)pmVar11 - (long)pmVar19)" ( (binary_expression "pmVar9 + (long)pmVar19" identifier + (cast_expression "(long)pmVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , (binary_expression "pmVar8 + (long)pmVar19" identifier + (cast_expression "(long)pmVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , (binary_expression "(long)pmVar11 - (long)pmVar19" (cast_expression "(long)pmVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pmVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ;) (expression_statement "pmVar19 = local_58;" (assignment_expression "pmVar19 = local_58" identifier = identifier) ;) (expression_statement "iVar6 = (int)local_60;" (assignment_expression "iVar6 = (int)local_60" identifier = (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (pmVar19 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8,pmVar19);\n          iVar6 = (int)local_58;\n        }" if (parenthesized_expression "(pmVar19 != (mp_limb_t *)0x0)" ( (binary_expression "pmVar19 != (mp_limb_t *)0x0" identifier != (cast_expression "(mp_limb_t *)0x0" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8,pmVar19);\n          iVar6 = (int)local_58;\n        }" { (expression_statement "local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);" (assignment_expression "local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6)" identifier = (cast_expression "(mp_limb_t *)CONCAT44(local_58._4_4_,iVar6)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(local_58._4_4_,iVar6)" identifier (argument_list "(local_58._4_4_,iVar6)" ( (field_expression "local_58._4_4_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "__gmpn_ior_n(pmVar9,pmVar24,pmVar8,pmVar19);" (call_expression "__gmpn_ior_n(pmVar9,pmVar24,pmVar8,pmVar19)" identifier (argument_list "(pmVar9,pmVar24,pmVar8,pmVar19)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar6 = (int)local_58;" (assignment_expression "iVar6 = (int)local_58" identifier = (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) }) (else_clause "else {\n        if (res->_mp_alloc < iVar6) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_70 = pmVar11;\n          local_68 = op2;\n          local_58 = pmVar19;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar19);\n          pmVar8 = local_68->_mp_d;\n          pmVar11 = local_70;\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar9 != pmVar24) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_58 = pmVar11;\n          __gmpn_copyi(pmVar9 + (long)pmVar11,pmVar24 + (long)pmVar11,(long)pmVar19 - (long)pmVar11)\n          ;\n          pmVar11 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar11 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8);\n          iVar6 = (int)local_58;\n        }\n      }" else (compound_statement "{\n        if (res->_mp_alloc < iVar6) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_70 = pmVar11;\n          local_68 = op2;\n          local_58 = pmVar19;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar19);\n          pmVar8 = local_68->_mp_d;\n          pmVar11 = local_70;\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar9 != pmVar24) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_58 = pmVar11;\n          __gmpn_copyi(pmVar9 + (long)pmVar11,pmVar24 + (long)pmVar11,(long)pmVar19 - (long)pmVar11)\n          ;\n          pmVar11 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (pmVar11 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8);\n          iVar6 = (int)local_58;\n        }\n      }" { (if_statement "if (res->_mp_alloc < iVar6) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_70 = pmVar11;\n          local_68 = op2;\n          local_58 = pmVar19;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar19);\n          pmVar8 = local_68->_mp_d;\n          pmVar11 = local_70;\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }" if (parenthesized_expression "(res->_mp_alloc < iVar6)" ( (binary_expression "res->_mp_alloc < iVar6" (field_expression "res->_mp_alloc" identifier -> field_identifier) < identifier) )) (compound_statement "{\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_70 = pmVar11;\n          local_68 = op2;\n          local_58 = pmVar19;\n          pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar19);\n          pmVar8 = local_68->_mp_d;\n          pmVar11 = local_70;\n          pmVar19 = local_58;\n          iVar6 = (int)local_60;\n        }" { (expression_statement "local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);" (assignment_expression "local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6)" identifier = (cast_expression "(mpz_srcptr)CONCAT44(local_60._4_4_,iVar6)" ( (type_descriptor "mpz_srcptr" type_identifier) ) (call_expression "CONCAT44(local_60._4_4_,iVar6)" identifier (argument_list "(local_60._4_4_,iVar6)" ( (field_expression "local_60._4_4_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "local_70 = pmVar11;" (assignment_expression "local_70 = pmVar11" identifier = identifier) ;) (expression_statement "local_68 = op2;" (assignment_expression "local_68 = op2" identifier = identifier) ;) (expression_statement "local_58 = pmVar19;" (assignment_expression "local_58 = pmVar19" identifier = identifier) ;) (expression_statement "pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar19);" (assignment_expression "pmVar9 = (mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar19)" identifier = (cast_expression "(mp_limb_t *)__gmpz_realloc(res,(mp_size_t)pmVar19)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmpz_realloc(res,(mp_size_t)pmVar19)" identifier (argument_list "(res,(mp_size_t)pmVar19)" ( identifier , (cast_expression "(mp_size_t)pmVar19" ( (type_descriptor "mp_size_t" type_identifier) ) identifier) ))))) ;) (expression_statement "pmVar8 = local_68->_mp_d;" (assignment_expression "pmVar8 = local_68->_mp_d" identifier = (field_expression "local_68->_mp_d" identifier -> field_identifier)) ;) (expression_statement "pmVar11 = local_70;" (assignment_expression "pmVar11 = local_70" identifier = identifier) ;) (expression_statement "pmVar19 = local_58;" (assignment_expression "pmVar19 = local_58" identifier = identifier) ;) (expression_statement "iVar6 = (int)local_60;" (assignment_expression "iVar6 = (int)local_60" identifier = (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (pmVar9 != pmVar24) {\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_58 = pmVar11;\n          __gmpn_copyi(pmVar9 + (long)pmVar11,pmVar24 + (long)pmVar11,(long)pmVar19 - (long)pmVar11)\n          ;\n          pmVar11 = local_58;\n          iVar6 = (int)local_60;\n        }" if (parenthesized_expression "(pmVar9 != pmVar24)" ( (binary_expression "pmVar9 != pmVar24" identifier != identifier) )) (compound_statement "{\n          local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);\n          local_58 = pmVar11;\n          __gmpn_copyi(pmVar9 + (long)pmVar11,pmVar24 + (long)pmVar11,(long)pmVar19 - (long)pmVar11)\n          ;\n          pmVar11 = local_58;\n          iVar6 = (int)local_60;\n        }" { (expression_statement "local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6);" (assignment_expression "local_60 = (mpz_srcptr)CONCAT44(local_60._4_4_,iVar6)" identifier = (cast_expression "(mpz_srcptr)CONCAT44(local_60._4_4_,iVar6)" ( (type_descriptor "mpz_srcptr" type_identifier) ) (call_expression "CONCAT44(local_60._4_4_,iVar6)" identifier (argument_list "(local_60._4_4_,iVar6)" ( (field_expression "local_60._4_4_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "local_58 = pmVar11;" (assignment_expression "local_58 = pmVar11" identifier = identifier) ;) (expression_statement "__gmpn_copyi(pmVar9 + (long)pmVar11,pmVar24 + (long)pmVar11,(long)pmVar19 - (long)pmVar11)\n          ;" (call_expression "__gmpn_copyi(pmVar9 + (long)pmVar11,pmVar24 + (long)pmVar11,(long)pmVar19 - (long)pmVar11)" identifier (argument_list "(pmVar9 + (long)pmVar11,pmVar24 + (long)pmVar11,(long)pmVar19 - (long)pmVar11)" ( (binary_expression "pmVar9 + (long)pmVar11" identifier + (cast_expression "(long)pmVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , (binary_expression "pmVar24 + (long)pmVar11" identifier + (cast_expression "(long)pmVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , (binary_expression "(long)pmVar19 - (long)pmVar11" (cast_expression "(long)pmVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pmVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ;) (expression_statement "pmVar11 = local_58;" (assignment_expression "pmVar11 = local_58" identifier = identifier) ;) (expression_statement "iVar6 = (int)local_60;" (assignment_expression "iVar6 = (int)local_60" identifier = (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (pmVar11 != (mp_limb_t *)0x0) {\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8);\n          iVar6 = (int)local_58;\n        }" if (parenthesized_expression "(pmVar11 != (mp_limb_t *)0x0)" ( (binary_expression "pmVar11 != (mp_limb_t *)0x0" identifier != (cast_expression "(mp_limb_t *)0x0" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(pmVar9,pmVar24,pmVar8);\n          iVar6 = (int)local_58;\n        }" { (expression_statement "local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6);" (assignment_expression "local_58 = (mp_limb_t *)CONCAT44(local_58._4_4_,iVar6)" identifier = (cast_expression "(mp_limb_t *)CONCAT44(local_58._4_4_,iVar6)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(local_58._4_4_,iVar6)" identifier (argument_list "(local_58._4_4_,iVar6)" ( (field_expression "local_58._4_4_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "__gmpn_ior_n(pmVar9,pmVar24,pmVar8);" (call_expression "__gmpn_ior_n(pmVar9,pmVar24,pmVar8)" identifier (argument_list "(pmVar9,pmVar24,pmVar8)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar6 = (int)local_58;" (assignment_expression "iVar6 = (int)local_58" identifier = (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) }))) (expression_statement "local_50->_mp_size = iVar6;" (assignment_expression "local_50->_mp_size = iVar6" (field_expression "local_50->_mp_size" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_0011cf61;" goto statement_identifier ;) })) }))) (expression_statement "pmVar24 = (mp_limb_t *)((long)pmVar25 * -8);" (assignment_expression "pmVar24 = (mp_limb_t *)((long)pmVar25 * -8)" identifier = (cast_expression "(mp_limb_t *)((long)pmVar25 * -8)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pmVar25 * -8)" ( (binary_expression "(long)pmVar25 * -8" (cast_expression "(long)pmVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) )))) ;) (if_statement "if (pmVar24 < (mp_limb_t *)0x7f01) {\n    lVar17 = -((ulong)((long)pmVar24 + 0x17) & 0xfffffffffffffff0);\n    puVar14 = auStack_78 + lVar17;\n    pmVar8 = (mp_limb_t *)((long)&local_70 + lVar17);\n    new_alloc = (mpz_srcptr)-(long)pmVar25;\n  }\n  else {\n    local_68 = op1;\n    local_60 = (mpz_srcptr)-(long)pmVar25;\n    local_58 = pmVar24;\n    pmVar8 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)pmVar24);\n    pmVar24 = local_58;\n    new_alloc = local_60;\n    op1 = local_68;\n  }" if (parenthesized_expression "(pmVar24 < (mp_limb_t *)0x7f01)" ( (binary_expression "pmVar24 < (mp_limb_t *)0x7f01" identifier < (cast_expression "(mp_limb_t *)0x7f01" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    lVar17 = -((ulong)((long)pmVar24 + 0x17) & 0xfffffffffffffff0);\n    puVar14 = auStack_78 + lVar17;\n    pmVar8 = (mp_limb_t *)((long)&local_70 + lVar17);\n    new_alloc = (mpz_srcptr)-(long)pmVar25;\n  }" { (expression_statement "lVar17 = -((ulong)((long)pmVar24 + 0x17) & 0xfffffffffffffff0);" (assignment_expression "lVar17 = -((ulong)((long)pmVar24 + 0x17) & 0xfffffffffffffff0)" identifier = (unary_expression "-((ulong)((long)pmVar24 + 0x17) & 0xfffffffffffffff0)" - (parenthesized_expression "((ulong)((long)pmVar24 + 0x17) & 0xfffffffffffffff0)" ( (binary_expression "(ulong)((long)pmVar24 + 0x17) & 0xfffffffffffffff0" (call_expression "(ulong)((long)pmVar24 + 0x17)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)pmVar24 + 0x17)" ( (binary_expression "(long)pmVar24 + 0x17" (cast_expression "(long)pmVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "puVar14 = auStack_78 + lVar17;" (assignment_expression "puVar14 = auStack_78 + lVar17" identifier = (binary_expression "auStack_78 + lVar17" identifier + identifier)) ;) (expression_statement "pmVar8 = (mp_limb_t *)((long)&local_70 + lVar17);" (assignment_expression "pmVar8 = (mp_limb_t *)((long)&local_70 + lVar17)" identifier = (cast_expression "(mp_limb_t *)((long)&local_70 + lVar17)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_70 + lVar17)" ( (binary_expression "(long)&local_70 + lVar17" (cast_expression "(long)&local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_70" & identifier)) + identifier) )))) ;) (expression_statement "new_alloc = (mpz_srcptr)-(long)pmVar25;" (assignment_expression "new_alloc = (mpz_srcptr)-(long)pmVar25" identifier = (binary_expression "(mpz_srcptr)-(long)pmVar25" (parenthesized_expression "(mpz_srcptr)" ( identifier )) - (cast_expression "(long)pmVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) }) (else_clause "else {\n    local_68 = op1;\n    local_60 = (mpz_srcptr)-(long)pmVar25;\n    local_58 = pmVar24;\n    pmVar8 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)pmVar24);\n    pmVar24 = local_58;\n    new_alloc = local_60;\n    op1 = local_68;\n  }" else (compound_statement "{\n    local_68 = op1;\n    local_60 = (mpz_srcptr)-(long)pmVar25;\n    local_58 = pmVar24;\n    pmVar8 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)pmVar24);\n    pmVar24 = local_58;\n    new_alloc = local_60;\n    op1 = local_68;\n  }" { (expression_statement "local_68 = op1;" (assignment_expression "local_68 = op1" identifier = identifier) ;) (expression_statement "local_60 = (mpz_srcptr)-(long)pmVar25;" (assignment_expression "local_60 = (mpz_srcptr)-(long)pmVar25" identifier = (binary_expression "(mpz_srcptr)-(long)pmVar25" (parenthesized_expression "(mpz_srcptr)" ( identifier )) - (cast_expression "(long)pmVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "local_58 = pmVar24;" (assignment_expression "local_58 = pmVar24" identifier = identifier) ;) (expression_statement "pmVar8 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)pmVar24);" (assignment_expression "pmVar8 = (mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)pmVar24)" identifier = (cast_expression "(mp_limb_t *)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)pmVar24)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)pmVar24)" identifier (argument_list "(&__tmp_marker,(size_t)pmVar24)" ( (pointer_expression "&__tmp_marker" & identifier) , (cast_expression "(size_t)pmVar24" ( (type_descriptor "size_t" primitive_type) ) identifier) ))))) ;) (expression_statement "pmVar24 = local_58;" (assignment_expression "pmVar24 = local_58" identifier = identifier) ;) (expression_statement "new_alloc = local_60;" (assignment_expression "new_alloc = local_60" identifier = identifier) ;) (expression_statement "op1 = local_68;" (assignment_expression "op1 = local_68" identifier = identifier) ;) }))) (expression_statement "m = local_50;" (assignment_expression "m = local_50" identifier = identifier) ;) (expression_statement "mVar4 = *pmVar23;" (assignment_expression "mVar4 = *pmVar23" identifier = (pointer_expression "*pmVar23" * identifier)) ;) (expression_statement "*pmVar8 = mVar4 - 1;" (assignment_expression "*pmVar8 = mVar4 - 1" (pointer_expression "*pmVar8" * identifier) = (binary_expression "mVar4 - 1" identifier - number_literal)) ;) (if_statement "if (mVar4 == 0) {\n    if (pmVar25 != (mp_limb_t *)0xffffffffffffffff) {\n      mVar4 = pmVar23[1];\n      pmVar8[1] = mVar4 - 1;\n      if (mVar4 == 0) {\n        if (-3 < (long)pmVar25) goto LAB_0011ced0;\n        mVar4 = pmVar23[2];\n        p_Var7 = (mpz_srcptr)0x3;\n        pmVar8[2] = mVar4 - 1;\n        while (mVar4 == 0) {\n          if (new_alloc == p_Var7) goto LAB_0011ced0;\n          mVar4 = pmVar23[(long)p_Var7];\n          pmVar8[(long)p_Var7] = mVar4 - 1;\n          p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n        }\n      }\n      else {\n        p_Var7 = (mpz_srcptr)0x2;\n      }\n      if ((pmVar23 != pmVar8) && ((long)p_Var7 < (long)new_alloc)) {\n        local_58 = pmVar23 + (long)p_Var7;\n        local_60 = (mpz_srcptr)\n                   CONCAT71(local_60._1_7_,pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58\n                           );\n        if ((pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58 ||\n             pmVar23 + (long)((long)&p_Var7->_mp_alloc + 2) <= pmVar8 + (long)p_Var7) &&\n           (3 < ~(ulong)pmVar25 - (long)p_Var7)) {\n          uVar26 = (long)new_alloc - (long)p_Var7;\n          lVar17 = 0;\n          do {\n            uVar5 = ((undefined8 *)((long)local_58 + lVar17))[1];\n            puVar1 = (undefined8 *)((long)(pmVar8 + (long)p_Var7) + lVar17);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar17);\n            puVar1[1] = uVar5;\n            lVar17 = lVar17 + 0x10;\n          } while ((uVar26 >> 1) * 0x10 != lVar17);\n          lVar17 = (long)&p_Var7->_mp_alloc + (uVar26 & 0xfffffffffffffffe);\n          if ((uVar26 & 0xfffffffffffffffe) != uVar26) goto LAB_0011d020;\n        }\n        else {\n          do {\n            pmVar8[(long)p_Var7] = pmVar23[(long)p_Var7];\n            p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n          } while (new_alloc != p_Var7);\n        }\n      }\n    }\n  }\n  else if ((pmVar23 != pmVar8) && (pmVar25 != (mp_limb_t *)0xffffffffffffffff)) {\n    if ((pmVar23 + 1 < pmVar8 + 3 && pmVar8 + 1 < pmVar23 + 3) || (-6 < (long)pmVar25)) {\n      lVar17 = 1;\n      do {\n        pmVar8[lVar17] = pmVar23[lVar17];\n        lVar17 = lVar17 + 1;\n      } while (lVar17 < (long)new_alloc);\n    }\n    else {\n      uVar26 = ~(ulong)pmVar25;\n      if (-2 < (long)pmVar25) {\n        uVar26 = 1;\n      }\n      lVar17 = 8;\n      do {\n        uVar5 = ((undefined8 *)((long)pmVar23 + lVar17))[1];\n        *(undefined8 *)((long)pmVar8 + lVar17) = *(undefined8 *)((long)pmVar23 + lVar17);\n        ((undefined8 *)((long)pmVar8 + lVar17))[1] = uVar5;\n        lVar17 = lVar17 + 0x10;\n      } while (lVar17 != (uVar26 >> 1) * 0x10 + 8);\n      lVar17 = (uVar26 & 0xfffffffffffffffe) + 1;\n      if ((uVar26 & 0xfffffffffffffffe) != uVar26) {\nLAB_0011d020:\n        pmVar8[lVar17] = pmVar23[lVar17];\n      }\n    }\n  }" if (parenthesized_expression "(mVar4 == 0)" ( (binary_expression "mVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    if (pmVar25 != (mp_limb_t *)0xffffffffffffffff) {\n      mVar4 = pmVar23[1];\n      pmVar8[1] = mVar4 - 1;\n      if (mVar4 == 0) {\n        if (-3 < (long)pmVar25) goto LAB_0011ced0;\n        mVar4 = pmVar23[2];\n        p_Var7 = (mpz_srcptr)0x3;\n        pmVar8[2] = mVar4 - 1;\n        while (mVar4 == 0) {\n          if (new_alloc == p_Var7) goto LAB_0011ced0;\n          mVar4 = pmVar23[(long)p_Var7];\n          pmVar8[(long)p_Var7] = mVar4 - 1;\n          p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n        }\n      }\n      else {\n        p_Var7 = (mpz_srcptr)0x2;\n      }\n      if ((pmVar23 != pmVar8) && ((long)p_Var7 < (long)new_alloc)) {\n        local_58 = pmVar23 + (long)p_Var7;\n        local_60 = (mpz_srcptr)\n                   CONCAT71(local_60._1_7_,pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58\n                           );\n        if ((pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58 ||\n             pmVar23 + (long)((long)&p_Var7->_mp_alloc + 2) <= pmVar8 + (long)p_Var7) &&\n           (3 < ~(ulong)pmVar25 - (long)p_Var7)) {\n          uVar26 = (long)new_alloc - (long)p_Var7;\n          lVar17 = 0;\n          do {\n            uVar5 = ((undefined8 *)((long)local_58 + lVar17))[1];\n            puVar1 = (undefined8 *)((long)(pmVar8 + (long)p_Var7) + lVar17);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar17);\n            puVar1[1] = uVar5;\n            lVar17 = lVar17 + 0x10;\n          } while ((uVar26 >> 1) * 0x10 != lVar17);\n          lVar17 = (long)&p_Var7->_mp_alloc + (uVar26 & 0xfffffffffffffffe);\n          if ((uVar26 & 0xfffffffffffffffe) != uVar26) goto LAB_0011d020;\n        }\n        else {\n          do {\n            pmVar8[(long)p_Var7] = pmVar23[(long)p_Var7];\n            p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n          } while (new_alloc != p_Var7);\n        }\n      }\n    }\n  }" { (if_statement "if (pmVar25 != (mp_limb_t *)0xffffffffffffffff) {\n      mVar4 = pmVar23[1];\n      pmVar8[1] = mVar4 - 1;\n      if (mVar4 == 0) {\n        if (-3 < (long)pmVar25) goto LAB_0011ced0;\n        mVar4 = pmVar23[2];\n        p_Var7 = (mpz_srcptr)0x3;\n        pmVar8[2] = mVar4 - 1;\n        while (mVar4 == 0) {\n          if (new_alloc == p_Var7) goto LAB_0011ced0;\n          mVar4 = pmVar23[(long)p_Var7];\n          pmVar8[(long)p_Var7] = mVar4 - 1;\n          p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n        }\n      }\n      else {\n        p_Var7 = (mpz_srcptr)0x2;\n      }\n      if ((pmVar23 != pmVar8) && ((long)p_Var7 < (long)new_alloc)) {\n        local_58 = pmVar23 + (long)p_Var7;\n        local_60 = (mpz_srcptr)\n                   CONCAT71(local_60._1_7_,pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58\n                           );\n        if ((pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58 ||\n             pmVar23 + (long)((long)&p_Var7->_mp_alloc + 2) <= pmVar8 + (long)p_Var7) &&\n           (3 < ~(ulong)pmVar25 - (long)p_Var7)) {\n          uVar26 = (long)new_alloc - (long)p_Var7;\n          lVar17 = 0;\n          do {\n            uVar5 = ((undefined8 *)((long)local_58 + lVar17))[1];\n            puVar1 = (undefined8 *)((long)(pmVar8 + (long)p_Var7) + lVar17);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar17);\n            puVar1[1] = uVar5;\n            lVar17 = lVar17 + 0x10;\n          } while ((uVar26 >> 1) * 0x10 != lVar17);\n          lVar17 = (long)&p_Var7->_mp_alloc + (uVar26 & 0xfffffffffffffffe);\n          if ((uVar26 & 0xfffffffffffffffe) != uVar26) goto LAB_0011d020;\n        }\n        else {\n          do {\n            pmVar8[(long)p_Var7] = pmVar23[(long)p_Var7];\n            p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n          } while (new_alloc != p_Var7);\n        }\n      }\n    }" if (parenthesized_expression "(pmVar25 != (mp_limb_t *)0xffffffffffffffff)" ( (binary_expression "pmVar25 != (mp_limb_t *)0xffffffffffffffff" identifier != (cast_expression "(mp_limb_t *)0xffffffffffffffff" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      mVar4 = pmVar23[1];\n      pmVar8[1] = mVar4 - 1;\n      if (mVar4 == 0) {\n        if (-3 < (long)pmVar25) goto LAB_0011ced0;\n        mVar4 = pmVar23[2];\n        p_Var7 = (mpz_srcptr)0x3;\n        pmVar8[2] = mVar4 - 1;\n        while (mVar4 == 0) {\n          if (new_alloc == p_Var7) goto LAB_0011ced0;\n          mVar4 = pmVar23[(long)p_Var7];\n          pmVar8[(long)p_Var7] = mVar4 - 1;\n          p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n        }\n      }\n      else {\n        p_Var7 = (mpz_srcptr)0x2;\n      }\n      if ((pmVar23 != pmVar8) && ((long)p_Var7 < (long)new_alloc)) {\n        local_58 = pmVar23 + (long)p_Var7;\n        local_60 = (mpz_srcptr)\n                   CONCAT71(local_60._1_7_,pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58\n                           );\n        if ((pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58 ||\n             pmVar23 + (long)((long)&p_Var7->_mp_alloc + 2) <= pmVar8 + (long)p_Var7) &&\n           (3 < ~(ulong)pmVar25 - (long)p_Var7)) {\n          uVar26 = (long)new_alloc - (long)p_Var7;\n          lVar17 = 0;\n          do {\n            uVar5 = ((undefined8 *)((long)local_58 + lVar17))[1];\n            puVar1 = (undefined8 *)((long)(pmVar8 + (long)p_Var7) + lVar17);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar17);\n            puVar1[1] = uVar5;\n            lVar17 = lVar17 + 0x10;\n          } while ((uVar26 >> 1) * 0x10 != lVar17);\n          lVar17 = (long)&p_Var7->_mp_alloc + (uVar26 & 0xfffffffffffffffe);\n          if ((uVar26 & 0xfffffffffffffffe) != uVar26) goto LAB_0011d020;\n        }\n        else {\n          do {\n            pmVar8[(long)p_Var7] = pmVar23[(long)p_Var7];\n            p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n          } while (new_alloc != p_Var7);\n        }\n      }\n    }" { (expression_statement "mVar4 = pmVar23[1];" (assignment_expression "mVar4 = pmVar23[1]" identifier = (subscript_expression "pmVar23[1]" identifier [ number_literal ])) ;) (expression_statement "pmVar8[1] = mVar4 - 1;" (assignment_expression "pmVar8[1] = mVar4 - 1" (subscript_expression "pmVar8[1]" identifier [ number_literal ]) = (binary_expression "mVar4 - 1" identifier - number_literal)) ;) (if_statement "if (mVar4 == 0) {\n        if (-3 < (long)pmVar25) goto LAB_0011ced0;\n        mVar4 = pmVar23[2];\n        p_Var7 = (mpz_srcptr)0x3;\n        pmVar8[2] = mVar4 - 1;\n        while (mVar4 == 0) {\n          if (new_alloc == p_Var7) goto LAB_0011ced0;\n          mVar4 = pmVar23[(long)p_Var7];\n          pmVar8[(long)p_Var7] = mVar4 - 1;\n          p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n        }\n      }\n      else {\n        p_Var7 = (mpz_srcptr)0x2;\n      }" if (parenthesized_expression "(mVar4 == 0)" ( (binary_expression "mVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        if (-3 < (long)pmVar25) goto LAB_0011ced0;\n        mVar4 = pmVar23[2];\n        p_Var7 = (mpz_srcptr)0x3;\n        pmVar8[2] = mVar4 - 1;\n        while (mVar4 == 0) {\n          if (new_alloc == p_Var7) goto LAB_0011ced0;\n          mVar4 = pmVar23[(long)p_Var7];\n          pmVar8[(long)p_Var7] = mVar4 - 1;\n          p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n        }\n      }" { (if_statement "if (-3 < (long)pmVar25) goto LAB_0011ced0;" if (parenthesized_expression "(-3 < (long)pmVar25)" ( (binary_expression "-3 < (long)pmVar25" number_literal < (cast_expression "(long)pmVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_0011ced0;" goto statement_identifier ;)) (expression_statement "mVar4 = pmVar23[2];" (assignment_expression "mVar4 = pmVar23[2]" identifier = (subscript_expression "pmVar23[2]" identifier [ number_literal ])) ;) (expression_statement "p_Var7 = (mpz_srcptr)0x3;" (assignment_expression "p_Var7 = (mpz_srcptr)0x3" identifier = (cast_expression "(mpz_srcptr)0x3" ( (type_descriptor "mpz_srcptr" type_identifier) ) number_literal)) ;) (expression_statement "pmVar8[2] = mVar4 - 1;" (assignment_expression "pmVar8[2] = mVar4 - 1" (subscript_expression "pmVar8[2]" identifier [ number_literal ]) = (binary_expression "mVar4 - 1" identifier - number_literal)) ;) (while_statement "while (mVar4 == 0) {\n          if (new_alloc == p_Var7) goto LAB_0011ced0;\n          mVar4 = pmVar23[(long)p_Var7];\n          pmVar8[(long)p_Var7] = mVar4 - 1;\n          p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n        }" while (parenthesized_expression "(mVar4 == 0)" ( (binary_expression "mVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          if (new_alloc == p_Var7) goto LAB_0011ced0;\n          mVar4 = pmVar23[(long)p_Var7];\n          pmVar8[(long)p_Var7] = mVar4 - 1;\n          p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n        }" { (if_statement "if (new_alloc == p_Var7) goto LAB_0011ced0;" if (parenthesized_expression "(new_alloc == p_Var7)" ( (binary_expression "new_alloc == p_Var7" identifier == identifier) )) (goto_statement "goto LAB_0011ced0;" goto statement_identifier ;)) (expression_statement "mVar4 = pmVar23[(long)p_Var7];" (assignment_expression "mVar4 = pmVar23[(long)p_Var7]" identifier = (subscript_expression "pmVar23[(long)p_Var7]" identifier [ (cast_expression "(long)p_Var7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ])) ;) (expression_statement "pmVar8[(long)p_Var7] = mVar4 - 1;" (assignment_expression "pmVar8[(long)p_Var7] = mVar4 - 1" (subscript_expression "pmVar8[(long)p_Var7]" identifier [ (cast_expression "(long)p_Var7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "mVar4 - 1" identifier - number_literal)) ;) (expression_statement "p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);" (assignment_expression "p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1)" identifier = (call_expression "(mpz_srcptr)((long)&p_Var7->_mp_alloc + 1)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "((long)&p_Var7->_mp_alloc + 1)" ( (binary_expression "(long)&p_Var7->_mp_alloc + 1" (cast_expression "(long)&p_Var7->_mp_alloc" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&p_Var7->_mp_alloc" & (field_expression "p_Var7->_mp_alloc" identifier -> field_identifier))) + number_literal) )))) ;) })) }) (else_clause "else {\n        p_Var7 = (mpz_srcptr)0x2;\n      }" else (compound_statement "{\n        p_Var7 = (mpz_srcptr)0x2;\n      }" { (expression_statement "p_Var7 = (mpz_srcptr)0x2;" (assignment_expression "p_Var7 = (mpz_srcptr)0x2" identifier = (cast_expression "(mpz_srcptr)0x2" ( (type_descriptor "mpz_srcptr" type_identifier) ) number_literal)) ;) }))) (if_statement "if ((pmVar23 != pmVar8) && ((long)p_Var7 < (long)new_alloc)) {\n        local_58 = pmVar23 + (long)p_Var7;\n        local_60 = (mpz_srcptr)\n                   CONCAT71(local_60._1_7_,pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58\n                           );\n        if ((pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58 ||\n             pmVar23 + (long)((long)&p_Var7->_mp_alloc + 2) <= pmVar8 + (long)p_Var7) &&\n           (3 < ~(ulong)pmVar25 - (long)p_Var7)) {\n          uVar26 = (long)new_alloc - (long)p_Var7;\n          lVar17 = 0;\n          do {\n            uVar5 = ((undefined8 *)((long)local_58 + lVar17))[1];\n            puVar1 = (undefined8 *)((long)(pmVar8 + (long)p_Var7) + lVar17);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar17);\n            puVar1[1] = uVar5;\n            lVar17 = lVar17 + 0x10;\n          } while ((uVar26 >> 1) * 0x10 != lVar17);\n          lVar17 = (long)&p_Var7->_mp_alloc + (uVar26 & 0xfffffffffffffffe);\n          if ((uVar26 & 0xfffffffffffffffe) != uVar26) goto LAB_0011d020;\n        }\n        else {\n          do {\n            pmVar8[(long)p_Var7] = pmVar23[(long)p_Var7];\n            p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n          } while (new_alloc != p_Var7);\n        }\n      }" if (parenthesized_expression "((pmVar23 != pmVar8) && ((long)p_Var7 < (long)new_alloc))" ( (binary_expression "(pmVar23 != pmVar8) && ((long)p_Var7 < (long)new_alloc)" (parenthesized_expression "(pmVar23 != pmVar8)" ( (binary_expression "pmVar23 != pmVar8" identifier != identifier) )) && (parenthesized_expression "((long)p_Var7 < (long)new_alloc)" ( (binary_expression "(long)p_Var7 < (long)new_alloc" (cast_expression "(long)p_Var7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)new_alloc" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) )) (compound_statement "{\n        local_58 = pmVar23 + (long)p_Var7;\n        local_60 = (mpz_srcptr)\n                   CONCAT71(local_60._1_7_,pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58\n                           );\n        if ((pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58 ||\n             pmVar23 + (long)((long)&p_Var7->_mp_alloc + 2) <= pmVar8 + (long)p_Var7) &&\n           (3 < ~(ulong)pmVar25 - (long)p_Var7)) {\n          uVar26 = (long)new_alloc - (long)p_Var7;\n          lVar17 = 0;\n          do {\n            uVar5 = ((undefined8 *)((long)local_58 + lVar17))[1];\n            puVar1 = (undefined8 *)((long)(pmVar8 + (long)p_Var7) + lVar17);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar17);\n            puVar1[1] = uVar5;\n            lVar17 = lVar17 + 0x10;\n          } while ((uVar26 >> 1) * 0x10 != lVar17);\n          lVar17 = (long)&p_Var7->_mp_alloc + (uVar26 & 0xfffffffffffffffe);\n          if ((uVar26 & 0xfffffffffffffffe) != uVar26) goto LAB_0011d020;\n        }\n        else {\n          do {\n            pmVar8[(long)p_Var7] = pmVar23[(long)p_Var7];\n            p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n          } while (new_alloc != p_Var7);\n        }\n      }" { (expression_statement "local_58 = pmVar23 + (long)p_Var7;" (assignment_expression "local_58 = pmVar23 + (long)p_Var7" identifier = (binary_expression "pmVar23 + (long)p_Var7" identifier + (cast_expression "(long)p_Var7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "local_60 = (mpz_srcptr)\n                   CONCAT71(local_60._1_7_,pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58\n                           );" (assignment_expression "local_60 = (mpz_srcptr)\n                   CONCAT71(local_60._1_7_,pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58\n                           )" identifier = (cast_expression "(mpz_srcptr)\n                   CONCAT71(local_60._1_7_,pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58\n                           )" ( (type_descriptor "mpz_srcptr" type_identifier) ) (call_expression "CONCAT71(local_60._1_7_,pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58\n                           )" identifier (argument_list "(local_60._1_7_,pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58\n                           )" ( (field_expression "local_60._1_7_" identifier . field_identifier) , (binary_expression "pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58" (binary_expression "pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2)" identifier + (cast_expression "(long)((long)&p_Var7->_mp_alloc + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((long)&p_Var7->_mp_alloc + 2)" ( (binary_expression "(long)&p_Var7->_mp_alloc + 2" (cast_expression "(long)&p_Var7->_mp_alloc" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&p_Var7->_mp_alloc" & (field_expression "p_Var7->_mp_alloc" identifier -> field_identifier))) + number_literal) )))) <= identifier) ))))) ;) (if_statement "if ((pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58 ||\n             pmVar23 + (long)((long)&p_Var7->_mp_alloc + 2) <= pmVar8 + (long)p_Var7) &&\n           (3 < ~(ulong)pmVar25 - (long)p_Var7)) {\n          uVar26 = (long)new_alloc - (long)p_Var7;\n          lVar17 = 0;\n          do {\n            uVar5 = ((undefined8 *)((long)local_58 + lVar17))[1];\n            puVar1 = (undefined8 *)((long)(pmVar8 + (long)p_Var7) + lVar17);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar17);\n            puVar1[1] = uVar5;\n            lVar17 = lVar17 + 0x10;\n          } while ((uVar26 >> 1) * 0x10 != lVar17);\n          lVar17 = (long)&p_Var7->_mp_alloc + (uVar26 & 0xfffffffffffffffe);\n          if ((uVar26 & 0xfffffffffffffffe) != uVar26) goto LAB_0011d020;\n        }\n        else {\n          do {\n            pmVar8[(long)p_Var7] = pmVar23[(long)p_Var7];\n            p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n          } while (new_alloc != p_Var7);\n        }" if (parenthesized_expression "((pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58 ||\n             pmVar23 + (long)((long)&p_Var7->_mp_alloc + 2) <= pmVar8 + (long)p_Var7) &&\n           (3 < ~(ulong)pmVar25 - (long)p_Var7))" ( (binary_expression "(pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58 ||\n             pmVar23 + (long)((long)&p_Var7->_mp_alloc + 2) <= pmVar8 + (long)p_Var7) &&\n           (3 < ~(ulong)pmVar25 - (long)p_Var7)" (parenthesized_expression "(pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58 ||\n             pmVar23 + (long)((long)&p_Var7->_mp_alloc + 2) <= pmVar8 + (long)p_Var7)" ( (binary_expression "pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58 ||\n             pmVar23 + (long)((long)&p_Var7->_mp_alloc + 2) <= pmVar8 + (long)p_Var7" (binary_expression "pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2) <= local_58" (binary_expression "pmVar8 + (long)((long)&p_Var7->_mp_alloc + 2)" identifier + (cast_expression "(long)((long)&p_Var7->_mp_alloc + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((long)&p_Var7->_mp_alloc + 2)" ( (binary_expression "(long)&p_Var7->_mp_alloc + 2" (cast_expression "(long)&p_Var7->_mp_alloc" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&p_Var7->_mp_alloc" & (field_expression "p_Var7->_mp_alloc" identifier -> field_identifier))) + number_literal) )))) <= identifier) || (binary_expression "pmVar23 + (long)((long)&p_Var7->_mp_alloc + 2) <= pmVar8 + (long)p_Var7" (binary_expression "pmVar23 + (long)((long)&p_Var7->_mp_alloc + 2)" identifier + (cast_expression "(long)((long)&p_Var7->_mp_alloc + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((long)&p_Var7->_mp_alloc + 2)" ( (binary_expression "(long)&p_Var7->_mp_alloc + 2" (cast_expression "(long)&p_Var7->_mp_alloc" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&p_Var7->_mp_alloc" & (field_expression "p_Var7->_mp_alloc" identifier -> field_identifier))) + number_literal) )))) <= (binary_expression "pmVar8 + (long)p_Var7" identifier + (cast_expression "(long)p_Var7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)))) )) && (parenthesized_expression "(3 < ~(ulong)pmVar25 - (long)p_Var7)" ( (binary_expression "3 < ~(ulong)pmVar25 - (long)p_Var7" number_literal < (binary_expression "~(ulong)pmVar25 - (long)p_Var7" (unary_expression "~(ulong)pmVar25" ~ (cast_expression "(ulong)pmVar25" ( (type_descriptor "ulong" type_identifier) ) identifier)) - (cast_expression "(long)p_Var7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ))) )) (compound_statement "{\n          uVar26 = (long)new_alloc - (long)p_Var7;\n          lVar17 = 0;\n          do {\n            uVar5 = ((undefined8 *)((long)local_58 + lVar17))[1];\n            puVar1 = (undefined8 *)((long)(pmVar8 + (long)p_Var7) + lVar17);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar17);\n            puVar1[1] = uVar5;\n            lVar17 = lVar17 + 0x10;\n          } while ((uVar26 >> 1) * 0x10 != lVar17);\n          lVar17 = (long)&p_Var7->_mp_alloc + (uVar26 & 0xfffffffffffffffe);\n          if ((uVar26 & 0xfffffffffffffffe) != uVar26) goto LAB_0011d020;\n        }" { (expression_statement "uVar26 = (long)new_alloc - (long)p_Var7;" (assignment_expression "uVar26 = (long)new_alloc - (long)p_Var7" identifier = (binary_expression "(long)new_alloc - (long)p_Var7" (cast_expression "(long)new_alloc" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)p_Var7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" identifier = number_literal) ;) (do_statement "do {\n            uVar5 = ((undefined8 *)((long)local_58 + lVar17))[1];\n            puVar1 = (undefined8 *)((long)(pmVar8 + (long)p_Var7) + lVar17);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar17);\n            puVar1[1] = uVar5;\n            lVar17 = lVar17 + 0x10;\n          } while ((uVar26 >> 1) * 0x10 != lVar17);" do (compound_statement "{\n            uVar5 = ((undefined8 *)((long)local_58 + lVar17))[1];\n            puVar1 = (undefined8 *)((long)(pmVar8 + (long)p_Var7) + lVar17);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar17);\n            puVar1[1] = uVar5;\n            lVar17 = lVar17 + 0x10;\n          }" { (expression_statement "uVar5 = ((undefined8 *)((long)local_58 + lVar17))[1];" (assignment_expression "uVar5 = ((undefined8 *)((long)local_58 + lVar17))[1]" identifier = (subscript_expression "((undefined8 *)((long)local_58 + lVar17))[1]" (parenthesized_expression "((undefined8 *)((long)local_58 + lVar17))" ( (cast_expression "(undefined8 *)((long)local_58 + lVar17)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + lVar17)" ( (binary_expression "(long)local_58 + lVar17" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "puVar1 = (undefined8 *)((long)(pmVar8 + (long)p_Var7) + lVar17);" (assignment_expression "puVar1 = (undefined8 *)((long)(pmVar8 + (long)p_Var7) + lVar17)" identifier = (cast_expression "(undefined8 *)((long)(pmVar8 + (long)p_Var7) + lVar17)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(pmVar8 + (long)p_Var7) + lVar17)" ( (binary_expression "(long)(pmVar8 + (long)p_Var7) + lVar17" (cast_expression "(long)(pmVar8 + (long)p_Var7)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pmVar8 + (long)p_Var7)" ( (binary_expression "pmVar8 + (long)p_Var7" identifier + (cast_expression "(long)p_Var7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) + identifier) )))) ;) (expression_statement "*puVar1 = *(undefined8 *)((long)local_58 + lVar17);" (assignment_expression "*puVar1 = *(undefined8 *)((long)local_58 + lVar17)" (pointer_expression "*puVar1" * identifier) = (pointer_expression "*(undefined8 *)((long)local_58 + lVar17)" * (cast_expression "(undefined8 *)((long)local_58 + lVar17)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + lVar17)" ( (binary_expression "(long)local_58 + lVar17" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ;) (expression_statement "puVar1[1] = uVar5;" (assignment_expression "puVar1[1] = uVar5" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "lVar17 = lVar17 + 0x10;" (assignment_expression "lVar17 = lVar17 + 0x10" identifier = (binary_expression "lVar17 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "((uVar26 >> 1) * 0x10 != lVar17)" ( (binary_expression "(uVar26 >> 1) * 0x10 != lVar17" (binary_expression "(uVar26 >> 1) * 0x10" (parenthesized_expression "(uVar26 >> 1)" ( (binary_expression "uVar26 >> 1" identifier >> number_literal) )) * number_literal) != identifier) )) ;) (expression_statement "lVar17 = (long)&p_Var7->_mp_alloc + (uVar26 & 0xfffffffffffffffe);" (assignment_expression "lVar17 = (long)&p_Var7->_mp_alloc + (uVar26 & 0xfffffffffffffffe)" identifier = (binary_expression "(long)&p_Var7->_mp_alloc + (uVar26 & 0xfffffffffffffffe)" (cast_expression "(long)&p_Var7->_mp_alloc" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&p_Var7->_mp_alloc" & (field_expression "p_Var7->_mp_alloc" identifier -> field_identifier))) + (parenthesized_expression "(uVar26 & 0xfffffffffffffffe)" ( (binary_expression "uVar26 & 0xfffffffffffffffe" identifier & number_literal) )))) ;) (if_statement "if ((uVar26 & 0xfffffffffffffffe) != uVar26) goto LAB_0011d020;" if (parenthesized_expression "((uVar26 & 0xfffffffffffffffe) != uVar26)" ( (binary_expression "(uVar26 & 0xfffffffffffffffe) != uVar26" (parenthesized_expression "(uVar26 & 0xfffffffffffffffe)" ( (binary_expression "uVar26 & 0xfffffffffffffffe" identifier & number_literal) )) != identifier) )) (goto_statement "goto LAB_0011d020;" goto statement_identifier ;)) }) (else_clause "else {\n          do {\n            pmVar8[(long)p_Var7] = pmVar23[(long)p_Var7];\n            p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n          } while (new_alloc != p_Var7);\n        }" else (compound_statement "{\n          do {\n            pmVar8[(long)p_Var7] = pmVar23[(long)p_Var7];\n            p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n          } while (new_alloc != p_Var7);\n        }" { (do_statement "do {\n            pmVar8[(long)p_Var7] = pmVar23[(long)p_Var7];\n            p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n          } while (new_alloc != p_Var7);" do (compound_statement "{\n            pmVar8[(long)p_Var7] = pmVar23[(long)p_Var7];\n            p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);\n          }" { (expression_statement "pmVar8[(long)p_Var7] = pmVar23[(long)p_Var7];" (assignment_expression "pmVar8[(long)p_Var7] = pmVar23[(long)p_Var7]" (subscript_expression "pmVar8[(long)p_Var7]" identifier [ (cast_expression "(long)p_Var7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (subscript_expression "pmVar23[(long)p_Var7]" identifier [ (cast_expression "(long)p_Var7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ])) ;) (expression_statement "p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1);" (assignment_expression "p_Var7 = (mpz_srcptr)((long)&p_Var7->_mp_alloc + 1)" identifier = (call_expression "(mpz_srcptr)((long)&p_Var7->_mp_alloc + 1)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "((long)&p_Var7->_mp_alloc + 1)" ( (binary_expression "(long)&p_Var7->_mp_alloc + 1" (cast_expression "(long)&p_Var7->_mp_alloc" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&p_Var7->_mp_alloc" & (field_expression "p_Var7->_mp_alloc" identifier -> field_identifier))) + number_literal) )))) ;) }) while (parenthesized_expression "(new_alloc != p_Var7)" ( (binary_expression "new_alloc != p_Var7" identifier != identifier) )) ;) }))) })) })) }) (else_clause "else if ((pmVar23 != pmVar8) && (pmVar25 != (mp_limb_t *)0xffffffffffffffff)) {\n    if ((pmVar23 + 1 < pmVar8 + 3 && pmVar8 + 1 < pmVar23 + 3) || (-6 < (long)pmVar25)) {\n      lVar17 = 1;\n      do {\n        pmVar8[lVar17] = pmVar23[lVar17];\n        lVar17 = lVar17 + 1;\n      } while (lVar17 < (long)new_alloc);\n    }\n    else {\n      uVar26 = ~(ulong)pmVar25;\n      if (-2 < (long)pmVar25) {\n        uVar26 = 1;\n      }\n      lVar17 = 8;\n      do {\n        uVar5 = ((undefined8 *)((long)pmVar23 + lVar17))[1];\n        *(undefined8 *)((long)pmVar8 + lVar17) = *(undefined8 *)((long)pmVar23 + lVar17);\n        ((undefined8 *)((long)pmVar8 + lVar17))[1] = uVar5;\n        lVar17 = lVar17 + 0x10;\n      } while (lVar17 != (uVar26 >> 1) * 0x10 + 8);\n      lVar17 = (uVar26 & 0xfffffffffffffffe) + 1;\n      if ((uVar26 & 0xfffffffffffffffe) != uVar26) {\nLAB_0011d020:\n        pmVar8[lVar17] = pmVar23[lVar17];\n      }\n    }\n  }" else (if_statement "if ((pmVar23 != pmVar8) && (pmVar25 != (mp_limb_t *)0xffffffffffffffff)) {\n    if ((pmVar23 + 1 < pmVar8 + 3 && pmVar8 + 1 < pmVar23 + 3) || (-6 < (long)pmVar25)) {\n      lVar17 = 1;\n      do {\n        pmVar8[lVar17] = pmVar23[lVar17];\n        lVar17 = lVar17 + 1;\n      } while (lVar17 < (long)new_alloc);\n    }\n    else {\n      uVar26 = ~(ulong)pmVar25;\n      if (-2 < (long)pmVar25) {\n        uVar26 = 1;\n      }\n      lVar17 = 8;\n      do {\n        uVar5 = ((undefined8 *)((long)pmVar23 + lVar17))[1];\n        *(undefined8 *)((long)pmVar8 + lVar17) = *(undefined8 *)((long)pmVar23 + lVar17);\n        ((undefined8 *)((long)pmVar8 + lVar17))[1] = uVar5;\n        lVar17 = lVar17 + 0x10;\n      } while (lVar17 != (uVar26 >> 1) * 0x10 + 8);\n      lVar17 = (uVar26 & 0xfffffffffffffffe) + 1;\n      if ((uVar26 & 0xfffffffffffffffe) != uVar26) {\nLAB_0011d020:\n        pmVar8[lVar17] = pmVar23[lVar17];\n      }\n    }\n  }" if (parenthesized_expression "((pmVar23 != pmVar8) && (pmVar25 != (mp_limb_t *)0xffffffffffffffff))" ( (binary_expression "(pmVar23 != pmVar8) && (pmVar25 != (mp_limb_t *)0xffffffffffffffff)" (parenthesized_expression "(pmVar23 != pmVar8)" ( (binary_expression "pmVar23 != pmVar8" identifier != identifier) )) && (parenthesized_expression "(pmVar25 != (mp_limb_t *)0xffffffffffffffff)" ( (binary_expression "pmVar25 != (mp_limb_t *)0xffffffffffffffff" identifier != (cast_expression "(mp_limb_t *)0xffffffffffffffff" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    if ((pmVar23 + 1 < pmVar8 + 3 && pmVar8 + 1 < pmVar23 + 3) || (-6 < (long)pmVar25)) {\n      lVar17 = 1;\n      do {\n        pmVar8[lVar17] = pmVar23[lVar17];\n        lVar17 = lVar17 + 1;\n      } while (lVar17 < (long)new_alloc);\n    }\n    else {\n      uVar26 = ~(ulong)pmVar25;\n      if (-2 < (long)pmVar25) {\n        uVar26 = 1;\n      }\n      lVar17 = 8;\n      do {\n        uVar5 = ((undefined8 *)((long)pmVar23 + lVar17))[1];\n        *(undefined8 *)((long)pmVar8 + lVar17) = *(undefined8 *)((long)pmVar23 + lVar17);\n        ((undefined8 *)((long)pmVar8 + lVar17))[1] = uVar5;\n        lVar17 = lVar17 + 0x10;\n      } while (lVar17 != (uVar26 >> 1) * 0x10 + 8);\n      lVar17 = (uVar26 & 0xfffffffffffffffe) + 1;\n      if ((uVar26 & 0xfffffffffffffffe) != uVar26) {\nLAB_0011d020:\n        pmVar8[lVar17] = pmVar23[lVar17];\n      }\n    }\n  }" { (if_statement "if ((pmVar23 + 1 < pmVar8 + 3 && pmVar8 + 1 < pmVar23 + 3) || (-6 < (long)pmVar25)) {\n      lVar17 = 1;\n      do {\n        pmVar8[lVar17] = pmVar23[lVar17];\n        lVar17 = lVar17 + 1;\n      } while (lVar17 < (long)new_alloc);\n    }\n    else {\n      uVar26 = ~(ulong)pmVar25;\n      if (-2 < (long)pmVar25) {\n        uVar26 = 1;\n      }\n      lVar17 = 8;\n      do {\n        uVar5 = ((undefined8 *)((long)pmVar23 + lVar17))[1];\n        *(undefined8 *)((long)pmVar8 + lVar17) = *(undefined8 *)((long)pmVar23 + lVar17);\n        ((undefined8 *)((long)pmVar8 + lVar17))[1] = uVar5;\n        lVar17 = lVar17 + 0x10;\n      } while (lVar17 != (uVar26 >> 1) * 0x10 + 8);\n      lVar17 = (uVar26 & 0xfffffffffffffffe) + 1;\n      if ((uVar26 & 0xfffffffffffffffe) != uVar26) {\nLAB_0011d020:\n        pmVar8[lVar17] = pmVar23[lVar17];\n      }\n    }" if (parenthesized_expression "((pmVar23 + 1 < pmVar8 + 3 && pmVar8 + 1 < pmVar23 + 3) || (-6 < (long)pmVar25))" ( (binary_expression "(pmVar23 + 1 < pmVar8 + 3 && pmVar8 + 1 < pmVar23 + 3) || (-6 < (long)pmVar25)" (parenthesized_expression "(pmVar23 + 1 < pmVar8 + 3 && pmVar8 + 1 < pmVar23 + 3)" ( (binary_expression "pmVar23 + 1 < pmVar8 + 3 && pmVar8 + 1 < pmVar23 + 3" (binary_expression "pmVar23 + 1 < pmVar8 + 3" (binary_expression "pmVar23 + 1" identifier + number_literal) < (binary_expression "pmVar8 + 3" identifier + number_literal)) && (binary_expression "pmVar8 + 1 < pmVar23 + 3" (binary_expression "pmVar8 + 1" identifier + number_literal) < (binary_expression "pmVar23 + 3" identifier + number_literal))) )) || (parenthesized_expression "(-6 < (long)pmVar25)" ( (binary_expression "-6 < (long)pmVar25" number_literal < (cast_expression "(long)pmVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) )) (compound_statement "{\n      lVar17 = 1;\n      do {\n        pmVar8[lVar17] = pmVar23[lVar17];\n        lVar17 = lVar17 + 1;\n      } while (lVar17 < (long)new_alloc);\n    }" { (expression_statement "lVar17 = 1;" (assignment_expression "lVar17 = 1" identifier = number_literal) ;) (do_statement "do {\n        pmVar8[lVar17] = pmVar23[lVar17];\n        lVar17 = lVar17 + 1;\n      } while (lVar17 < (long)new_alloc);" do (compound_statement "{\n        pmVar8[lVar17] = pmVar23[lVar17];\n        lVar17 = lVar17 + 1;\n      }" { (expression_statement "pmVar8[lVar17] = pmVar23[lVar17];" (assignment_expression "pmVar8[lVar17] = pmVar23[lVar17]" (subscript_expression "pmVar8[lVar17]" identifier [ identifier ]) = (subscript_expression "pmVar23[lVar17]" identifier [ identifier ])) ;) (expression_statement "lVar17 = lVar17 + 1;" (assignment_expression "lVar17 = lVar17 + 1" identifier = (binary_expression "lVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar17 < (long)new_alloc)" ( (binary_expression "lVar17 < (long)new_alloc" identifier < (cast_expression "(long)new_alloc" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) ;) }) (else_clause "else {\n      uVar26 = ~(ulong)pmVar25;\n      if (-2 < (long)pmVar25) {\n        uVar26 = 1;\n      }\n      lVar17 = 8;\n      do {\n        uVar5 = ((undefined8 *)((long)pmVar23 + lVar17))[1];\n        *(undefined8 *)((long)pmVar8 + lVar17) = *(undefined8 *)((long)pmVar23 + lVar17);\n        ((undefined8 *)((long)pmVar8 + lVar17))[1] = uVar5;\n        lVar17 = lVar17 + 0x10;\n      } while (lVar17 != (uVar26 >> 1) * 0x10 + 8);\n      lVar17 = (uVar26 & 0xfffffffffffffffe) + 1;\n      if ((uVar26 & 0xfffffffffffffffe) != uVar26) {\nLAB_0011d020:\n        pmVar8[lVar17] = pmVar23[lVar17];\n      }\n    }" else (compound_statement "{\n      uVar26 = ~(ulong)pmVar25;\n      if (-2 < (long)pmVar25) {\n        uVar26 = 1;\n      }\n      lVar17 = 8;\n      do {\n        uVar5 = ((undefined8 *)((long)pmVar23 + lVar17))[1];\n        *(undefined8 *)((long)pmVar8 + lVar17) = *(undefined8 *)((long)pmVar23 + lVar17);\n        ((undefined8 *)((long)pmVar8 + lVar17))[1] = uVar5;\n        lVar17 = lVar17 + 0x10;\n      } while (lVar17 != (uVar26 >> 1) * 0x10 + 8);\n      lVar17 = (uVar26 & 0xfffffffffffffffe) + 1;\n      if ((uVar26 & 0xfffffffffffffffe) != uVar26) {\nLAB_0011d020:\n        pmVar8[lVar17] = pmVar23[lVar17];\n      }\n    }" { (expression_statement "uVar26 = ~(ulong)pmVar25;" (assignment_expression "uVar26 = ~(ulong)pmVar25" identifier = (unary_expression "~(ulong)pmVar25" ~ (cast_expression "(ulong)pmVar25" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (if_statement "if (-2 < (long)pmVar25) {\n        uVar26 = 1;\n      }" if (parenthesized_expression "(-2 < (long)pmVar25)" ( (binary_expression "-2 < (long)pmVar25" number_literal < (cast_expression "(long)pmVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n        uVar26 = 1;\n      }" { (expression_statement "uVar26 = 1;" (assignment_expression "uVar26 = 1" identifier = number_literal) ;) })) (expression_statement "lVar17 = 8;" (assignment_expression "lVar17 = 8" identifier = number_literal) ;) (do_statement "do {\n        uVar5 = ((undefined8 *)((long)pmVar23 + lVar17))[1];\n        *(undefined8 *)((long)pmVar8 + lVar17) = *(undefined8 *)((long)pmVar23 + lVar17);\n        ((undefined8 *)((long)pmVar8 + lVar17))[1] = uVar5;\n        lVar17 = lVar17 + 0x10;\n      } while (lVar17 != (uVar26 >> 1) * 0x10 + 8);" do (compound_statement "{\n        uVar5 = ((undefined8 *)((long)pmVar23 + lVar17))[1];\n        *(undefined8 *)((long)pmVar8 + lVar17) = *(undefined8 *)((long)pmVar23 + lVar17);\n        ((undefined8 *)((long)pmVar8 + lVar17))[1] = uVar5;\n        lVar17 = lVar17 + 0x10;\n      }" { (expression_statement "uVar5 = ((undefined8 *)((long)pmVar23 + lVar17))[1];" (assignment_expression "uVar5 = ((undefined8 *)((long)pmVar23 + lVar17))[1]" identifier = (subscript_expression "((undefined8 *)((long)pmVar23 + lVar17))[1]" (parenthesized_expression "((undefined8 *)((long)pmVar23 + lVar17))" ( (cast_expression "(undefined8 *)((long)pmVar23 + lVar17)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pmVar23 + lVar17)" ( (binary_expression "(long)pmVar23 + lVar17" (cast_expression "(long)pmVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)pmVar8 + lVar17) = *(undefined8 *)((long)pmVar23 + lVar17);" (assignment_expression "*(undefined8 *)((long)pmVar8 + lVar17) = *(undefined8 *)((long)pmVar23 + lVar17)" (pointer_expression "*(undefined8 *)((long)pmVar8 + lVar17)" * (cast_expression "(undefined8 *)((long)pmVar8 + lVar17)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pmVar8 + lVar17)" ( (binary_expression "(long)pmVar8 + lVar17" (cast_expression "(long)pmVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (pointer_expression "*(undefined8 *)((long)pmVar23 + lVar17)" * (cast_expression "(undefined8 *)((long)pmVar23 + lVar17)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pmVar23 + lVar17)" ( (binary_expression "(long)pmVar23 + lVar17" (cast_expression "(long)pmVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ;) (expression_statement "((undefined8 *)((long)pmVar8 + lVar17))[1] = uVar5;" (assignment_expression "((undefined8 *)((long)pmVar8 + lVar17))[1] = uVar5" (subscript_expression "((undefined8 *)((long)pmVar8 + lVar17))[1]" (parenthesized_expression "((undefined8 *)((long)pmVar8 + lVar17))" ( (cast_expression "(undefined8 *)((long)pmVar8 + lVar17)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pmVar8 + lVar17)" ( (binary_expression "(long)pmVar8 + lVar17" (cast_expression "(long)pmVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = identifier) ;) (expression_statement "lVar17 = lVar17 + 0x10;" (assignment_expression "lVar17 = lVar17 + 0x10" identifier = (binary_expression "lVar17 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar17 != (uVar26 >> 1) * 0x10 + 8)" ( (binary_expression "lVar17 != (uVar26 >> 1) * 0x10 + 8" identifier != (binary_expression "(uVar26 >> 1) * 0x10 + 8" (binary_expression "(uVar26 >> 1) * 0x10" (parenthesized_expression "(uVar26 >> 1)" ( (binary_expression "uVar26 >> 1" identifier >> number_literal) )) * number_literal) + number_literal)) )) ;) (expression_statement "lVar17 = (uVar26 & 0xfffffffffffffffe) + 1;" (assignment_expression "lVar17 = (uVar26 & 0xfffffffffffffffe) + 1" identifier = (binary_expression "(uVar26 & 0xfffffffffffffffe) + 1" (parenthesized_expression "(uVar26 & 0xfffffffffffffffe)" ( (binary_expression "uVar26 & 0xfffffffffffffffe" identifier & number_literal) )) + number_literal)) ;) (if_statement "if ((uVar26 & 0xfffffffffffffffe) != uVar26) {\nLAB_0011d020:\n        pmVar8[lVar17] = pmVar23[lVar17];\n      }" if (parenthesized_expression "((uVar26 & 0xfffffffffffffffe) != uVar26)" ( (binary_expression "(uVar26 & 0xfffffffffffffffe) != uVar26" (parenthesized_expression "(uVar26 & 0xfffffffffffffffe)" ( (binary_expression "uVar26 & 0xfffffffffffffffe" identifier & number_literal) )) != identifier) )) (compound_statement "{\nLAB_0011d020:\n        pmVar8[lVar17] = pmVar23[lVar17];\n      }" { (labeled_statement "LAB_0011d020:\n        pmVar8[lVar17] = pmVar23[lVar17];" statement_identifier : (expression_statement "pmVar8[lVar17] = pmVar23[lVar17];" (assignment_expression "pmVar8[lVar17] = pmVar23[lVar17]" (subscript_expression "pmVar8[lVar17]" identifier [ identifier ]) = (subscript_expression "pmVar23[lVar17]" identifier [ identifier ])) ;)) })) }))) })))) (labeled_statement "LAB_0011ced0:\n  pmVar24 = (mp_limb_t *)\n            ((long)new_alloc - (ulong)(*(long *)((long)(pmVar8 + -1) + (long)pmVar24) == 0));" statement_identifier : (expression_statement "pmVar24 = (mp_limb_t *)\n            ((long)new_alloc - (ulong)(*(long *)((long)(pmVar8 + -1) + (long)pmVar24) == 0));" (assignment_expression "pmVar24 = (mp_limb_t *)\n            ((long)new_alloc - (ulong)(*(long *)((long)(pmVar8 + -1) + (long)pmVar24) == 0))" identifier = (cast_expression "(mp_limb_t *)\n            ((long)new_alloc - (ulong)(*(long *)((long)(pmVar8 + -1) + (long)pmVar24) == 0))" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)new_alloc - (ulong)(*(long *)((long)(pmVar8 + -1) + (long)pmVar24) == 0))" ( (binary_expression "(long)new_alloc - (ulong)(*(long *)((long)(pmVar8 + -1) + (long)pmVar24) == 0)" (cast_expression "(long)new_alloc" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (call_expression "(ulong)(*(long *)((long)(pmVar8 + -1) + (long)pmVar24) == 0)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(long *)((long)(pmVar8 + -1) + (long)pmVar24) == 0)" ( (binary_expression "*(long *)((long)(pmVar8 + -1) + (long)pmVar24) == 0" (pointer_expression "*(long *)((long)(pmVar8 + -1) + (long)pmVar24)" * (cast_expression "(long *)((long)(pmVar8 + -1) + (long)pmVar24)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(pmVar8 + -1) + (long)pmVar24)" ( (binary_expression "(long)(pmVar8 + -1) + (long)pmVar24" (cast_expression "(long)(pmVar8 + -1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pmVar8 + -1)" ( (binary_expression "pmVar8 + -1" identifier + number_literal) ))) + (cast_expression "(long)pmVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) == number_literal) )))) )))) ;)) (if_statement "if ((long)local_50->_mp_alloc < (long)new_alloc) {\n    local_60 = op1;\n    local_58 = pmVar8;\n    *(undefined8 *)(puVar14 + -8) = 0x11d187;\n    __gmpz_realloc(m,(mp_size_t)new_alloc);\n    pmVar9 = m->_mp_d;\n    pmVar20 = local_60->_mp_d;\n    pmVar8 = local_58;\n  }" if (parenthesized_expression "((long)local_50->_mp_alloc < (long)new_alloc)" ( (binary_expression "(long)local_50->_mp_alloc < (long)new_alloc" (cast_expression "(long)local_50->_mp_alloc" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "local_50->_mp_alloc" identifier -> field_identifier)) < (cast_expression "(long)new_alloc" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n    local_60 = op1;\n    local_58 = pmVar8;\n    *(undefined8 *)(puVar14 + -8) = 0x11d187;\n    __gmpz_realloc(m,(mp_size_t)new_alloc);\n    pmVar9 = m->_mp_d;\n    pmVar20 = local_60->_mp_d;\n    pmVar8 = local_58;\n  }" { (expression_statement "local_60 = op1;" (assignment_expression "local_60 = op1" identifier = identifier) ;) (expression_statement "local_58 = pmVar8;" (assignment_expression "local_58 = pmVar8" identifier = identifier) ;) (expression_statement "*(undefined8 *)(puVar14 + -8) = 0x11d187;" (assignment_expression "*(undefined8 *)(puVar14 + -8) = 0x11d187" (pointer_expression "*(undefined8 *)(puVar14 + -8)" * (cast_expression "(undefined8 *)(puVar14 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpz_realloc(m,(mp_size_t)new_alloc);" (call_expression "__gmpz_realloc(m,(mp_size_t)new_alloc)" identifier (argument_list "(m,(mp_size_t)new_alloc)" ( identifier , (cast_expression "(mp_size_t)new_alloc" ( (type_descriptor "mp_size_t" type_identifier) ) identifier) ))) ;) (expression_statement "pmVar9 = m->_mp_d;" (assignment_expression "pmVar9 = m->_mp_d" identifier = (field_expression "m->_mp_d" identifier -> field_identifier)) ;) (expression_statement "pmVar20 = local_60->_mp_d;" (assignment_expression "pmVar20 = local_60->_mp_d" identifier = (field_expression "local_60->_mp_d" identifier -> field_identifier)) ;) (expression_statement "pmVar8 = local_58;" (assignment_expression "pmVar8 = local_58" identifier = identifier) ;) })) (if_statement "if ((long)pmVar13 < (long)pmVar24) {\n    local_58 = pmVar8;\n    *(undefined8 *)(puVar14 + -8) = 0x11d0ee;\n    __gmpn_copyi(pmVar9 + (long)pmVar13,pmVar8 + (long)pmVar13,(long)pmVar24 - (long)pmVar13);\n    pmVar8 = local_58;\n    if (pmVar13 != (mp_limb_t *)0x0) goto LAB_0011d0f7;\nLAB_0011d108:\n    *pmVar9 = *pmVar9 + 1;\n    if (*pmVar9 == 0) {\n      if (pmVar24 == (mp_limb_t *)&DAT_00000001) {\nLAB_0011d151:\n        pmVar9[(long)pmVar24] = 1;\n        uVar22 = ~(uint)pmVar24;\n        goto LAB_0011cf4c;\n      }\n      pmVar8 = pmVar9 + 1;\n      *pmVar8 = *pmVar8 + 1;\n      if (*pmVar8 == 0) {\n        if (pmVar24 == (mp_limb_t *)0x2) goto LAB_0011d151;\n        pmVar8 = pmVar9 + 2;\n        *pmVar8 = *pmVar8 + 1;\n        if (*pmVar8 == 0) {\n          pmVar8 = pmVar9 + 3;\n          do {\n            if (pmVar8 == pmVar9 + (long)pmVar24) goto LAB_0011d151;\n            mVar4 = *pmVar8;\n            *pmVar8 = mVar4 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (mVar4 + 1 == 0);\n        }\n      }\n    }\n    uVar22 = -(uint)pmVar24;\n  }\n  else {\n    pmVar11 = (mp_limb_t *)((long)pmVar24 + -1);\n    if (pmVar11 != (mp_limb_t *)0xffffffffffffffff) {\n      uVar26 = pmVar8[(long)pmVar11] & ~pmVar20[(long)pmVar11];\n      pmVar13 = pmVar24;\n      while (pmVar24 = pmVar13, uVar26 == 0) {\n        pmVar24 = (mp_limb_t *)((long)pmVar11 + -1);\n        if (pmVar24 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011cf3f;\n        pmVar13 = pmVar11;\n        pmVar11 = pmVar24;\n        uVar26 = pmVar8[(long)pmVar24] & ~pmVar20[(long)pmVar24];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar14 + -8) = 0x11d108;\n      __gmpn_andn_n(pmVar9,pmVar8,pmVar20,pmVar13);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *pmVar9 = 1;\n    uVar22 = 0xffffffff;\n  }" if (parenthesized_expression "((long)pmVar13 < (long)pmVar24)" ( (binary_expression "(long)pmVar13 < (long)pmVar24" (cast_expression "(long)pmVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)pmVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n    local_58 = pmVar8;\n    *(undefined8 *)(puVar14 + -8) = 0x11d0ee;\n    __gmpn_copyi(pmVar9 + (long)pmVar13,pmVar8 + (long)pmVar13,(long)pmVar24 - (long)pmVar13);\n    pmVar8 = local_58;\n    if (pmVar13 != (mp_limb_t *)0x0) goto LAB_0011d0f7;\nLAB_0011d108:\n    *pmVar9 = *pmVar9 + 1;\n    if (*pmVar9 == 0) {\n      if (pmVar24 == (mp_limb_t *)&DAT_00000001) {\nLAB_0011d151:\n        pmVar9[(long)pmVar24] = 1;\n        uVar22 = ~(uint)pmVar24;\n        goto LAB_0011cf4c;\n      }\n      pmVar8 = pmVar9 + 1;\n      *pmVar8 = *pmVar8 + 1;\n      if (*pmVar8 == 0) {\n        if (pmVar24 == (mp_limb_t *)0x2) goto LAB_0011d151;\n        pmVar8 = pmVar9 + 2;\n        *pmVar8 = *pmVar8 + 1;\n        if (*pmVar8 == 0) {\n          pmVar8 = pmVar9 + 3;\n          do {\n            if (pmVar8 == pmVar9 + (long)pmVar24) goto LAB_0011d151;\n            mVar4 = *pmVar8;\n            *pmVar8 = mVar4 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (mVar4 + 1 == 0);\n        }\n      }\n    }\n    uVar22 = -(uint)pmVar24;\n  }" { (expression_statement "local_58 = pmVar8;" (assignment_expression "local_58 = pmVar8" identifier = identifier) ;) (expression_statement "*(undefined8 *)(puVar14 + -8) = 0x11d0ee;" (assignment_expression "*(undefined8 *)(puVar14 + -8) = 0x11d0ee" (pointer_expression "*(undefined8 *)(puVar14 + -8)" * (cast_expression "(undefined8 *)(puVar14 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_copyi(pmVar9 + (long)pmVar13,pmVar8 + (long)pmVar13,(long)pmVar24 - (long)pmVar13);" (call_expression "__gmpn_copyi(pmVar9 + (long)pmVar13,pmVar8 + (long)pmVar13,(long)pmVar24 - (long)pmVar13)" identifier (argument_list "(pmVar9 + (long)pmVar13,pmVar8 + (long)pmVar13,(long)pmVar24 - (long)pmVar13)" ( (binary_expression "pmVar9 + (long)pmVar13" identifier + (cast_expression "(long)pmVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , (binary_expression "pmVar8 + (long)pmVar13" identifier + (cast_expression "(long)pmVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , (binary_expression "(long)pmVar24 - (long)pmVar13" (cast_expression "(long)pmVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pmVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ;) (expression_statement "pmVar8 = local_58;" (assignment_expression "pmVar8 = local_58" identifier = identifier) ;) (if_statement "if (pmVar13 != (mp_limb_t *)0x0) goto LAB_0011d0f7;" if (parenthesized_expression "(pmVar13 != (mp_limb_t *)0x0)" ( (binary_expression "pmVar13 != (mp_limb_t *)0x0" identifier != (cast_expression "(mp_limb_t *)0x0" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011d0f7;" goto statement_identifier ;)) (labeled_statement "LAB_0011d108:\n    *pmVar9 = *pmVar9 + 1;" statement_identifier : (expression_statement "*pmVar9 = *pmVar9 + 1;" (assignment_expression "*pmVar9 = *pmVar9 + 1" (pointer_expression "*pmVar9" * identifier) = (binary_expression "*pmVar9 + 1" (pointer_expression "*pmVar9" * identifier) + number_literal)) ;)) (if_statement "if (*pmVar9 == 0) {\n      if (pmVar24 == (mp_limb_t *)&DAT_00000001) {\nLAB_0011d151:\n        pmVar9[(long)pmVar24] = 1;\n        uVar22 = ~(uint)pmVar24;\n        goto LAB_0011cf4c;\n      }\n      pmVar8 = pmVar9 + 1;\n      *pmVar8 = *pmVar8 + 1;\n      if (*pmVar8 == 0) {\n        if (pmVar24 == (mp_limb_t *)0x2) goto LAB_0011d151;\n        pmVar8 = pmVar9 + 2;\n        *pmVar8 = *pmVar8 + 1;\n        if (*pmVar8 == 0) {\n          pmVar8 = pmVar9 + 3;\n          do {\n            if (pmVar8 == pmVar9 + (long)pmVar24) goto LAB_0011d151;\n            mVar4 = *pmVar8;\n            *pmVar8 = mVar4 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (mVar4 + 1 == 0);\n        }\n      }\n    }" if (parenthesized_expression "(*pmVar9 == 0)" ( (binary_expression "*pmVar9 == 0" (pointer_expression "*pmVar9" * identifier) == number_literal) )) (compound_statement "{\n      if (pmVar24 == (mp_limb_t *)&DAT_00000001) {\nLAB_0011d151:\n        pmVar9[(long)pmVar24] = 1;\n        uVar22 = ~(uint)pmVar24;\n        goto LAB_0011cf4c;\n      }\n      pmVar8 = pmVar9 + 1;\n      *pmVar8 = *pmVar8 + 1;\n      if (*pmVar8 == 0) {\n        if (pmVar24 == (mp_limb_t *)0x2) goto LAB_0011d151;\n        pmVar8 = pmVar9 + 2;\n        *pmVar8 = *pmVar8 + 1;\n        if (*pmVar8 == 0) {\n          pmVar8 = pmVar9 + 3;\n          do {\n            if (pmVar8 == pmVar9 + (long)pmVar24) goto LAB_0011d151;\n            mVar4 = *pmVar8;\n            *pmVar8 = mVar4 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (mVar4 + 1 == 0);\n        }\n      }\n    }" { (if_statement "if (pmVar24 == (mp_limb_t *)&DAT_00000001) {\nLAB_0011d151:\n        pmVar9[(long)pmVar24] = 1;\n        uVar22 = ~(uint)pmVar24;\n        goto LAB_0011cf4c;\n      }" if (parenthesized_expression "(pmVar24 == (mp_limb_t *)&DAT_00000001)" ( (binary_expression "pmVar24 == (mp_limb_t *)&DAT_00000001" identifier == (cast_expression "(mp_limb_t *)&DAT_00000001" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) )) (compound_statement "{\nLAB_0011d151:\n        pmVar9[(long)pmVar24] = 1;\n        uVar22 = ~(uint)pmVar24;\n        goto LAB_0011cf4c;\n      }" { (labeled_statement "LAB_0011d151:\n        pmVar9[(long)pmVar24] = 1;" statement_identifier : (expression_statement "pmVar9[(long)pmVar24] = 1;" (assignment_expression "pmVar9[(long)pmVar24] = 1" (subscript_expression "pmVar9[(long)pmVar24]" identifier [ (cast_expression "(long)pmVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = number_literal) ;)) (expression_statement "uVar22 = ~(uint)pmVar24;" (assignment_expression "uVar22 = ~(uint)pmVar24" identifier = (unary_expression "~(uint)pmVar24" ~ (cast_expression "(uint)pmVar24" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (goto_statement "goto LAB_0011cf4c;" goto statement_identifier ;) })) (expression_statement "pmVar8 = pmVar9 + 1;" (assignment_expression "pmVar8 = pmVar9 + 1" identifier = (binary_expression "pmVar9 + 1" identifier + number_literal)) ;) (expression_statement "*pmVar8 = *pmVar8 + 1;" (assignment_expression "*pmVar8 = *pmVar8 + 1" (pointer_expression "*pmVar8" * identifier) = (binary_expression "*pmVar8 + 1" (pointer_expression "*pmVar8" * identifier) + number_literal)) ;) (if_statement "if (*pmVar8 == 0) {\n        if (pmVar24 == (mp_limb_t *)0x2) goto LAB_0011d151;\n        pmVar8 = pmVar9 + 2;\n        *pmVar8 = *pmVar8 + 1;\n        if (*pmVar8 == 0) {\n          pmVar8 = pmVar9 + 3;\n          do {\n            if (pmVar8 == pmVar9 + (long)pmVar24) goto LAB_0011d151;\n            mVar4 = *pmVar8;\n            *pmVar8 = mVar4 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (mVar4 + 1 == 0);\n        }\n      }" if (parenthesized_expression "(*pmVar8 == 0)" ( (binary_expression "*pmVar8 == 0" (pointer_expression "*pmVar8" * identifier) == number_literal) )) (compound_statement "{\n        if (pmVar24 == (mp_limb_t *)0x2) goto LAB_0011d151;\n        pmVar8 = pmVar9 + 2;\n        *pmVar8 = *pmVar8 + 1;\n        if (*pmVar8 == 0) {\n          pmVar8 = pmVar9 + 3;\n          do {\n            if (pmVar8 == pmVar9 + (long)pmVar24) goto LAB_0011d151;\n            mVar4 = *pmVar8;\n            *pmVar8 = mVar4 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (mVar4 + 1 == 0);\n        }\n      }" { (if_statement "if (pmVar24 == (mp_limb_t *)0x2) goto LAB_0011d151;" if (parenthesized_expression "(pmVar24 == (mp_limb_t *)0x2)" ( (binary_expression "pmVar24 == (mp_limb_t *)0x2" identifier == (cast_expression "(mp_limb_t *)0x2" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011d151;" goto statement_identifier ;)) (expression_statement "pmVar8 = pmVar9 + 2;" (assignment_expression "pmVar8 = pmVar9 + 2" identifier = (binary_expression "pmVar9 + 2" identifier + number_literal)) ;) (expression_statement "*pmVar8 = *pmVar8 + 1;" (assignment_expression "*pmVar8 = *pmVar8 + 1" (pointer_expression "*pmVar8" * identifier) = (binary_expression "*pmVar8 + 1" (pointer_expression "*pmVar8" * identifier) + number_literal)) ;) (if_statement "if (*pmVar8 == 0) {\n          pmVar8 = pmVar9 + 3;\n          do {\n            if (pmVar8 == pmVar9 + (long)pmVar24) goto LAB_0011d151;\n            mVar4 = *pmVar8;\n            *pmVar8 = mVar4 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (mVar4 + 1 == 0);\n        }" if (parenthesized_expression "(*pmVar8 == 0)" ( (binary_expression "*pmVar8 == 0" (pointer_expression "*pmVar8" * identifier) == number_literal) )) (compound_statement "{\n          pmVar8 = pmVar9 + 3;\n          do {\n            if (pmVar8 == pmVar9 + (long)pmVar24) goto LAB_0011d151;\n            mVar4 = *pmVar8;\n            *pmVar8 = mVar4 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (mVar4 + 1 == 0);\n        }" { (expression_statement "pmVar8 = pmVar9 + 3;" (assignment_expression "pmVar8 = pmVar9 + 3" identifier = (binary_expression "pmVar9 + 3" identifier + number_literal)) ;) (do_statement "do {\n            if (pmVar8 == pmVar9 + (long)pmVar24) goto LAB_0011d151;\n            mVar4 = *pmVar8;\n            *pmVar8 = mVar4 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (mVar4 + 1 == 0);" do (compound_statement "{\n            if (pmVar8 == pmVar9 + (long)pmVar24) goto LAB_0011d151;\n            mVar4 = *pmVar8;\n            *pmVar8 = mVar4 + 1;\n            pmVar8 = pmVar8 + 1;\n          }" { (if_statement "if (pmVar8 == pmVar9 + (long)pmVar24) goto LAB_0011d151;" if (parenthesized_expression "(pmVar8 == pmVar9 + (long)pmVar24)" ( (binary_expression "pmVar8 == pmVar9 + (long)pmVar24" identifier == (binary_expression "pmVar9 + (long)pmVar24" identifier + (cast_expression "(long)pmVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) )) (goto_statement "goto LAB_0011d151;" goto statement_identifier ;)) (expression_statement "mVar4 = *pmVar8;" (assignment_expression "mVar4 = *pmVar8" identifier = (pointer_expression "*pmVar8" * identifier)) ;) (expression_statement "*pmVar8 = mVar4 + 1;" (assignment_expression "*pmVar8 = mVar4 + 1" (pointer_expression "*pmVar8" * identifier) = (binary_expression "mVar4 + 1" identifier + number_literal)) ;) (expression_statement "pmVar8 = pmVar8 + 1;" (assignment_expression "pmVar8 = pmVar8 + 1" identifier = (binary_expression "pmVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(mVar4 + 1 == 0)" ( (binary_expression "mVar4 + 1 == 0" (binary_expression "mVar4 + 1" identifier + number_literal) == number_literal) )) ;) })) })) })) (expression_statement "uVar22 = -(uint)pmVar24;" (assignment_expression "uVar22 = -(uint)pmVar24" identifier = (unary_expression "-(uint)pmVar24" - (cast_expression "(uint)pmVar24" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) (else_clause "else {\n    pmVar11 = (mp_limb_t *)((long)pmVar24 + -1);\n    if (pmVar11 != (mp_limb_t *)0xffffffffffffffff) {\n      uVar26 = pmVar8[(long)pmVar11] & ~pmVar20[(long)pmVar11];\n      pmVar13 = pmVar24;\n      while (pmVar24 = pmVar13, uVar26 == 0) {\n        pmVar24 = (mp_limb_t *)((long)pmVar11 + -1);\n        if (pmVar24 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011cf3f;\n        pmVar13 = pmVar11;\n        pmVar11 = pmVar24;\n        uVar26 = pmVar8[(long)pmVar24] & ~pmVar20[(long)pmVar24];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar14 + -8) = 0x11d108;\n      __gmpn_andn_n(pmVar9,pmVar8,pmVar20,pmVar13);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *pmVar9 = 1;\n    uVar22 = 0xffffffff;\n  }" else (compound_statement "{\n    pmVar11 = (mp_limb_t *)((long)pmVar24 + -1);\n    if (pmVar11 != (mp_limb_t *)0xffffffffffffffff) {\n      uVar26 = pmVar8[(long)pmVar11] & ~pmVar20[(long)pmVar11];\n      pmVar13 = pmVar24;\n      while (pmVar24 = pmVar13, uVar26 == 0) {\n        pmVar24 = (mp_limb_t *)((long)pmVar11 + -1);\n        if (pmVar24 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011cf3f;\n        pmVar13 = pmVar11;\n        pmVar11 = pmVar24;\n        uVar26 = pmVar8[(long)pmVar24] & ~pmVar20[(long)pmVar24];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar14 + -8) = 0x11d108;\n      __gmpn_andn_n(pmVar9,pmVar8,pmVar20,pmVar13);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *pmVar9 = 1;\n    uVar22 = 0xffffffff;\n  }" { (expression_statement "pmVar11 = (mp_limb_t *)((long)pmVar24 + -1);" (assignment_expression "pmVar11 = (mp_limb_t *)((long)pmVar24 + -1)" identifier = (cast_expression "(mp_limb_t *)((long)pmVar24 + -1)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pmVar24 + -1)" ( (binary_expression "(long)pmVar24 + -1" (cast_expression "(long)pmVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (if_statement "if (pmVar11 != (mp_limb_t *)0xffffffffffffffff) {\n      uVar26 = pmVar8[(long)pmVar11] & ~pmVar20[(long)pmVar11];\n      pmVar13 = pmVar24;\n      while (pmVar24 = pmVar13, uVar26 == 0) {\n        pmVar24 = (mp_limb_t *)((long)pmVar11 + -1);\n        if (pmVar24 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011cf3f;\n        pmVar13 = pmVar11;\n        pmVar11 = pmVar24;\n        uVar26 = pmVar8[(long)pmVar24] & ~pmVar20[(long)pmVar24];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar14 + -8) = 0x11d108;\n      __gmpn_andn_n(pmVar9,pmVar8,pmVar20,pmVar13);\n      goto LAB_0011d108;\n    }" if (parenthesized_expression "(pmVar11 != (mp_limb_t *)0xffffffffffffffff)" ( (binary_expression "pmVar11 != (mp_limb_t *)0xffffffffffffffff" identifier != (cast_expression "(mp_limb_t *)0xffffffffffffffff" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar26 = pmVar8[(long)pmVar11] & ~pmVar20[(long)pmVar11];\n      pmVar13 = pmVar24;\n      while (pmVar24 = pmVar13, uVar26 == 0) {\n        pmVar24 = (mp_limb_t *)((long)pmVar11 + -1);\n        if (pmVar24 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011cf3f;\n        pmVar13 = pmVar11;\n        pmVar11 = pmVar24;\n        uVar26 = pmVar8[(long)pmVar24] & ~pmVar20[(long)pmVar24];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar14 + -8) = 0x11d108;\n      __gmpn_andn_n(pmVar9,pmVar8,pmVar20,pmVar13);\n      goto LAB_0011d108;\n    }" { (expression_statement "uVar26 = pmVar8[(long)pmVar11] & ~pmVar20[(long)pmVar11];" (assignment_expression "uVar26 = pmVar8[(long)pmVar11] & ~pmVar20[(long)pmVar11]" identifier = (binary_expression "pmVar8[(long)pmVar11] & ~pmVar20[(long)pmVar11]" (subscript_expression "pmVar8[(long)pmVar11]" identifier [ (cast_expression "(long)pmVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) & (unary_expression "~pmVar20[(long)pmVar11]" ~ (subscript_expression "pmVar20[(long)pmVar11]" identifier [ (cast_expression "(long)pmVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ])))) ;) (expression_statement "pmVar13 = pmVar24;" (assignment_expression "pmVar13 = pmVar24" identifier = identifier) ;) (while_statement "while (pmVar24 = pmVar13, uVar26 == 0) {\n        pmVar24 = (mp_limb_t *)((long)pmVar11 + -1);\n        if (pmVar24 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011cf3f;\n        pmVar13 = pmVar11;\n        pmVar11 = pmVar24;\n        uVar26 = pmVar8[(long)pmVar24] & ~pmVar20[(long)pmVar24];\n      }" while (parenthesized_expression "(pmVar24 = pmVar13, uVar26 == 0)" ( (comma_expression "pmVar24 = pmVar13, uVar26 == 0" (assignment_expression "pmVar24 = pmVar13" identifier = identifier) , (binary_expression "uVar26 == 0" identifier == number_literal)) )) (compound_statement "{\n        pmVar24 = (mp_limb_t *)((long)pmVar11 + -1);\n        if (pmVar24 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011cf3f;\n        pmVar13 = pmVar11;\n        pmVar11 = pmVar24;\n        uVar26 = pmVar8[(long)pmVar24] & ~pmVar20[(long)pmVar24];\n      }" { (expression_statement "pmVar24 = (mp_limb_t *)((long)pmVar11 + -1);" (assignment_expression "pmVar24 = (mp_limb_t *)((long)pmVar11 + -1)" identifier = (cast_expression "(mp_limb_t *)((long)pmVar11 + -1)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pmVar11 + -1)" ( (binary_expression "(long)pmVar11 + -1" (cast_expression "(long)pmVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (if_statement "if (pmVar24 == (mp_limb_t *)0xffffffffffffffff) goto LAB_0011cf3f;" if (parenthesized_expression "(pmVar24 == (mp_limb_t *)0xffffffffffffffff)" ( (binary_expression "pmVar24 == (mp_limb_t *)0xffffffffffffffff" identifier == (cast_expression "(mp_limb_t *)0xffffffffffffffff" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011cf3f;" goto statement_identifier ;)) (expression_statement "pmVar13 = pmVar11;" (assignment_expression "pmVar13 = pmVar11" identifier = identifier) ;) (expression_statement "pmVar11 = pmVar24;" (assignment_expression "pmVar11 = pmVar24" identifier = identifier) ;) (expression_statement "uVar26 = pmVar8[(long)pmVar24] & ~pmVar20[(long)pmVar24];" (assignment_expression "uVar26 = pmVar8[(long)pmVar24] & ~pmVar20[(long)pmVar24]" identifier = (binary_expression "pmVar8[(long)pmVar24] & ~pmVar20[(long)pmVar24]" (subscript_expression "pmVar8[(long)pmVar24]" identifier [ (cast_expression "(long)pmVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) & (unary_expression "~pmVar20[(long)pmVar24]" ~ (subscript_expression "pmVar20[(long)pmVar24]" identifier [ (cast_expression "(long)pmVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ])))) ;) })) (labeled_statement "LAB_0011d0f7:\n      *(undefined8 *)(puVar14 + -8) = 0x11d108;" statement_identifier : (expression_statement "*(undefined8 *)(puVar14 + -8) = 0x11d108;" (assignment_expression "*(undefined8 *)(puVar14 + -8) = 0x11d108" (pointer_expression "*(undefined8 *)(puVar14 + -8)" * (cast_expression "(undefined8 *)(puVar14 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "__gmpn_andn_n(pmVar9,pmVar8,pmVar20,pmVar13);" (call_expression "__gmpn_andn_n(pmVar9,pmVar8,pmVar20,pmVar13)" identifier (argument_list "(pmVar9,pmVar8,pmVar20,pmVar13)" ( identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_0011d108;" goto statement_identifier ;) })) (labeled_statement "LAB_0011cf3f:\n    *pmVar9 = 1;" statement_identifier : (expression_statement "*pmVar9 = 1;" (assignment_expression "*pmVar9 = 1" (pointer_expression "*pmVar9" * identifier) = number_literal) ;)) (expression_statement "uVar22 = 0xffffffff;" (assignment_expression "uVar22 = 0xffffffff" identifier = number_literal) ;) }))) (labeled_statement "LAB_0011cf4c:\n  local_50->_mp_size = uVar22;" statement_identifier : (expression_statement "local_50->_mp_size = uVar22;" (assignment_expression "local_50->_mp_size = uVar22" (field_expression "local_50->_mp_size" identifier -> field_identifier) = identifier) ;)) (expression_statement "puVar15 = puVar14;" (assignment_expression "puVar15 = puVar14" identifier = identifier) ;) (expression_statement "mark = __tmp_marker;" (assignment_expression "mark = __tmp_marker" identifier = identifier) ;) (goto_statement "goto joined_r0x0011d45a;" goto statement_identifier ;) (labeled_statement "code_r0x0011d43b:\n  uVar26 = uVar26 - 1;" statement_identifier : (expression_statement "uVar26 = uVar26 - 1;" (assignment_expression "uVar26 = uVar26 - 1" identifier = (binary_expression "uVar26 - 1" identifier - number_literal)) ;)) (if_statement "if (uVar26 == 0xffffffffffffffff) goto code_r0x0011d445;" if (parenthesized_expression "(uVar26 == 0xffffffffffffffff)" ( (binary_expression "uVar26 == 0xffffffffffffffff" identifier == number_literal) )) (goto_statement "goto code_r0x0011d445;" goto statement_identifier ;)) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;) (labeled_statement "code_r0x0011d445:\n  *pmVar9 = 1;" statement_identifier : (expression_statement "*pmVar9 = 1;" (assignment_expression "*pmVar9 = 1" (pointer_expression "*pmVar9" * identifier) = number_literal) ;)) (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (labeled_statement "LAB_0011d44c:\n  local_50->_mp_size = iVar6;" statement_identifier : (expression_statement "local_50->_mp_size = iVar6;" (assignment_expression "local_50->_mp_size = iVar6" (field_expression "local_50->_mp_size" identifier -> field_identifier) = identifier) ;)) (expression_statement "puVar15 = puVar16;" (assignment_expression "puVar15 = puVar16" identifier = identifier) ;) (expression_statement "mark = __tmp_marker;" (assignment_expression "mark = __tmp_marker" identifier = identifier) ;) (labeled_statement "joined_r0x0011d45a:\n  __tmp_marker = mark;" statement_identifier : (expression_statement "__tmp_marker = mark;" (assignment_expression "__tmp_marker = mark" identifier = identifier) ;)) (if_statement "if (mark != (tmp_reentrant_t *)0x0) {\n    *(undefined8 *)(puVar15 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free(mark);\n  }" if (parenthesized_expression "(mark != (tmp_reentrant_t *)0x0)" ( (binary_expression "mark != (tmp_reentrant_t *)0x0" identifier != (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(undefined8 *)(puVar15 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free(mark);\n  }" { (expression_statement "*(undefined8 *)(puVar15 + -8) = 0x11d465;" (assignment_expression "*(undefined8 *)(puVar15 + -8) = 0x11d465" (pointer_expression "*(undefined8 *)(puVar15 + -8)" * (cast_expression "(undefined8 *)(puVar15 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free(mark);" (call_expression "__gmp_tmp_reentrant_free(mark)" identifier (argument_list "(mark)" ( identifier ))) ;) })) (labeled_statement "LAB_0011cf61:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) comment (expression_statement "*(undefined8 *)(puVar15 + -8) = 0x11d8c8;" (assignment_expression "*(undefined8 *)(puVar15 + -8) = 0x11d8c8" (pointer_expression "*(undefined8 *)(puVar15 + -8)" * (cast_expression "(undefined8 *)(puVar15 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void __gmpz_ior(int *param_1,ulong param_2,ulong param_3)\n\n{\n  undefined8 *puVar1;\n  ulong *puVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  int *piVar5;\n  int iVar6;\n  ulong uVar7;\n  ulong uVar8;\n  long *plVar9;\n  long *plVar10;\n  ulong *puVar11;\n  long *plVar12;\n  long lVar13;\n  long *plVar14;\n  undefined1 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  long lVar18;\n  long lVar19;\n  long *plVar20;\n  long *plVar21;\n  int iVar22;\n  uint uVar23;\n  long *plVar24;\n  long *plVar25;\n  long *plVar26;\n  ulong uVar27;\n  long in_FS_OFFSET;\n  undefined1 auStack_78 [8];\n  long *local_70;\n  ulong local_68;\n  ulong local_60;\n  long *local_58;\n  int *local_50;\n  long local_48;\n  long local_40;\n  \n  puVar15 = auStack_78;\n  puVar17 = auStack_78;\n  puVar16 = auStack_78;\n  iVar6 = *(int *)(param_2 + 4);\n  plVar20 = (long *)(long)iVar6;\n  iVar22 = *(int *)(param_3 + 4);\n  plVar12 = (long *)(long)iVar22;\n  plVar25 = *(long **)(param_2 + 8);\n  plVar9 = *(long **)(param_3 + 8);\n  plVar10 = *(long **)(param_1 + 2);\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_48 = 0;\n  local_50 = param_1;\n  if ((long)plVar20 < 0) {\n    plVar14 = plVar12;\n    param_2 = param_3;\n    plVar24 = plVar25;\n    plVar21 = plVar9;\n    plVar26 = plVar20;\n    if ((long)plVar12 < 0) {\n      if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }\n      lVar18 = -(long)plVar12;\n      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }\n      lVar13 = *plVar25;\n      plVar14 = plVar20 + -(long)plVar21;\n      *plVar20 = lVar13 + -1;\n      if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      plVar14[lVar13] = plVar9[lVar13];\nLAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;\n      lVar18 = uVar8 + 1;\n      if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }\n      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);\n      puVar2 = puVar11 + lVar18;\n      *puVar2 = 0;\n      do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);\n      iVar6 = -((int)lVar18 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }\n  }\n  else {\n    plVar14 = plVar20;\n    plVar24 = plVar9;\n    plVar21 = plVar25;\n    plVar26 = plVar12;\n    if (-1 < (long)plVar12) {\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }\n  }\n  plVar25 = (long *)((long)plVar26 * -8);\n  if (plVar25 < (long *)0x7f01) {\n    lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0);\n    puVar15 = auStack_78 + lVar18;\n    plVar9 = (long *)((long)&local_70 + lVar18);\n    uVar8 = -(long)plVar26;\n  }\n  else {\n    local_68 = param_2;\n    local_60 = -(long)plVar26;\n    local_58 = plVar25;\n    plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);\n    plVar25 = local_58;\n    uVar8 = local_60;\n    param_2 = local_68;\n  }\n  piVar5 = local_50;\n  lVar18 = *plVar24;\n  *plVar9 = lVar18 + -1;\n  if (lVar18 == 0) {\n    if (plVar26 != (long *)0xffffffffffffffff) {\n      lVar18 = plVar24[1];\n      plVar9[1] = lVar18 + -1;\n      if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }\n    }\n  }\n  else if ((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)) {\n    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }\n  }\nLAB_0011ced0:\n  plVar25 = (long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0));\n  if ((long)*local_50 < (long)uVar8) {\n    local_60 = param_2;\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d187;\n    __gmpz_realloc(piVar5,uVar8);\n    plVar10 = *(long **)(piVar5 + 2);\n    plVar21 = *(long **)(local_60 + 8);\n    plVar9 = local_58;\n  }\n  if ((long)plVar14 < (long)plVar25) {\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d0ee;\n    __gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14);\n    plVar9 = local_58;\n    if (plVar14 != (long *)0x0) goto LAB_0011d0f7;\nLAB_0011d108:\n    *plVar10 = *plVar10 + 1;\n    if (*plVar10 == 0) {\n      if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }\n      plVar9 = plVar10 + 1;\n      *plVar9 = *plVar9 + 1;\n      if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }\n    }\n    uVar23 = -(uint)plVar25;\n  }\n  else {\n    plVar12 = (long *)((long)plVar25 + -1);\n    if (plVar12 != (long *)0xffffffffffffffff) {\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *plVar10 = 1;\n    uVar23 = 0xffffffff;\n  }\nLAB_0011cf4c:\n  local_50[1] = uVar23;\n  puVar16 = puVar15;\n  goto joined_r0x0011d45a;\ncode_r0x0011d43b:\n  uVar8 = uVar8 - 1;\n  if (uVar8 == 0xffffffffffffffff) goto code_r0x0011d445;\n  goto LAB_0011d42d;\ncode_r0x0011d445:\n  *plVar10 = 1;\n  iVar6 = -1;\nLAB_0011d44c:\n  local_50[1] = iVar6;\n  puVar16 = puVar17;\njoined_r0x0011d45a:\n  if (local_48 != 0) {\n    *(undefined8 *)(puVar16 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free();\n  }\nLAB_0011cf61:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  *(undefined8 *)(puVar16 + -8) = 0x11d8c8;\n  __stack_chk_fail();\n}\n\n" (function_definition "void __gmpz_ior(int *param_1,ulong param_2,ulong param_3)\n\n{\n  undefined8 *puVar1;\n  ulong *puVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  int *piVar5;\n  int iVar6;\n  ulong uVar7;\n  ulong uVar8;\n  long *plVar9;\n  long *plVar10;\n  ulong *puVar11;\n  long *plVar12;\n  long lVar13;\n  long *plVar14;\n  undefined1 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  long lVar18;\n  long lVar19;\n  long *plVar20;\n  long *plVar21;\n  int iVar22;\n  uint uVar23;\n  long *plVar24;\n  long *plVar25;\n  long *plVar26;\n  ulong uVar27;\n  long in_FS_OFFSET;\n  undefined1 auStack_78 [8];\n  long *local_70;\n  ulong local_68;\n  ulong local_60;\n  long *local_58;\n  int *local_50;\n  long local_48;\n  long local_40;\n  \n  puVar15 = auStack_78;\n  puVar17 = auStack_78;\n  puVar16 = auStack_78;\n  iVar6 = *(int *)(param_2 + 4);\n  plVar20 = (long *)(long)iVar6;\n  iVar22 = *(int *)(param_3 + 4);\n  plVar12 = (long *)(long)iVar22;\n  plVar25 = *(long **)(param_2 + 8);\n  plVar9 = *(long **)(param_3 + 8);\n  plVar10 = *(long **)(param_1 + 2);\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_48 = 0;\n  local_50 = param_1;\n  if ((long)plVar20 < 0) {\n    plVar14 = plVar12;\n    param_2 = param_3;\n    plVar24 = plVar25;\n    plVar21 = plVar9;\n    plVar26 = plVar20;\n    if ((long)plVar12 < 0) {\n      if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }\n      lVar18 = -(long)plVar12;\n      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }\n      lVar13 = *plVar25;\n      plVar14 = plVar20 + -(long)plVar21;\n      *plVar20 = lVar13 + -1;\n      if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      plVar14[lVar13] = plVar9[lVar13];\nLAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;\n      lVar18 = uVar8 + 1;\n      if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }\n      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);\n      puVar2 = puVar11 + lVar18;\n      *puVar2 = 0;\n      do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);\n      iVar6 = -((int)lVar18 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }\n  }\n  else {\n    plVar14 = plVar20;\n    plVar24 = plVar9;\n    plVar21 = plVar25;\n    plVar26 = plVar12;\n    if (-1 < (long)plVar12) {\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }\n  }\n  plVar25 = (long *)((long)plVar26 * -8);\n  if (plVar25 < (long *)0x7f01) {\n    lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0);\n    puVar15 = auStack_78 + lVar18;\n    plVar9 = (long *)((long)&local_70 + lVar18);\n    uVar8 = -(long)plVar26;\n  }\n  else {\n    local_68 = param_2;\n    local_60 = -(long)plVar26;\n    local_58 = plVar25;\n    plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);\n    plVar25 = local_58;\n    uVar8 = local_60;\n    param_2 = local_68;\n  }\n  piVar5 = local_50;\n  lVar18 = *plVar24;\n  *plVar9 = lVar18 + -1;\n  if (lVar18 == 0) {\n    if (plVar26 != (long *)0xffffffffffffffff) {\n      lVar18 = plVar24[1];\n      plVar9[1] = lVar18 + -1;\n      if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }\n    }\n  }\n  else if ((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)) {\n    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }\n  }\nLAB_0011ced0:\n  plVar25 = (long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0));\n  if ((long)*local_50 < (long)uVar8) {\n    local_60 = param_2;\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d187;\n    __gmpz_realloc(piVar5,uVar8);\n    plVar10 = *(long **)(piVar5 + 2);\n    plVar21 = *(long **)(local_60 + 8);\n    plVar9 = local_58;\n  }\n  if ((long)plVar14 < (long)plVar25) {\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d0ee;\n    __gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14);\n    plVar9 = local_58;\n    if (plVar14 != (long *)0x0) goto LAB_0011d0f7;\nLAB_0011d108:\n    *plVar10 = *plVar10 + 1;\n    if (*plVar10 == 0) {\n      if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }\n      plVar9 = plVar10 + 1;\n      *plVar9 = *plVar9 + 1;\n      if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }\n    }\n    uVar23 = -(uint)plVar25;\n  }\n  else {\n    plVar12 = (long *)((long)plVar25 + -1);\n    if (plVar12 != (long *)0xffffffffffffffff) {\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *plVar10 = 1;\n    uVar23 = 0xffffffff;\n  }\nLAB_0011cf4c:\n  local_50[1] = uVar23;\n  puVar16 = puVar15;\n  goto joined_r0x0011d45a;\ncode_r0x0011d43b:\n  uVar8 = uVar8 - 1;\n  if (uVar8 == 0xffffffffffffffff) goto code_r0x0011d445;\n  goto LAB_0011d42d;\ncode_r0x0011d445:\n  *plVar10 = 1;\n  iVar6 = -1;\nLAB_0011d44c:\n  local_50[1] = iVar6;\n  puVar16 = puVar17;\njoined_r0x0011d45a:\n  if (local_48 != 0) {\n    *(undefined8 *)(puVar16 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free();\n  }\nLAB_0011cf61:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  *(undefined8 *)(puVar16 + -8) = 0x11d8c8;\n  __stack_chk_fail();\n}" primitive_type (function_declarator "__gmpz_ior(int *param_1,ulong param_2,ulong param_3)" identifier (parameter_list "(int *param_1,ulong param_2,ulong param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "ulong param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined8 *puVar1;\n  ulong *puVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  int *piVar5;\n  int iVar6;\n  ulong uVar7;\n  ulong uVar8;\n  long *plVar9;\n  long *plVar10;\n  ulong *puVar11;\n  long *plVar12;\n  long lVar13;\n  long *plVar14;\n  undefined1 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  long lVar18;\n  long lVar19;\n  long *plVar20;\n  long *plVar21;\n  int iVar22;\n  uint uVar23;\n  long *plVar24;\n  long *plVar25;\n  long *plVar26;\n  ulong uVar27;\n  long in_FS_OFFSET;\n  undefined1 auStack_78 [8];\n  long *local_70;\n  ulong local_68;\n  ulong local_60;\n  long *local_58;\n  int *local_50;\n  long local_48;\n  long local_40;\n  \n  puVar15 = auStack_78;\n  puVar17 = auStack_78;\n  puVar16 = auStack_78;\n  iVar6 = *(int *)(param_2 + 4);\n  plVar20 = (long *)(long)iVar6;\n  iVar22 = *(int *)(param_3 + 4);\n  plVar12 = (long *)(long)iVar22;\n  plVar25 = *(long **)(param_2 + 8);\n  plVar9 = *(long **)(param_3 + 8);\n  plVar10 = *(long **)(param_1 + 2);\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_48 = 0;\n  local_50 = param_1;\n  if ((long)plVar20 < 0) {\n    plVar14 = plVar12;\n    param_2 = param_3;\n    plVar24 = plVar25;\n    plVar21 = plVar9;\n    plVar26 = plVar20;\n    if ((long)plVar12 < 0) {\n      if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }\n      lVar18 = -(long)plVar12;\n      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }\n      lVar13 = *plVar25;\n      plVar14 = plVar20 + -(long)plVar21;\n      *plVar20 = lVar13 + -1;\n      if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      plVar14[lVar13] = plVar9[lVar13];\nLAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;\n      lVar18 = uVar8 + 1;\n      if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }\n      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);\n      puVar2 = puVar11 + lVar18;\n      *puVar2 = 0;\n      do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);\n      iVar6 = -((int)lVar18 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }\n  }\n  else {\n    plVar14 = plVar20;\n    plVar24 = plVar9;\n    plVar21 = plVar25;\n    plVar26 = plVar12;\n    if (-1 < (long)plVar12) {\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }\n  }\n  plVar25 = (long *)((long)plVar26 * -8);\n  if (plVar25 < (long *)0x7f01) {\n    lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0);\n    puVar15 = auStack_78 + lVar18;\n    plVar9 = (long *)((long)&local_70 + lVar18);\n    uVar8 = -(long)plVar26;\n  }\n  else {\n    local_68 = param_2;\n    local_60 = -(long)plVar26;\n    local_58 = plVar25;\n    plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);\n    plVar25 = local_58;\n    uVar8 = local_60;\n    param_2 = local_68;\n  }\n  piVar5 = local_50;\n  lVar18 = *plVar24;\n  *plVar9 = lVar18 + -1;\n  if (lVar18 == 0) {\n    if (plVar26 != (long *)0xffffffffffffffff) {\n      lVar18 = plVar24[1];\n      plVar9[1] = lVar18 + -1;\n      if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }\n    }\n  }\n  else if ((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)) {\n    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }\n  }\nLAB_0011ced0:\n  plVar25 = (long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0));\n  if ((long)*local_50 < (long)uVar8) {\n    local_60 = param_2;\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d187;\n    __gmpz_realloc(piVar5,uVar8);\n    plVar10 = *(long **)(piVar5 + 2);\n    plVar21 = *(long **)(local_60 + 8);\n    plVar9 = local_58;\n  }\n  if ((long)plVar14 < (long)plVar25) {\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d0ee;\n    __gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14);\n    plVar9 = local_58;\n    if (plVar14 != (long *)0x0) goto LAB_0011d0f7;\nLAB_0011d108:\n    *plVar10 = *plVar10 + 1;\n    if (*plVar10 == 0) {\n      if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }\n      plVar9 = plVar10 + 1;\n      *plVar9 = *plVar9 + 1;\n      if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }\n    }\n    uVar23 = -(uint)plVar25;\n  }\n  else {\n    plVar12 = (long *)((long)plVar25 + -1);\n    if (plVar12 != (long *)0xffffffffffffffff) {\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *plVar10 = 1;\n    uVar23 = 0xffffffff;\n  }\nLAB_0011cf4c:\n  local_50[1] = uVar23;\n  puVar16 = puVar15;\n  goto joined_r0x0011d45a;\ncode_r0x0011d43b:\n  uVar8 = uVar8 - 1;\n  if (uVar8 == 0xffffffffffffffff) goto code_r0x0011d445;\n  goto LAB_0011d42d;\ncode_r0x0011d445:\n  *plVar10 = 1;\n  iVar6 = -1;\nLAB_0011d44c:\n  local_50[1] = iVar6;\n  puVar16 = puVar17;\njoined_r0x0011d45a:\n  if (local_48 != 0) {\n    *(undefined8 *)(puVar16 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free();\n  }\nLAB_0011cf61:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  *(undefined8 *)(puVar16 + -8) = 0x11d8c8;\n  __stack_chk_fail();\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "ulong *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "long *plVar9;" (sized_type_specifier "long" long) (pointer_declarator "*plVar9" * identifier) ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "ulong *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "long *plVar12;" (sized_type_specifier "long" long) (pointer_declarator "*plVar12" * identifier) ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar14;" (sized_type_specifier "long" long) (pointer_declarator "*plVar14" * identifier) ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "long lVar18;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar19;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar20;" (sized_type_specifier "long" long) (pointer_declarator "*plVar20" * identifier) ;) (declaration "long *plVar21;" (sized_type_specifier "long" long) (pointer_declarator "*plVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "long *plVar24;" (sized_type_specifier "long" long) (pointer_declarator "*plVar24" * identifier) ;) (declaration "long *plVar25;" (sized_type_specifier "long" long) (pointer_declarator "*plVar25" * identifier) ;) (declaration "long *plVar26;" (sized_type_specifier "long" long) (pointer_declarator "*plVar26" * identifier) ;) (declaration "ulong uVar27;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 auStack_78 [8];" type_identifier (array_declarator "auStack_78 [8]" identifier [ number_literal ]) ;) (declaration "long *local_70;" (sized_type_specifier "long" long) (pointer_declarator "*local_70" * identifier) ;) (declaration "ulong local_68;" type_identifier identifier ;) (declaration "ulong local_60;" type_identifier identifier ;) (declaration "long *local_58;" (sized_type_specifier "long" long) (pointer_declarator "*local_58" * identifier) ;) (declaration "int *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "long local_48;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "puVar15 = auStack_78;" (assignment_expression "puVar15 = auStack_78" identifier = identifier) ;) (expression_statement "puVar17 = auStack_78;" (assignment_expression "puVar17 = auStack_78" identifier = identifier) ;) (expression_statement "puVar16 = auStack_78;" (assignment_expression "puVar16 = auStack_78" identifier = identifier) ;) (expression_statement "iVar6 = *(int *)(param_2 + 4);" (assignment_expression "iVar6 = *(int *)(param_2 + 4)" identifier = (pointer_expression "*(int *)(param_2 + 4)" * (cast_expression "(int *)(param_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) ;) (expression_statement "plVar20 = (long *)(long)iVar6;" (assignment_expression "plVar20 = (long *)(long)iVar6" identifier = (cast_expression "(long *)(long)iVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (cast_expression "(long)iVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "iVar22 = *(int *)(param_3 + 4);" (assignment_expression "iVar22 = *(int *)(param_3 + 4)" identifier = (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) ))))) ;) (expression_statement "plVar12 = (long *)(long)iVar22;" (assignment_expression "plVar12 = (long *)(long)iVar22" identifier = (cast_expression "(long *)(long)iVar22" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (cast_expression "(long)iVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "plVar25 = *(long **)(param_2 + 8);" (assignment_expression "plVar25 = *(long **)(param_2 + 8)" identifier = (pointer_expression "*(long **)(param_2 + 8)" * (cast_expression "(long **)(param_2 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (expression_statement "plVar9 = *(long **)(param_3 + 8);" (assignment_expression "plVar9 = *(long **)(param_3 + 8)" identifier = (pointer_expression "*(long **)(param_3 + 8)" * (cast_expression "(long **)(param_3 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) ))))) ;) (expression_statement "plVar10 = *(long **)(param_1 + 2);" (assignment_expression "plVar10 = *(long **)(param_1 + 2)" identifier = (pointer_expression "*(long **)(param_1 + 2)" * (cast_expression "(long **)(param_1 + 2)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) ))))) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_50 = param_1;" (assignment_expression "local_50 = param_1" identifier = identifier) ;) (if_statement "if ((long)plVar20 < 0) {\n    plVar14 = plVar12;\n    param_2 = param_3;\n    plVar24 = plVar25;\n    plVar21 = plVar9;\n    plVar26 = plVar20;\n    if ((long)plVar12 < 0) {\n      if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }\n      lVar18 = -(long)plVar12;\n      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }\n      lVar13 = *plVar25;\n      plVar14 = plVar20 + -(long)plVar21;\n      *plVar20 = lVar13 + -1;\n      if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      plVar14[lVar13] = plVar9[lVar13];\nLAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;\n      lVar18 = uVar8 + 1;\n      if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }\n      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);\n      puVar2 = puVar11 + lVar18;\n      *puVar2 = 0;\n      do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);\n      iVar6 = -((int)lVar18 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }\n  }\n  else {\n    plVar14 = plVar20;\n    plVar24 = plVar9;\n    plVar21 = plVar25;\n    plVar26 = plVar12;\n    if (-1 < (long)plVar12) {\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }\n  }" if (parenthesized_expression "((long)plVar20 < 0)" ( (binary_expression "(long)plVar20 < 0" (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n    plVar14 = plVar12;\n    param_2 = param_3;\n    plVar24 = plVar25;\n    plVar21 = plVar9;\n    plVar26 = plVar20;\n    if ((long)plVar12 < 0) {\n      if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }\n      lVar18 = -(long)plVar12;\n      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }\n      lVar13 = *plVar25;\n      plVar14 = plVar20 + -(long)plVar21;\n      *plVar20 = lVar13 + -1;\n      if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      plVar14[lVar13] = plVar9[lVar13];\nLAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;\n      lVar18 = uVar8 + 1;\n      if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }\n      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);\n      puVar2 = puVar11 + lVar18;\n      *puVar2 = 0;\n      do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);\n      iVar6 = -((int)lVar18 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }\n  }" { (expression_statement "plVar14 = plVar12;" (assignment_expression "plVar14 = plVar12" identifier = identifier) ;) (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" identifier = identifier) ;) (expression_statement "plVar24 = plVar25;" (assignment_expression "plVar24 = plVar25" identifier = identifier) ;) (expression_statement "plVar21 = plVar9;" (assignment_expression "plVar21 = plVar9" identifier = identifier) ;) (expression_statement "plVar26 = plVar20;" (assignment_expression "plVar26 = plVar20" identifier = identifier) ;) (if_statement "if ((long)plVar12 < 0) {\n      if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }\n      lVar18 = -(long)plVar12;\n      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }\n      lVar13 = *plVar25;\n      plVar14 = plVar20 + -(long)plVar21;\n      *plVar20 = lVar13 + -1;\n      if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      plVar14[lVar13] = plVar9[lVar13];\nLAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;\n      lVar18 = uVar8 + 1;\n      if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }\n      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);\n      puVar2 = puVar11 + lVar18;\n      *puVar2 = 0;\n      do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);\n      iVar6 = -((int)lVar18 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }" if (parenthesized_expression "((long)plVar12 < 0)" ( (binary_expression "(long)plVar12 < 0" (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n      if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }\n      lVar18 = -(long)plVar12;\n      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }\n      lVar13 = *plVar25;\n      plVar14 = plVar20 + -(long)plVar21;\n      *plVar20 = lVar13 + -1;\n      if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      plVar14[lVar13] = plVar9[lVar13];\nLAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;\n      lVar18 = uVar8 + 1;\n      if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }\n      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);\n      puVar2 = puVar11 + lVar18;\n      *puVar2 = 0;\n      do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);\n      iVar6 = -((int)lVar18 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }" { (if_statement "if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }" if (parenthesized_expression "((long)plVar12 <= (long)plVar20)" ( (binary_expression "(long)plVar12 <= (long)plVar20" (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) <= (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n        plVar12 = plVar20;\n      }" { (expression_statement "plVar12 = plVar20;" (assignment_expression "plVar12 = plVar20" identifier = identifier) ;) })) (expression_statement "lVar18 = -(long)plVar12;" (assignment_expression "lVar18 = -(long)plVar12" identifier = (unary_expression "-(long)plVar12" - (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }" if (parenthesized_expression "((ulong)((long)plVar12 * -0x10) < 0x7f01)" ( (binary_expression "(ulong)((long)plVar12 * -0x10) < 0x7f01" (call_expression "(ulong)((long)plVar12 * -0x10)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)plVar12 * -0x10)" ( (binary_expression "(long)plVar12 * -0x10" (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) ))) < number_literal) )) (compound_statement "{\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }" { (expression_statement "lVar13 = -((long)plVar12 * -0x10 + 0x10U);" (assignment_expression "lVar13 = -((long)plVar12 * -0x10 + 0x10U)" identifier = (unary_expression "-((long)plVar12 * -0x10 + 0x10U)" - (parenthesized_expression "((long)plVar12 * -0x10 + 0x10U)" ( (binary_expression "(long)plVar12 * -0x10 + 0x10U" (binary_expression "(long)plVar12 * -0x10" (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) + number_literal) )))) ;) (expression_statement "puVar17 = auStack_78 + lVar13;" (assignment_expression "puVar17 = auStack_78 + lVar13" identifier = (binary_expression "auStack_78 + lVar13" identifier + identifier)) ;) (expression_statement "plVar20 = (long *)((long)&local_70 + lVar13);" (assignment_expression "plVar20 = (long *)((long)&local_70 + lVar13)" identifier = (cast_expression "(long *)((long)&local_70 + lVar13)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_70 + lVar13)" ( (binary_expression "(long)&local_70 + lVar13" (cast_expression "(long)&local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_70" & identifier)) + identifier) )))) ;) (expression_statement "plVar21 = plVar12;" (assignment_expression "plVar21 = plVar12" identifier = identifier) ;) }) (else_clause "else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }" else (compound_statement "{\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }" { (expression_statement "local_58 = plVar12;" (assignment_expression "local_58 = plVar12" identifier = identifier) ;) (expression_statement "plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);" (assignment_expression "plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48)" identifier = (cast_expression "(long *)__gmp_tmp_reentrant_alloc(&local_48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "__gmp_tmp_reentrant_alloc(&local_48)" identifier (argument_list "(&local_48)" ( (pointer_expression "&local_48" & identifier) ))))) ;) (expression_statement "plVar21 = local_58;" (assignment_expression "plVar21 = local_58" identifier = identifier) ;) }))) (expression_statement "lVar13 = *plVar25;" (assignment_expression "lVar13 = *plVar25" identifier = (pointer_expression "*plVar25" * identifier)) ;) (expression_statement "plVar14 = plVar20 + -(long)plVar21;" (assignment_expression "plVar14 = plVar20 + -(long)plVar21" identifier = (binary_expression "plVar20 + -(long)plVar21" identifier + (unary_expression "-(long)plVar21" - (cast_expression "(long)plVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)))) ;) (expression_statement "*plVar20 = lVar13 + -1;" (assignment_expression "*plVar20 = lVar13 + -1" (pointer_expression "*plVar20" * identifier) = (binary_expression "lVar13 + -1" identifier + number_literal)) ;) (if_statement "if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (compound_statement "{\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }" { (if_statement "if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }" if (parenthesized_expression "(plVar21 == (long *)0xffffffffffffffff)" ( (binary_expression "plVar21 == (long *)0xffffffffffffffff" identifier == (cast_expression "(long *)0xffffffffffffffff" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }" { (labeled_statement "LAB_0011d84a:\n          lVar13 = *plVar9;" statement_identifier : (expression_statement "lVar13 = *plVar9;" (assignment_expression "lVar13 = *plVar9" identifier = (pointer_expression "*plVar9" * identifier)) ;)) (expression_statement "*plVar14 = lVar13 + -1;" (assignment_expression "*plVar14 = lVar13 + -1" (pointer_expression "*plVar14" * identifier) = (binary_expression "lVar13 + -1" identifier + number_literal)) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (lVar13 == 0) goto LAB_0011d42d;" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;)) }) (else_clause "else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }" else (compound_statement "{\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }" { (expression_statement "lVar13 = plVar25[1];" (assignment_expression "lVar13 = plVar25[1]" identifier = (subscript_expression "plVar25[1]" identifier [ number_literal ])) ;) (expression_statement "plVar20[1] = lVar13 + -1;" (assignment_expression "plVar20[1] = lVar13 + -1" (subscript_expression "plVar20[1]" identifier [ number_literal ]) = (binary_expression "lVar13 + -1" identifier + number_literal)) ;) (if_statement "if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (compound_statement "{\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }" { (if_statement "if (-3 < (long)plVar21) goto LAB_0011d53d;" if (parenthesized_expression "(-3 < (long)plVar21)" ( (binary_expression "-3 < (long)plVar21" number_literal < (cast_expression "(long)plVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_0011d53d;" goto statement_identifier ;)) (expression_statement "lVar19 = plVar25[2];" (assignment_expression "lVar19 = plVar25[2]" identifier = (subscript_expression "plVar25[2]" identifier [ number_literal ])) ;) (expression_statement "plVar20[2] = lVar19 + -1;" (assignment_expression "plVar20[2] = lVar19 + -1" (subscript_expression "plVar20[2]" identifier [ number_literal ]) = (binary_expression "lVar19 + -1" identifier + number_literal)) ;) (expression_statement "lVar13 = 3;" (assignment_expression "lVar13 = 3" identifier = number_literal) ;) (while_statement "while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }" while (parenthesized_expression "(lVar19 == 0)" ( (binary_expression "lVar19 == 0" identifier == number_literal) )) (compound_statement "{\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }" { (if_statement "if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;" if (parenthesized_expression "((long *)-lVar13 == plVar12)" ( (binary_expression "(long *)-lVar13 == plVar12" (cast_expression "(long *)-lVar13" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar13" - identifier)) == identifier) )) (goto_statement "goto LAB_0011d53d;" goto statement_identifier ;)) (expression_statement "lVar19 = plVar25[lVar13];" (assignment_expression "lVar19 = plVar25[lVar13]" identifier = (subscript_expression "plVar25[lVar13]" identifier [ identifier ])) ;) (expression_statement "plVar20[lVar13] = lVar19 + -1;" (assignment_expression "plVar20[lVar13] = lVar19 + -1" (subscript_expression "plVar20[lVar13]" identifier [ identifier ]) = (binary_expression "lVar19 + -1" identifier + number_literal)) ;) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" identifier = (binary_expression "lVar13 + 1" identifier + number_literal)) ;) })) }) (else_clause "else {\n            lVar13 = 2;\n          }" else (compound_statement "{\n            lVar13 = 2;\n          }" { (expression_statement "lVar13 = 2;" (assignment_expression "lVar13 = 2" identifier = number_literal) ;) }))) (if_statement "if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }" if (parenthesized_expression "((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18))" ( (binary_expression "(plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)" (parenthesized_expression "(plVar20 != plVar25)" ( (binary_expression "plVar20 != plVar25" identifier != identifier) )) && (parenthesized_expression "((long *)-lVar13 != plVar12 && lVar13 <= lVar18)" ( (binary_expression "(long *)-lVar13 != plVar12 && lVar13 <= lVar18" (binary_expression "(long *)-lVar13 != plVar12" (cast_expression "(long *)-lVar13" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar13" - identifier)) != identifier) && (binary_expression "lVar13 <= lVar18" identifier <= identifier)) ))) )) (compound_statement "{\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }" { (expression_statement "plVar24 = plVar25 + lVar13;" (assignment_expression "plVar24 = plVar25 + lVar13" identifier = (binary_expression "plVar25 + lVar13" identifier + identifier)) ;) (expression_statement "local_58 = plVar20 + lVar13;" (assignment_expression "local_58 = plVar20 + lVar13" identifier = (binary_expression "plVar20 + lVar13" identifier + identifier)) ;) (expression_statement "local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);" (assignment_expression "local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24)" identifier = (call_expression "CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24)" identifier (argument_list "(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24)" ( (field_expression "local_60._1_7_" identifier . field_identifier) , (binary_expression "plVar20 + lVar13 + 2 <= plVar24" (binary_expression "plVar20 + lVar13 + 2" (binary_expression "plVar20 + lVar13" identifier + identifier) + number_literal) <= identifier) )))) ;) (if_statement "if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }" if (parenthesized_expression "((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13))" ( (binary_expression "(plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)" (parenthesized_expression "(plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58)" ( (binary_expression "plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58" (binary_expression "plVar20 + lVar13 + 2 <= plVar24" (binary_expression "plVar20 + lVar13 + 2" (binary_expression "plVar20 + lVar13" identifier + identifier) + number_literal) <= identifier) || (binary_expression "plVar25 + lVar13 + 2 <= local_58" (binary_expression "plVar25 + lVar13 + 2" (binary_expression "plVar25 + lVar13" identifier + identifier) + number_literal) <= identifier)) )) && (parenthesized_expression "(3 < ~(ulong)plVar21 - lVar13)" ( (binary_expression "3 < ~(ulong)plVar21 - lVar13" number_literal < (binary_expression "~(ulong)plVar21 - lVar13" (unary_expression "~(ulong)plVar21" ~ (cast_expression "(ulong)plVar21" ( (type_descriptor "ulong" type_identifier) ) identifier)) - identifier)) ))) )) (compound_statement "{\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }" { (expression_statement "local_60 = lVar18 - lVar13;" (assignment_expression "local_60 = lVar18 - lVar13" identifier = (binary_expression "lVar18 - lVar13" identifier - identifier)) ;) (expression_statement "lVar19 = 0;" (assignment_expression "lVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);" do (compound_statement "{\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              }" { (expression_statement "uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];" (assignment_expression "uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1]" identifier = (subscript_expression "((undefined8 *)((long)plVar24 + lVar19))[1]" (parenthesized_expression "((undefined8 *)((long)plVar24 + lVar19))" ( (cast_expression "(undefined8 *)((long)plVar24 + lVar19)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar24 + lVar19)" ( (binary_expression "(long)plVar24 + lVar19" (cast_expression "(long)plVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);" (assignment_expression "*(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19)" (pointer_expression "*(undefined8 *)((long)local_58 + lVar19)" * (cast_expression "(undefined8 *)((long)local_58 + lVar19)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + lVar19)" ( (binary_expression "(long)local_58 + lVar19" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (pointer_expression "*(undefined8 *)((long)plVar24 + lVar19)" * (cast_expression "(undefined8 *)((long)plVar24 + lVar19)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar24 + lVar19)" ( (binary_expression "(long)plVar24 + lVar19" (cast_expression "(long)plVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ;) (expression_statement "((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;" (assignment_expression "((undefined8 *)((long)local_58 + lVar19))[1] = uVar4" (subscript_expression "((undefined8 *)((long)local_58 + lVar19))[1]" (parenthesized_expression "((undefined8 *)((long)local_58 + lVar19))" ( (cast_expression "(undefined8 *)((long)local_58 + lVar19)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + lVar19)" ( (binary_expression "(long)local_58 + lVar19" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = identifier) ;) (expression_statement "lVar19 = lVar19 + 0x10;" (assignment_expression "lVar19 = lVar19 + 0x10" identifier = (binary_expression "lVar19 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar19 != (local_60 >> 1) * 0x10)" ( (binary_expression "lVar19 != (local_60 >> 1) * 0x10" identifier != (binary_expression "(local_60 >> 1) * 0x10" (parenthesized_expression "(local_60 >> 1)" ( (binary_expression "local_60 >> 1" identifier >> number_literal) )) * number_literal)) )) ;) (expression_statement "lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);" (assignment_expression "lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe)" identifier = (binary_expression "lVar13 + (local_60 & 0xfffffffffffffffe)" identifier + (parenthesized_expression "(local_60 & 0xfffffffffffffffe)" ( (binary_expression "local_60 & 0xfffffffffffffffe" identifier & number_literal) )))) ;) (if_statement "if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }" if (parenthesized_expression "(local_60 != (local_60 & 0xfffffffffffffffe))" ( (binary_expression "local_60 != (local_60 & 0xfffffffffffffffe)" identifier != (parenthesized_expression "(local_60 & 0xfffffffffffffffe)" ( (binary_expression "local_60 & 0xfffffffffffffffe" identifier & number_literal) ))) )) (compound_statement "{\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }" { (labeled_statement "LAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];" statement_identifier : (expression_statement "plVar20[lVar13] = plVar25[lVar13];" (assignment_expression "plVar20[lVar13] = plVar25[lVar13]" (subscript_expression "plVar20[lVar13]" identifier [ identifier ]) = (subscript_expression "plVar25[lVar13]" identifier [ identifier ])) ;)) })) }) (else_clause "else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }" else (compound_statement "{\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }" { (do_statement "do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);" do (compound_statement "{\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              }" { (expression_statement "plVar20[lVar13] = plVar25[lVar13];" (assignment_expression "plVar20[lVar13] = plVar25[lVar13]" (subscript_expression "plVar20[lVar13]" identifier [ identifier ]) = (subscript_expression "plVar25[lVar13]" identifier [ identifier ])) ;) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" identifier = (binary_expression "lVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((long *)-lVar13 != plVar12)" ( (binary_expression "(long *)-lVar13 != plVar12" (cast_expression "(long *)-lVar13" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar13" - identifier)) != identifier) )) ;) }))) })) (labeled_statement "LAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;" statement_identifier : (expression_statement "uVar8 = ~(ulong)plVar21;" (assignment_expression "uVar8 = ~(ulong)plVar21" identifier = (unary_expression "~(ulong)plVar21" ~ (cast_expression "(ulong)plVar21" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;)) (expression_statement "lVar13 = *plVar9;" (assignment_expression "lVar13 = *plVar9" identifier = (pointer_expression "*plVar9" * identifier)) ;) (expression_statement "*plVar14 = lVar13 + -1;" (assignment_expression "*plVar14 = lVar13 + -1" (pointer_expression "*plVar14" * identifier) = (binary_expression "lVar13 + -1" identifier + number_literal)) ;) (if_statement "if (lVar13 == 0) goto LAB_0011d551;" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011d551;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;" statement_identifier : (if_statement "if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;" if (parenthesized_expression "((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff))" ( (binary_expression "(plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)" (parenthesized_expression "(plVar9 == plVar14)" ( (binary_expression "plVar9 == plVar14" identifier == identifier) )) || (parenthesized_expression "(plVar21 == (long *)0xffffffffffffffff)" ( (binary_expression "plVar21 == (long *)0xffffffffffffffff" identifier == (cast_expression "(long *)0xffffffffffffffff" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;))) (if_statement "if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }" if (parenthesized_expression "((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21))" ( (binary_expression "(plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)" (parenthesized_expression "(plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3)" ( (binary_expression "plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3" (binary_expression "plVar9 + 1 < plVar20 + (3 - (long)plVar21)" (binary_expression "plVar9 + 1" identifier + number_literal) < (binary_expression "plVar20 + (3 - (long)plVar21)" identifier + (parenthesized_expression "(3 - (long)plVar21)" ( (binary_expression "3 - (long)plVar21" number_literal - (cast_expression "(long)plVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) && (binary_expression "plVar20 + (1 - (long)plVar21) < plVar9 + 3" (binary_expression "plVar20 + (1 - (long)plVar21)" identifier + (parenthesized_expression "(1 - (long)plVar21)" ( (binary_expression "1 - (long)plVar21" number_literal - (cast_expression "(long)plVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) < (binary_expression "plVar9 + 3" identifier + number_literal))) )) || (parenthesized_expression "(-6 < (long)plVar21)" ( (binary_expression "-6 < (long)plVar21" number_literal < (cast_expression "(long)plVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) )) (compound_statement "{\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }" { (expression_statement "lVar13 = 1;" (assignment_expression "lVar13 = 1" identifier = number_literal) ;) (do_statement "do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);" do (compound_statement "{\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          }" { (expression_statement "plVar14[lVar13] = plVar9[lVar13];" (assignment_expression "plVar14[lVar13] = plVar9[lVar13]" (subscript_expression "plVar14[lVar13]" identifier [ identifier ]) = (subscript_expression "plVar9[lVar13]" identifier [ identifier ])) ;) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" identifier = (binary_expression "lVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((long *)-lVar13 != plVar12 && lVar13 <= lVar18)" ( (binary_expression "(long *)-lVar13 != plVar12 && lVar13 <= lVar18" (binary_expression "(long *)-lVar13 != plVar12" (cast_expression "(long *)-lVar13" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar13" - identifier)) != identifier) && (binary_expression "lVar13 <= lVar18" identifier <= identifier)) )) ;) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (if_statement "if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }" if (parenthesized_expression "((long)plVar21 < -1)" ( (binary_expression "(long)plVar21 < -1" (cast_expression "(long)plVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n          uVar7 = uVar8;\n        }" { (expression_statement "uVar7 = uVar8;" (assignment_expression "uVar7 = uVar8" identifier = identifier) ;) })) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);" do (compound_statement "{\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        }" { (expression_statement "puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);" (assignment_expression "puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8)" identifier = (cast_expression "(undefined8 *)((long)plVar9 + lVar18 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar9 + lVar18 + 8)" ( (binary_expression "(long)plVar9 + lVar18 + 8" (binary_expression "(long)plVar9 + lVar18" (cast_expression "(long)plVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar4 = puVar3[1];" (assignment_expression "uVar4 = puVar3[1]" identifier = (subscript_expression "puVar3[1]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);" (assignment_expression "puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18)" identifier = (cast_expression "(undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(plVar20 + (1 - (long)plVar21)) + lVar18)" ( (binary_expression "(long)(plVar20 + (1 - (long)plVar21)) + lVar18" (cast_expression "(long)(plVar20 + (1 - (long)plVar21))" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar20 + (1 - (long)plVar21))" ( (binary_expression "plVar20 + (1 - (long)plVar21)" identifier + (parenthesized_expression "(1 - (long)plVar21)" ( (binary_expression "1 - (long)plVar21" number_literal - (cast_expression "(long)plVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ))) + identifier) )))) ;) (expression_statement "*puVar1 = *puVar3;" (assignment_expression "*puVar1 = *puVar3" (pointer_expression "*puVar1" * identifier) = (pointer_expression "*puVar3" * identifier)) ;) (expression_statement "puVar1[1] = uVar4;" (assignment_expression "puVar1[1] = uVar4" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "lVar18 = lVar18 + 0x10;" (assignment_expression "lVar18 = lVar18 + 0x10" identifier = (binary_expression "lVar18 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar18 != (uVar7 >> 1) * 0x10)" ( (binary_expression "lVar18 != (uVar7 >> 1) * 0x10" identifier != (binary_expression "(uVar7 >> 1) * 0x10" (parenthesized_expression "(uVar7 >> 1)" ( (binary_expression "uVar7 >> 1" identifier >> number_literal) )) * number_literal)) )) ;) (expression_statement "lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;" (assignment_expression "lVar13 = (uVar7 & 0xfffffffffffffffe) + 1" identifier = (binary_expression "(uVar7 & 0xfffffffffffffffe) + 1" (parenthesized_expression "(uVar7 & 0xfffffffffffffffe)" ( (binary_expression "uVar7 & 0xfffffffffffffffe" identifier & number_literal) )) + number_literal)) ;) (if_statement "if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;" if (parenthesized_expression "(uVar7 == (uVar7 & 0xfffffffffffffffe))" ( (binary_expression "uVar7 == (uVar7 & 0xfffffffffffffffe)" identifier == (parenthesized_expression "(uVar7 & 0xfffffffffffffffe)" ( (binary_expression "uVar7 & 0xfffffffffffffffe" identifier & number_literal) ))) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;)) }) (else_clause "else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }" else (compound_statement "{\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }" { (if_statement "if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }" if (parenthesized_expression "(plVar20 != plVar25)" ( (binary_expression "plVar20 != plVar25" identifier != identifier) )) (compound_statement "{\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }" { (if_statement "if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;" if (parenthesized_expression "(plVar21 == (long *)0xffffffffffffffff)" ( (binary_expression "plVar21 == (long *)0xffffffffffffffff" identifier == (cast_expression "(long *)0xffffffffffffffff" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011d84a;" goto statement_identifier ;)) (if_statement "if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }" if (parenthesized_expression "((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21))" ( (binary_expression "(plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)" (parenthesized_expression "(plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3)" ( (binary_expression "plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3" (binary_expression "plVar25 + 1 < plVar20 + 3" (binary_expression "plVar25 + 1" identifier + number_literal) < (binary_expression "plVar20 + 3" identifier + number_literal)) && (binary_expression "plVar20 + 1 < plVar25 + 3" (binary_expression "plVar20 + 1" identifier + number_literal) < (binary_expression "plVar25 + 3" identifier + number_literal))) )) || (parenthesized_expression "(-6 < (long)plVar21)" ( (binary_expression "-6 < (long)plVar21" number_literal < (cast_expression "(long)plVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) )) (compound_statement "{\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }" { (expression_statement "lVar13 = 1;" (assignment_expression "lVar13 = 1" identifier = number_literal) ;) (do_statement "do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);" do (compound_statement "{\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            }" { (expression_statement "plVar20[lVar13] = plVar25[lVar13];" (assignment_expression "plVar20[lVar13] = plVar25[lVar13]" (subscript_expression "plVar20[lVar13]" identifier [ identifier ]) = (subscript_expression "plVar25[lVar13]" identifier [ identifier ])) ;) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" identifier = (binary_expression "lVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((long *)-lVar13 != plVar12 && lVar13 <= lVar18)" ( (binary_expression "(long *)-lVar13 != plVar12 && lVar13 <= lVar18" (binary_expression "(long *)-lVar13 != plVar12" (cast_expression "(long *)-lVar13" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar13" - identifier)) != identifier) && (binary_expression "lVar13 <= lVar18" identifier <= identifier)) )) ;) }) (else_clause "else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }" else (compound_statement "{\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }" { (expression_statement "lVar13 = 8;" (assignment_expression "lVar13 = 8" identifier = number_literal) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (if_statement "if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }" if (parenthesized_expression "((long)plVar21 < -1)" ( (binary_expression "(long)plVar21 < -1" (cast_expression "(long)plVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n              uVar8 = ~(ulong)plVar21;\n            }" { (expression_statement "uVar8 = ~(ulong)plVar21;" (assignment_expression "uVar8 = ~(ulong)plVar21" identifier = (unary_expression "~(ulong)plVar21" ~ (cast_expression "(ulong)plVar21" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) })) (do_statement "do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);" do (compound_statement "{\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            }" { (expression_statement "uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];" (assignment_expression "uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1]" identifier = (subscript_expression "((undefined8 *)((long)plVar25 + lVar13))[1]" (parenthesized_expression "((undefined8 *)((long)plVar25 + lVar13))" ( (cast_expression "(undefined8 *)((long)plVar25 + lVar13)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar25 + lVar13)" ( (binary_expression "(long)plVar25 + lVar13" (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);" (assignment_expression "*(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13)" (pointer_expression "*(undefined8 *)((long)plVar20 + lVar13)" * (cast_expression "(undefined8 *)((long)plVar20 + lVar13)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar20 + lVar13)" ( (binary_expression "(long)plVar20 + lVar13" (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (pointer_expression "*(undefined8 *)((long)plVar25 + lVar13)" * (cast_expression "(undefined8 *)((long)plVar25 + lVar13)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar25 + lVar13)" ( (binary_expression "(long)plVar25 + lVar13" (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ;) (expression_statement "((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;" (assignment_expression "((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4" (subscript_expression "((undefined8 *)((long)plVar20 + lVar13))[1]" (parenthesized_expression "((undefined8 *)((long)plVar20 + lVar13))" ( (cast_expression "(undefined8 *)((long)plVar20 + lVar13)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar20 + lVar13)" ( (binary_expression "(long)plVar20 + lVar13" (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = identifier) ;) (expression_statement "lVar13 = lVar13 + 0x10;" (assignment_expression "lVar13 = lVar13 + 0x10" identifier = (binary_expression "lVar13 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar13 != (uVar8 >> 1) * 0x10 + 8)" ( (binary_expression "lVar13 != (uVar8 >> 1) * 0x10 + 8" identifier != (binary_expression "(uVar8 >> 1) * 0x10 + 8" (binary_expression "(uVar8 >> 1) * 0x10" (parenthesized_expression "(uVar8 >> 1)" ( (binary_expression "uVar8 >> 1" identifier >> number_literal) )) * number_literal) + number_literal)) )) ;) (expression_statement "lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;" (assignment_expression "lVar13 = (uVar8 & 0xfffffffffffffffe) + 1" identifier = (binary_expression "(uVar8 & 0xfffffffffffffffe) + 1" (parenthesized_expression "(uVar8 & 0xfffffffffffffffe)" ( (binary_expression "uVar8 & 0xfffffffffffffffe" identifier & number_literal) )) + number_literal)) ;) (if_statement "if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;" if (parenthesized_expression "(uVar8 != (uVar8 & 0xfffffffffffffffe))" ( (binary_expression "uVar8 != (uVar8 & 0xfffffffffffffffe)" identifier != (parenthesized_expression "(uVar8 & 0xfffffffffffffffe)" ( (binary_expression "uVar8 & 0xfffffffffffffffe" identifier & number_literal) ))) )) (goto_statement "goto LAB_0011d534;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0011d53d;" goto statement_identifier ;) })) (expression_statement "lVar13 = *plVar9;" (assignment_expression "lVar13 = *plVar9" identifier = (pointer_expression "*plVar9" * identifier)) ;) (expression_statement "*plVar14 = lVar13 + -1;" (assignment_expression "*plVar14 = lVar13 + -1" (pointer_expression "*plVar14" * identifier) = (binary_expression "lVar13 + -1" identifier + number_literal)) ;) (if_statement "if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }" if (parenthesized_expression "(lVar13 != 0)" ( (binary_expression "lVar13 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }" { (expression_statement "uVar8 = ~(ulong)plVar21;" (assignment_expression "uVar8 = ~(ulong)plVar21" identifier = (unary_expression "~(ulong)plVar21" ~ (cast_expression "(ulong)plVar21" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (goto_statement "goto LAB_0011d3a0;" goto statement_identifier ;) })) (if_statement "if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }" if (parenthesized_expression "(plVar21 == (long *)0xffffffffffffffff)" ( (binary_expression "plVar21 == (long *)0xffffffffffffffff" identifier == (cast_expression "(long *)0xffffffffffffffff" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;) })) (labeled_statement "LAB_0011d551:\n        uVar8 = ~(ulong)plVar21;" statement_identifier : (expression_statement "uVar8 = ~(ulong)plVar21;" (assignment_expression "uVar8 = ~(ulong)plVar21" identifier = (unary_expression "~(ulong)plVar21" ~ (cast_expression "(ulong)plVar21" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;)) (expression_statement "lVar13 = plVar9[1];" (assignment_expression "lVar13 = plVar9[1]" identifier = (subscript_expression "plVar9[1]" identifier [ number_literal ])) ;) (expression_statement "plVar14[1] = lVar13 + -1;" (assignment_expression "plVar14[1] = lVar13 + -1" (subscript_expression "plVar14[1]" identifier [ number_literal ]) = (binary_expression "lVar13 + -1" identifier + number_literal)) ;) (if_statement "if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }" { (if_statement "if (-3 < (long)plVar21) goto LAB_0011d42d;" if (parenthesized_expression "(-3 < (long)plVar21)" ( (binary_expression "-3 < (long)plVar21" number_literal < (cast_expression "(long)plVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;)) (expression_statement "lVar19 = plVar9[2];" (assignment_expression "lVar19 = plVar9[2]" identifier = (subscript_expression "plVar9[2]" identifier [ number_literal ])) ;) (expression_statement "lVar13 = 3;" (assignment_expression "lVar13 = 3" identifier = number_literal) ;) (expression_statement "plVar14[2] = lVar19 + -1;" (assignment_expression "plVar14[2] = lVar19 + -1" (subscript_expression "plVar14[2]" identifier [ number_literal ]) = (binary_expression "lVar19 + -1" identifier + number_literal)) ;) (while_statement "while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }" while (parenthesized_expression "(lVar19 == 0)" ( (binary_expression "lVar19 == 0" identifier == number_literal) )) (compound_statement "{\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }" { (if_statement "if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;" if (parenthesized_expression "((long *)-lVar13 == plVar12)" ( (binary_expression "(long *)-lVar13 == plVar12" (cast_expression "(long *)-lVar13" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar13" - identifier)) == identifier) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;)) (expression_statement "lVar19 = plVar9[lVar13];" (assignment_expression "lVar19 = plVar9[lVar13]" identifier = (subscript_expression "plVar9[lVar13]" identifier [ identifier ])) ;) (expression_statement "plVar14[lVar13] = lVar19 + -1;" (assignment_expression "plVar14[lVar13] = lVar19 + -1" (subscript_expression "plVar14[lVar13]" identifier [ identifier ]) = (binary_expression "lVar19 + -1" identifier + number_literal)) ;) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" identifier = (binary_expression "lVar13 + 1" identifier + number_literal)) ;) })) }) (else_clause "else {\n          lVar13 = 2;\n        }" else (compound_statement "{\n          lVar13 = 2;\n        }" { (expression_statement "lVar13 = 2;" (assignment_expression "lVar13 = 2" identifier = number_literal) ;) }))) (if_statement "if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;" if (parenthesized_expression "((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))" ( (binary_expression "(plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0)" (parenthesized_expression "(plVar9 == plVar14)" ( (binary_expression "plVar9 == plVar14" identifier == identifier) )) || (parenthesized_expression "(SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0)" ( (binary_expression "SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0" (call_expression "SBORROW8(lVar13,lVar18)" identifier (argument_list "(lVar13,lVar18)" ( identifier , identifier ))) == (binary_expression "lVar13 + (long)plVar12 < 0" (binary_expression "lVar13 + (long)plVar12" identifier + (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal)) ))) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;)) (if_statement "if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }" if (parenthesized_expression "((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4))" ( (binary_expression "(plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)" (parenthesized_expression "(plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2)" ( (binary_expression "plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2" (binary_expression "plVar14 + lVar13 < plVar9 + lVar13 + 2" (binary_expression "plVar14 + lVar13" identifier + identifier) < (binary_expression "plVar9 + lVar13 + 2" (binary_expression "plVar9 + lVar13" identifier + identifier) + number_literal)) && (binary_expression "plVar9 + lVar13 < plVar14 + lVar13 + 2" (binary_expression "plVar9 + lVar13" identifier + identifier) < (binary_expression "plVar14 + lVar13 + 2" (binary_expression "plVar14 + lVar13" identifier + identifier) + number_literal))) )) || (parenthesized_expression "(uVar8 - lVar13 < 4)" ( (binary_expression "uVar8 - lVar13 < 4" (binary_expression "uVar8 - lVar13" identifier - identifier) < number_literal) ))) )) (compound_statement "{\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }" { (do_statement "do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);" do (compound_statement "{\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          }" { (expression_statement "plVar14[lVar13] = plVar9[lVar13];" (assignment_expression "plVar14[lVar13] = plVar9[lVar13]" (subscript_expression "plVar14[lVar13]" identifier [ identifier ]) = (subscript_expression "plVar9[lVar13]" identifier [ identifier ])) ;) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" identifier = (binary_expression "lVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((long *)-lVar13 != plVar12)" ( (binary_expression "(long *)-lVar13 != plVar12" (cast_expression "(long *)-lVar13" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (unary_expression "-lVar13" - identifier)) != identifier) )) ;) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;) })) (expression_statement "uVar7 = lVar18 - lVar13;" (assignment_expression "uVar7 = lVar18 - lVar13" identifier = (binary_expression "lVar18 - lVar13" identifier - identifier)) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);" do (compound_statement "{\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        }" { (expression_statement "puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);" (assignment_expression "puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18)" identifier = (cast_expression "(undefined8 *)((long)(plVar9 + lVar13) + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(plVar9 + lVar13) + lVar18)" ( (binary_expression "(long)(plVar9 + lVar13) + lVar18" (cast_expression "(long)(plVar9 + lVar13)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar9 + lVar13)" ( (binary_expression "plVar9 + lVar13" identifier + identifier) ))) + identifier) )))) ;) (expression_statement "uVar4 = puVar1[1];" (assignment_expression "uVar4 = puVar1[1]" identifier = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (expression_statement "puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);" (assignment_expression "puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18)" identifier = (cast_expression "(undefined8 *)((long)(plVar14 + lVar13) + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(plVar14 + lVar13) + lVar18)" ( (binary_expression "(long)(plVar14 + lVar13) + lVar18" (cast_expression "(long)(plVar14 + lVar13)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar14 + lVar13)" ( (binary_expression "plVar14 + lVar13" identifier + identifier) ))) + identifier) )))) ;) (expression_statement "*puVar3 = *puVar1;" (assignment_expression "*puVar3 = *puVar1" (pointer_expression "*puVar3" * identifier) = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "puVar3[1] = uVar4;" (assignment_expression "puVar3[1] = uVar4" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "lVar18 = lVar18 + 0x10;" (assignment_expression "lVar18 = lVar18 + 0x10" identifier = (binary_expression "lVar18 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar18 != (uVar7 >> 1) * 0x10)" ( (binary_expression "lVar18 != (uVar7 >> 1) * 0x10" identifier != (binary_expression "(uVar7 >> 1) * 0x10" (parenthesized_expression "(uVar7 >> 1)" ( (binary_expression "uVar7 >> 1" identifier >> number_literal) )) * number_literal)) )) ;) (expression_statement "lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);" (assignment_expression "lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe)" identifier = (binary_expression "lVar13 + (uVar7 & 0xfffffffffffffffe)" identifier + (parenthesized_expression "(uVar7 & 0xfffffffffffffffe)" ( (binary_expression "uVar7 & 0xfffffffffffffffe" identifier & number_literal) )))) ;) (if_statement "if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;" if (parenthesized_expression "(uVar7 == (uVar7 & 0xfffffffffffffffe))" ( (binary_expression "uVar7 == (uVar7 & 0xfffffffffffffffe)" identifier == (parenthesized_expression "(uVar7 & 0xfffffffffffffffe)" ( (binary_expression "uVar7 & 0xfffffffffffffffe" identifier & number_literal) ))) )) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;)) }))) (expression_statement "plVar14[lVar13] = plVar9[lVar13];" (assignment_expression "plVar14[lVar13] = plVar9[lVar13]" (subscript_expression "plVar14[lVar13]" identifier [ identifier ]) = (subscript_expression "plVar9[lVar13]" identifier [ identifier ])) ;) (labeled_statement "LAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;" statement_identifier : (if_statement "if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;" if (parenthesized_expression "((plVar14[uVar8] & plVar20[uVar8]) == 0)" ( (binary_expression "(plVar14[uVar8] & plVar20[uVar8]) == 0" (parenthesized_expression "(plVar14[uVar8] & plVar20[uVar8])" ( (binary_expression "plVar14[uVar8] & plVar20[uVar8]" (subscript_expression "plVar14[uVar8]" identifier [ identifier ]) & (subscript_expression "plVar20[uVar8]" identifier [ identifier ])) )) == number_literal) )) (goto_statement "goto code_r0x0011d43b;" goto statement_identifier ;))) (expression_statement "lVar18 = uVar8 + 1;" (assignment_expression "lVar18 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (if_statement "if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }" if (parenthesized_expression "(lVar18 < *local_50)" ( (binary_expression "lVar18 < *local_50" identifier < (pointer_expression "*local_50" * identifier)) )) (compound_statement "{\n        puVar11 = *(ulong **)(local_50 + 2);\n      }" { (expression_statement "puVar11 = *(ulong **)(local_50 + 2);" (assignment_expression "puVar11 = *(ulong **)(local_50 + 2)" identifier = (pointer_expression "*(ulong **)(local_50 + 2)" * (cast_expression "(ulong **)(local_50 + 2)" ( (type_descriptor "ulong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50 + 2)" ( (binary_expression "local_50 + 2" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }" else (compound_statement "{\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }" { (expression_statement "*(undefined8 *)(puVar17 + -8) = 0x11d8b7;" (assignment_expression "*(undefined8 *)(puVar17 + -8) = 0x11d8b7" (pointer_expression "*(undefined8 *)(puVar17 + -8)" * (cast_expression "(undefined8 *)(puVar17 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_58 = plVar14;" (assignment_expression "local_58 = plVar14" identifier = identifier) ;) (expression_statement "puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);" (assignment_expression "puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2)" identifier = (cast_expression "(ulong *)__gmpz_realloc(local_50,uVar8 + 2)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmpz_realloc(local_50,uVar8 + 2)" identifier (argument_list "(local_50,uVar8 + 2)" ( identifier , (binary_expression "uVar8 + 2" identifier + number_literal) ))))) ;) (expression_statement "plVar14 = local_58;" (assignment_expression "plVar14 = local_58" identifier = identifier) ;) }))) (expression_statement "*(undefined8 *)(puVar17 + -8) = 0x11d6ca;" (assignment_expression "*(undefined8 *)(puVar17 + -8) = 0x11d6ca" (pointer_expression "*(undefined8 *)(puVar17 + -8)" * (cast_expression "(undefined8 *)(puVar17 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_and_n(puVar11,plVar20,plVar14,lVar18);" (call_expression "__gmpn_and_n(puVar11,plVar20,plVar14,lVar18)" identifier (argument_list "(puVar11,plVar20,plVar14,lVar18)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar2 = puVar11 + lVar18;" (assignment_expression "puVar2 = puVar11 + lVar18" identifier = (binary_expression "puVar11 + lVar18" identifier + identifier)) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (do_statement "do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);" do (compound_statement "{\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      }" { (expression_statement "uVar8 = *puVar11;" (assignment_expression "uVar8 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "*puVar11 = *puVar11 + 1;" (assignment_expression "*puVar11 = *puVar11 + 1" (pointer_expression "*puVar11" * identifier) = (binary_expression "*puVar11 + 1" (pointer_expression "*puVar11" * identifier) + number_literal)) ;) (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(0xfffffffffffffffe < uVar8)" ( (binary_expression "0xfffffffffffffffe < uVar8" number_literal < identifier) )) ;) (expression_statement "iVar6 = -((int)lVar18 + (int)*puVar2);" (assignment_expression "iVar6 = -((int)lVar18 + (int)*puVar2)" identifier = (unary_expression "-((int)lVar18 + (int)*puVar2)" - (parenthesized_expression "((int)lVar18 + (int)*puVar2)" ( (binary_expression "(int)lVar18 + (int)*puVar2" (cast_expression "(int)lVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)*puVar2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*puVar2" * identifier))) )))) ;) (goto_statement "goto LAB_0011d44c;" goto statement_identifier ;) })) }) (else_clause "else {\n    plVar14 = plVar20;\n    plVar24 = plVar9;\n    plVar21 = plVar25;\n    plVar26 = plVar12;\n    if (-1 < (long)plVar12) {\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }\n  }" else (compound_statement "{\n    plVar14 = plVar20;\n    plVar24 = plVar9;\n    plVar21 = plVar25;\n    plVar26 = plVar12;\n    if (-1 < (long)plVar12) {\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }\n  }" { (expression_statement "plVar14 = plVar20;" (assignment_expression "plVar14 = plVar20" identifier = identifier) ;) (expression_statement "plVar24 = plVar9;" (assignment_expression "plVar24 = plVar9" identifier = identifier) ;) (expression_statement "plVar21 = plVar25;" (assignment_expression "plVar21 = plVar25" identifier = identifier) ;) (expression_statement "plVar26 = plVar12;" (assignment_expression "plVar26 = plVar12" identifier = identifier) ;) (if_statement "if (-1 < (long)plVar12) {\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }" if (parenthesized_expression "(-1 < (long)plVar12)" ( (binary_expression "-1 < (long)plVar12" number_literal < (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }" { (if_statement "if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }" if (parenthesized_expression "((long)plVar20 < (long)plVar12)" ( (binary_expression "(long)plVar20 < (long)plVar12" (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }" { (if_statement "if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }" if (parenthesized_expression "(*param_1 < iVar22)" ( (binary_expression "*param_1 < iVar22" (pointer_expression "*param_1" * identifier) < identifier) )) (compound_statement "{\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }" { (expression_statement "local_60 = CONCAT44(local_60._4_4_,iVar22);" (assignment_expression "local_60 = CONCAT44(local_60._4_4_,iVar22)" identifier = (call_expression "CONCAT44(local_60._4_4_,iVar22)" identifier (argument_list "(local_60._4_4_,iVar22)" ( (field_expression "local_60._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_70 = plVar20;" (assignment_expression "local_70 = plVar20" identifier = identifier) ;) (expression_statement "local_68 = param_2;" (assignment_expression "local_68 = param_2" identifier = identifier) ;) (expression_statement "local_58 = plVar12;" (assignment_expression "local_58 = plVar12" identifier = identifier) ;) (expression_statement "plVar10 = (long *)__gmpz_realloc(param_1,plVar12);" (assignment_expression "plVar10 = (long *)__gmpz_realloc(param_1,plVar12)" identifier = (cast_expression "(long *)__gmpz_realloc(param_1,plVar12)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "__gmpz_realloc(param_1,plVar12)" identifier (argument_list "(param_1,plVar12)" ( identifier , identifier ))))) ;) (expression_statement "plVar25 = *(long **)(local_68 + 8);" (assignment_expression "plVar25 = *(long **)(local_68 + 8)" identifier = (pointer_expression "*(long **)(local_68 + 8)" * (cast_expression "(long **)(local_68 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_68 + 8)" ( (binary_expression "local_68 + 8" identifier + number_literal) ))))) ;) (expression_statement "plVar12 = local_58;" (assignment_expression "plVar12 = local_58" identifier = identifier) ;) (expression_statement "plVar20 = local_70;" (assignment_expression "plVar20 = local_70" identifier = identifier) ;) (expression_statement "iVar22 = (int)local_60;" (assignment_expression "iVar22 = (int)local_60" identifier = (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "iVar6 = iVar22;" (assignment_expression "iVar6 = iVar22" identifier = identifier) ;) (if_statement "if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }" if (parenthesized_expression "(plVar10 != plVar9)" ( (binary_expression "plVar10 != plVar9" identifier != identifier) )) (compound_statement "{\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }" { (expression_statement "local_60 = CONCAT44(local_60._4_4_,iVar22);" (assignment_expression "local_60 = CONCAT44(local_60._4_4_,iVar22)" identifier = (call_expression "CONCAT44(local_60._4_4_,iVar22)" identifier (argument_list "(local_60._4_4_,iVar22)" ( (field_expression "local_60._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_58 = plVar20;" (assignment_expression "local_58 = plVar20" identifier = identifier) ;) (expression_statement "__gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;" (call_expression "__gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)" identifier (argument_list "(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)" ( (binary_expression "plVar10 + (long)plVar20" identifier + (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , (binary_expression "plVar9 + (long)plVar20" identifier + (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , (binary_expression "(long)plVar12 - (long)plVar20" (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ;) (expression_statement "plVar20 = local_58;" (assignment_expression "plVar20 = local_58" identifier = identifier) ;) (expression_statement "iVar6 = (int)local_60;" (assignment_expression "iVar6 = (int)local_60" identifier = (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }" if (parenthesized_expression "(plVar20 != (long *)0x0)" ( (binary_expression "plVar20 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }" { (expression_statement "local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);" (assignment_expression "local_58 = (long *)CONCAT44(local_58._4_4_,iVar6)" identifier = (cast_expression "(long *)CONCAT44(local_58._4_4_,iVar6)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(local_58._4_4_,iVar6)" identifier (argument_list "(local_58._4_4_,iVar6)" ( (field_expression "local_58._4_4_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "__gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);" (call_expression "__gmpn_ior_n(plVar10,plVar25,plVar9,plVar20)" identifier (argument_list "(plVar10,plVar25,plVar9,plVar20)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar6 = (int)local_58;" (assignment_expression "iVar6 = (int)local_58" identifier = (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) }) (else_clause "else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }" else (compound_statement "{\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }" { (if_statement "if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }" if (parenthesized_expression "(*param_1 < iVar6)" ( (binary_expression "*param_1 < iVar6" (pointer_expression "*param_1" * identifier) < identifier) )) (compound_statement "{\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }" { (expression_statement "local_60 = CONCAT44(local_60._4_4_,iVar6);" (assignment_expression "local_60 = CONCAT44(local_60._4_4_,iVar6)" identifier = (call_expression "CONCAT44(local_60._4_4_,iVar6)" identifier (argument_list "(local_60._4_4_,iVar6)" ( (field_expression "local_60._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_70 = plVar12;" (assignment_expression "local_70 = plVar12" identifier = identifier) ;) (expression_statement "local_68 = param_3;" (assignment_expression "local_68 = param_3" identifier = identifier) ;) (expression_statement "local_58 = plVar20;" (assignment_expression "local_58 = plVar20" identifier = identifier) ;) (expression_statement "plVar10 = (long *)__gmpz_realloc(param_1,plVar20);" (assignment_expression "plVar10 = (long *)__gmpz_realloc(param_1,plVar20)" identifier = (cast_expression "(long *)__gmpz_realloc(param_1,plVar20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "__gmpz_realloc(param_1,plVar20)" identifier (argument_list "(param_1,plVar20)" ( identifier , identifier ))))) ;) (expression_statement "plVar9 = *(long **)(local_68 + 8);" (assignment_expression "plVar9 = *(long **)(local_68 + 8)" identifier = (pointer_expression "*(long **)(local_68 + 8)" * (cast_expression "(long **)(local_68 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_68 + 8)" ( (binary_expression "local_68 + 8" identifier + number_literal) ))))) ;) (expression_statement "plVar12 = local_70;" (assignment_expression "plVar12 = local_70" identifier = identifier) ;) (expression_statement "plVar20 = local_58;" (assignment_expression "plVar20 = local_58" identifier = identifier) ;) (expression_statement "iVar6 = (int)local_60;" (assignment_expression "iVar6 = (int)local_60" identifier = (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }" if (parenthesized_expression "(plVar10 != plVar25)" ( (binary_expression "plVar10 != plVar25" identifier != identifier) )) (compound_statement "{\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }" { (expression_statement "local_60 = CONCAT44(local_60._4_4_,iVar6);" (assignment_expression "local_60 = CONCAT44(local_60._4_4_,iVar6)" identifier = (call_expression "CONCAT44(local_60._4_4_,iVar6)" identifier (argument_list "(local_60._4_4_,iVar6)" ( (field_expression "local_60._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_58 = plVar12;" (assignment_expression "local_58 = plVar12" identifier = identifier) ;) (expression_statement "__gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );" (call_expression "__gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      )" identifier (argument_list "(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      )" ( (binary_expression "plVar10 + (long)plVar12" identifier + (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , (binary_expression "plVar25 + (long)plVar12" identifier + (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , (binary_expression "(long)plVar20 - (long)plVar12" (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ;) (expression_statement "plVar12 = local_58;" (assignment_expression "plVar12 = local_58" identifier = identifier) ;) (expression_statement "iVar6 = (int)local_60;" (assignment_expression "iVar6 = (int)local_60" identifier = (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }" if (parenthesized_expression "(plVar12 != (long *)0x0)" ( (binary_expression "plVar12 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }" { (expression_statement "local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);" (assignment_expression "local_58 = (long *)CONCAT44(local_58._4_4_,iVar6)" identifier = (cast_expression "(long *)CONCAT44(local_58._4_4_,iVar6)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(local_58._4_4_,iVar6)" identifier (argument_list "(local_58._4_4_,iVar6)" ( (field_expression "local_58._4_4_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "__gmpn_ior_n(plVar10,plVar25,plVar9);" (call_expression "__gmpn_ior_n(plVar10,plVar25,plVar9)" identifier (argument_list "(plVar10,plVar25,plVar9)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar6 = (int)local_58;" (assignment_expression "iVar6 = (int)local_58" identifier = (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) }))) (expression_statement "local_50[1] = iVar6;" (assignment_expression "local_50[1] = iVar6" (subscript_expression "local_50[1]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_0011cf61;" goto statement_identifier ;) })) }))) (expression_statement "plVar25 = (long *)((long)plVar26 * -8);" (assignment_expression "plVar25 = (long *)((long)plVar26 * -8)" identifier = (cast_expression "(long *)((long)plVar26 * -8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar26 * -8)" ( (binary_expression "(long)plVar26 * -8" (cast_expression "(long)plVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) )))) ;) (if_statement "if (plVar25 < (long *)0x7f01) {\n    lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0);\n    puVar15 = auStack_78 + lVar18;\n    plVar9 = (long *)((long)&local_70 + lVar18);\n    uVar8 = -(long)plVar26;\n  }\n  else {\n    local_68 = param_2;\n    local_60 = -(long)plVar26;\n    local_58 = plVar25;\n    plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);\n    plVar25 = local_58;\n    uVar8 = local_60;\n    param_2 = local_68;\n  }" if (parenthesized_expression "(plVar25 < (long *)0x7f01)" ( (binary_expression "plVar25 < (long *)0x7f01" identifier < (cast_expression "(long *)0x7f01" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0);\n    puVar15 = auStack_78 + lVar18;\n    plVar9 = (long *)((long)&local_70 + lVar18);\n    uVar8 = -(long)plVar26;\n  }" { (expression_statement "lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0);" (assignment_expression "lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0)" identifier = (unary_expression "-((long)plVar25 + 0x17U & 0xfffffffffffffff0)" - (parenthesized_expression "((long)plVar25 + 0x17U & 0xfffffffffffffff0)" ( (binary_expression "(long)plVar25 + 0x17U & 0xfffffffffffffff0" (binary_expression "(long)plVar25 + 0x17U" (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) & number_literal) )))) ;) (expression_statement "puVar15 = auStack_78 + lVar18;" (assignment_expression "puVar15 = auStack_78 + lVar18" identifier = (binary_expression "auStack_78 + lVar18" identifier + identifier)) ;) (expression_statement "plVar9 = (long *)((long)&local_70 + lVar18);" (assignment_expression "plVar9 = (long *)((long)&local_70 + lVar18)" identifier = (cast_expression "(long *)((long)&local_70 + lVar18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_70 + lVar18)" ( (binary_expression "(long)&local_70 + lVar18" (cast_expression "(long)&local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_70" & identifier)) + identifier) )))) ;) (expression_statement "uVar8 = -(long)plVar26;" (assignment_expression "uVar8 = -(long)plVar26" identifier = (unary_expression "-(long)plVar26" - (cast_expression "(long)plVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) }) (else_clause "else {\n    local_68 = param_2;\n    local_60 = -(long)plVar26;\n    local_58 = plVar25;\n    plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);\n    plVar25 = local_58;\n    uVar8 = local_60;\n    param_2 = local_68;\n  }" else (compound_statement "{\n    local_68 = param_2;\n    local_60 = -(long)plVar26;\n    local_58 = plVar25;\n    plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);\n    plVar25 = local_58;\n    uVar8 = local_60;\n    param_2 = local_68;\n  }" { (expression_statement "local_68 = param_2;" (assignment_expression "local_68 = param_2" identifier = identifier) ;) (expression_statement "local_60 = -(long)plVar26;" (assignment_expression "local_60 = -(long)plVar26" identifier = (unary_expression "-(long)plVar26" - (cast_expression "(long)plVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "local_58 = plVar25;" (assignment_expression "local_58 = plVar25" identifier = identifier) ;) (expression_statement "plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);" (assignment_expression "plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25)" identifier = (cast_expression "(long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "__gmp_tmp_reentrant_alloc(&local_48,plVar25)" identifier (argument_list "(&local_48,plVar25)" ( (pointer_expression "&local_48" & identifier) , identifier ))))) ;) (expression_statement "plVar25 = local_58;" (assignment_expression "plVar25 = local_58" identifier = identifier) ;) (expression_statement "uVar8 = local_60;" (assignment_expression "uVar8 = local_60" identifier = identifier) ;) (expression_statement "param_2 = local_68;" (assignment_expression "param_2 = local_68" identifier = identifier) ;) }))) (expression_statement "piVar5 = local_50;" (assignment_expression "piVar5 = local_50" identifier = identifier) ;) (expression_statement "lVar18 = *plVar24;" (assignment_expression "lVar18 = *plVar24" identifier = (pointer_expression "*plVar24" * identifier)) ;) (expression_statement "*plVar9 = lVar18 + -1;" (assignment_expression "*plVar9 = lVar18 + -1" (pointer_expression "*plVar9" * identifier) = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (if_statement "if (lVar18 == 0) {\n    if (plVar26 != (long *)0xffffffffffffffff) {\n      lVar18 = plVar24[1];\n      plVar9[1] = lVar18 + -1;\n      if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }\n    }\n  }\n  else if ((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)) {\n    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }\n  }" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (compound_statement "{\n    if (plVar26 != (long *)0xffffffffffffffff) {\n      lVar18 = plVar24[1];\n      plVar9[1] = lVar18 + -1;\n      if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }\n    }\n  }" { (if_statement "if (plVar26 != (long *)0xffffffffffffffff) {\n      lVar18 = plVar24[1];\n      plVar9[1] = lVar18 + -1;\n      if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }\n    }" if (parenthesized_expression "(plVar26 != (long *)0xffffffffffffffff)" ( (binary_expression "plVar26 != (long *)0xffffffffffffffff" identifier != (cast_expression "(long *)0xffffffffffffffff" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      lVar18 = plVar24[1];\n      plVar9[1] = lVar18 + -1;\n      if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }\n    }" { (expression_statement "lVar18 = plVar24[1];" (assignment_expression "lVar18 = plVar24[1]" identifier = (subscript_expression "plVar24[1]" identifier [ number_literal ])) ;) (expression_statement "plVar9[1] = lVar18 + -1;" (assignment_expression "plVar9[1] = lVar18 + -1" (subscript_expression "plVar9[1]" identifier [ number_literal ]) = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (if_statement "if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }" { (if_statement "if (-3 < (long)plVar26) goto LAB_0011ced0;" if (parenthesized_expression "(-3 < (long)plVar26)" ( (binary_expression "-3 < (long)plVar26" number_literal < (cast_expression "(long)plVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_0011ced0;" goto statement_identifier ;)) (expression_statement "lVar18 = plVar24[2];" (assignment_expression "lVar18 = plVar24[2]" identifier = (subscript_expression "plVar24[2]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = 3;" (assignment_expression "uVar7 = 3" identifier = number_literal) ;) (expression_statement "plVar9[2] = lVar18 + -1;" (assignment_expression "plVar9[2] = lVar18 + -1" (subscript_expression "plVar9[2]" identifier [ number_literal ]) = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (while_statement "while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }" while (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (compound_statement "{\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }" { (if_statement "if (uVar8 == uVar7) goto LAB_0011ced0;" if (parenthesized_expression "(uVar8 == uVar7)" ( (binary_expression "uVar8 == uVar7" identifier == identifier) )) (goto_statement "goto LAB_0011ced0;" goto statement_identifier ;)) (expression_statement "lVar18 = plVar24[uVar7];" (assignment_expression "lVar18 = plVar24[uVar7]" identifier = (subscript_expression "plVar24[uVar7]" identifier [ identifier ])) ;) (expression_statement "plVar9[uVar7] = lVar18 + -1;" (assignment_expression "plVar9[uVar7] = lVar18 + -1" (subscript_expression "plVar9[uVar7]" identifier [ identifier ]) = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) })) }) (else_clause "else {\n        uVar7 = 2;\n      }" else (compound_statement "{\n        uVar7 = 2;\n      }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) }))) (if_statement "if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }" if (parenthesized_expression "((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8))" ( (binary_expression "(plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)" (parenthesized_expression "(plVar24 != plVar9)" ( (binary_expression "plVar24 != plVar9" identifier != identifier) )) && (parenthesized_expression "((long)uVar7 < (long)uVar8)" ( (binary_expression "(long)uVar7 < (long)uVar8" (cast_expression "(long)uVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)uVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) )) (compound_statement "{\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }" { (expression_statement "local_58 = plVar24 + uVar7;" (assignment_expression "local_58 = plVar24 + uVar7" identifier = (binary_expression "plVar24 + uVar7" identifier + identifier)) ;) (expression_statement "local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);" (assignment_expression "local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58)" identifier = (call_expression "CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58)" identifier (argument_list "(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58)" ( (field_expression "local_60._1_7_" identifier . field_identifier) , (binary_expression "plVar9 + uVar7 + 2 <= local_58" (binary_expression "plVar9 + uVar7 + 2" (binary_expression "plVar9 + uVar7" identifier + identifier) + number_literal) <= identifier) )))) ;) (if_statement "if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }" if (parenthesized_expression "((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7))" ( (binary_expression "(plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)" (parenthesized_expression "(plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7)" ( (binary_expression "plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7" (binary_expression "plVar9 + uVar7 + 2 <= local_58" (binary_expression "plVar9 + uVar7 + 2" (binary_expression "plVar9 + uVar7" identifier + identifier) + number_literal) <= identifier) || (binary_expression "plVar24 + uVar7 + 2 <= plVar9 + uVar7" (binary_expression "plVar24 + uVar7 + 2" (binary_expression "plVar24 + uVar7" identifier + identifier) + number_literal) <= (binary_expression "plVar9 + uVar7" identifier + identifier))) )) && (parenthesized_expression "(3 < ~(ulong)plVar26 - uVar7)" ( (binary_expression "3 < ~(ulong)plVar26 - uVar7" number_literal < (binary_expression "~(ulong)plVar26 - uVar7" (unary_expression "~(ulong)plVar26" ~ (cast_expression "(ulong)plVar26" ( (type_descriptor "ulong" type_identifier) ) identifier)) - identifier)) ))) )) (compound_statement "{\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }" { (expression_statement "uVar27 = uVar8 - uVar7;" (assignment_expression "uVar27 = uVar8 - uVar7" identifier = (binary_expression "uVar8 - uVar7" identifier - identifier)) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);" do (compound_statement "{\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          }" { (expression_statement "uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];" (assignment_expression "uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1]" identifier = (subscript_expression "((undefined8 *)((long)local_58 + lVar18))[1]" (parenthesized_expression "((undefined8 *)((long)local_58 + lVar18))" ( (cast_expression "(undefined8 *)((long)local_58 + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + lVar18)" ( (binary_expression "(long)local_58 + lVar18" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);" (assignment_expression "puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18)" identifier = (cast_expression "(undefined8 *)((long)(plVar9 + uVar7) + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(plVar9 + uVar7) + lVar18)" ( (binary_expression "(long)(plVar9 + uVar7) + lVar18" (cast_expression "(long)(plVar9 + uVar7)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar9 + uVar7)" ( (binary_expression "plVar9 + uVar7" identifier + identifier) ))) + identifier) )))) ;) (expression_statement "*puVar1 = *(undefined8 *)((long)local_58 + lVar18);" (assignment_expression "*puVar1 = *(undefined8 *)((long)local_58 + lVar18)" (pointer_expression "*puVar1" * identifier) = (pointer_expression "*(undefined8 *)((long)local_58 + lVar18)" * (cast_expression "(undefined8 *)((long)local_58 + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + lVar18)" ( (binary_expression "(long)local_58 + lVar18" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ;) (expression_statement "puVar1[1] = uVar4;" (assignment_expression "puVar1[1] = uVar4" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "lVar18 = lVar18 + 0x10;" (assignment_expression "lVar18 = lVar18 + 0x10" identifier = (binary_expression "lVar18 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "((uVar27 >> 1) * 0x10 != lVar18)" ( (binary_expression "(uVar27 >> 1) * 0x10 != lVar18" (binary_expression "(uVar27 >> 1) * 0x10" (parenthesized_expression "(uVar27 >> 1)" ( (binary_expression "uVar27 >> 1" identifier >> number_literal) )) * number_literal) != identifier) )) ;) (expression_statement "lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);" (assignment_expression "lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe)" identifier = (binary_expression "uVar7 + (uVar27 & 0xfffffffffffffffe)" identifier + (parenthesized_expression "(uVar27 & 0xfffffffffffffffe)" ( (binary_expression "uVar27 & 0xfffffffffffffffe" identifier & number_literal) )))) ;) (if_statement "if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;" if (parenthesized_expression "((uVar27 & 0xfffffffffffffffe) != uVar27)" ( (binary_expression "(uVar27 & 0xfffffffffffffffe) != uVar27" (parenthesized_expression "(uVar27 & 0xfffffffffffffffe)" ( (binary_expression "uVar27 & 0xfffffffffffffffe" identifier & number_literal) )) != identifier) )) (goto_statement "goto LAB_0011d020;" goto statement_identifier ;)) }) (else_clause "else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }" else (compound_statement "{\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }" { (do_statement "do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);" do (compound_statement "{\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          }" { (expression_statement "plVar9[uVar7] = plVar24[uVar7];" (assignment_expression "plVar9[uVar7] = plVar24[uVar7]" (subscript_expression "plVar9[uVar7]" identifier [ identifier ]) = (subscript_expression "plVar24[uVar7]" identifier [ identifier ])) ;) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 != uVar7)" ( (binary_expression "uVar8 != uVar7" identifier != identifier) )) ;) }))) })) })) }) (else_clause "else if ((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)) {\n    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }\n  }" else (if_statement "if ((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)) {\n    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }\n  }" if (parenthesized_expression "((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff))" ( (binary_expression "(plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)" (parenthesized_expression "(plVar24 != plVar9)" ( (binary_expression "plVar24 != plVar9" identifier != identifier) )) && (parenthesized_expression "(plVar26 != (long *)0xffffffffffffffff)" ( (binary_expression "plVar26 != (long *)0xffffffffffffffff" identifier != (cast_expression "(long *)0xffffffffffffffff" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }\n  }" { (if_statement "if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }" if (parenthesized_expression "((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26))" ( (binary_expression "(plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)" (parenthesized_expression "(plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3)" ( (binary_expression "plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3" (binary_expression "plVar24 + 1 < plVar9 + 3" (binary_expression "plVar24 + 1" identifier + number_literal) < (binary_expression "plVar9 + 3" identifier + number_literal)) && (binary_expression "plVar9 + 1 < plVar24 + 3" (binary_expression "plVar9 + 1" identifier + number_literal) < (binary_expression "plVar24 + 3" identifier + number_literal))) )) || (parenthesized_expression "(-6 < (long)plVar26)" ( (binary_expression "-6 < (long)plVar26" number_literal < (cast_expression "(long)plVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) )) (compound_statement "{\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }" { (expression_statement "lVar18 = 1;" (assignment_expression "lVar18 = 1" identifier = number_literal) ;) (do_statement "do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);" do (compound_statement "{\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      }" { (expression_statement "plVar9[lVar18] = plVar24[lVar18];" (assignment_expression "plVar9[lVar18] = plVar24[lVar18]" (subscript_expression "plVar9[lVar18]" identifier [ identifier ]) = (subscript_expression "plVar24[lVar18]" identifier [ identifier ])) ;) (expression_statement "lVar18 = lVar18 + 1;" (assignment_expression "lVar18 = lVar18 + 1" identifier = (binary_expression "lVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar18 < (long)uVar8)" ( (binary_expression "lVar18 < (long)uVar8" identifier < (cast_expression "(long)uVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) ;) }) (else_clause "else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }" else (compound_statement "{\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }" { (expression_statement "uVar7 = ~(ulong)plVar26;" (assignment_expression "uVar7 = ~(ulong)plVar26" identifier = (unary_expression "~(ulong)plVar26" ~ (cast_expression "(ulong)plVar26" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (if_statement "if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }" if (parenthesized_expression "(-2 < (long)plVar26)" ( (binary_expression "-2 < (long)plVar26" number_literal < (cast_expression "(long)plVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n        uVar7 = 1;\n      }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) })) (expression_statement "lVar18 = 8;" (assignment_expression "lVar18 = 8" identifier = number_literal) ;) (do_statement "do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);" do (compound_statement "{\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      }" { (expression_statement "uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];" (assignment_expression "uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1]" identifier = (subscript_expression "((undefined8 *)((long)plVar24 + lVar18))[1]" (parenthesized_expression "((undefined8 *)((long)plVar24 + lVar18))" ( (cast_expression "(undefined8 *)((long)plVar24 + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar24 + lVar18)" ( (binary_expression "(long)plVar24 + lVar18" (cast_expression "(long)plVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);" (assignment_expression "*(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18)" (pointer_expression "*(undefined8 *)((long)plVar9 + lVar18)" * (cast_expression "(undefined8 *)((long)plVar9 + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar9 + lVar18)" ( (binary_expression "(long)plVar9 + lVar18" (cast_expression "(long)plVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (pointer_expression "*(undefined8 *)((long)plVar24 + lVar18)" * (cast_expression "(undefined8 *)((long)plVar24 + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar24 + lVar18)" ( (binary_expression "(long)plVar24 + lVar18" (cast_expression "(long)plVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ;) (expression_statement "((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;" (assignment_expression "((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4" (subscript_expression "((undefined8 *)((long)plVar9 + lVar18))[1]" (parenthesized_expression "((undefined8 *)((long)plVar9 + lVar18))" ( (cast_expression "(undefined8 *)((long)plVar9 + lVar18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar9 + lVar18)" ( (binary_expression "(long)plVar9 + lVar18" (cast_expression "(long)plVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = identifier) ;) (expression_statement "lVar18 = lVar18 + 0x10;" (assignment_expression "lVar18 = lVar18 + 0x10" identifier = (binary_expression "lVar18 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar18 != (uVar7 >> 1) * 0x10 + 8)" ( (binary_expression "lVar18 != (uVar7 >> 1) * 0x10 + 8" identifier != (binary_expression "(uVar7 >> 1) * 0x10 + 8" (binary_expression "(uVar7 >> 1) * 0x10" (parenthesized_expression "(uVar7 >> 1)" ( (binary_expression "uVar7 >> 1" identifier >> number_literal) )) * number_literal) + number_literal)) )) ;) (expression_statement "lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;" (assignment_expression "lVar18 = (uVar7 & 0xfffffffffffffffe) + 1" identifier = (binary_expression "(uVar7 & 0xfffffffffffffffe) + 1" (parenthesized_expression "(uVar7 & 0xfffffffffffffffe)" ( (binary_expression "uVar7 & 0xfffffffffffffffe" identifier & number_literal) )) + number_literal)) ;) (if_statement "if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }" if (parenthesized_expression "((uVar7 & 0xfffffffffffffffe) != uVar7)" ( (binary_expression "(uVar7 & 0xfffffffffffffffe) != uVar7" (parenthesized_expression "(uVar7 & 0xfffffffffffffffe)" ( (binary_expression "uVar7 & 0xfffffffffffffffe" identifier & number_literal) )) != identifier) )) (compound_statement "{\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }" { (labeled_statement "LAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];" statement_identifier : (expression_statement "plVar9[lVar18] = plVar24[lVar18];" (assignment_expression "plVar9[lVar18] = plVar24[lVar18]" (subscript_expression "plVar9[lVar18]" identifier [ identifier ]) = (subscript_expression "plVar24[lVar18]" identifier [ identifier ])) ;)) })) }))) })))) (labeled_statement "LAB_0011ced0:\n  plVar25 = (long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0));" statement_identifier : (expression_statement "plVar25 = (long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0));" (assignment_expression "plVar25 = (long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0))" identifier = (cast_expression "(long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0))" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0))" ( (binary_expression "uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0)" identifier - (parenthesized_expression "(*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0)" ( (binary_expression "*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0" (pointer_expression "*(long *)((long)(plVar9 + -1) + (long)plVar25)" * (cast_expression "(long *)((long)(plVar9 + -1) + (long)plVar25)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(plVar9 + -1) + (long)plVar25)" ( (binary_expression "(long)(plVar9 + -1) + (long)plVar25" (cast_expression "(long)(plVar9 + -1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar9 + -1)" ( (binary_expression "plVar9 + -1" identifier + number_literal) ))) + (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) == number_literal) ))) )))) ;)) (if_statement "if ((long)*local_50 < (long)uVar8) {\n    local_60 = param_2;\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d187;\n    __gmpz_realloc(piVar5,uVar8);\n    plVar10 = *(long **)(piVar5 + 2);\n    plVar21 = *(long **)(local_60 + 8);\n    plVar9 = local_58;\n  }" if (parenthesized_expression "((long)*local_50 < (long)uVar8)" ( (binary_expression "(long)*local_50 < (long)uVar8" (cast_expression "(long)*local_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "*local_50" * identifier)) < (cast_expression "(long)uVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n    local_60 = param_2;\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d187;\n    __gmpz_realloc(piVar5,uVar8);\n    plVar10 = *(long **)(piVar5 + 2);\n    plVar21 = *(long **)(local_60 + 8);\n    plVar9 = local_58;\n  }" { (expression_statement "local_60 = param_2;" (assignment_expression "local_60 = param_2" identifier = identifier) ;) (expression_statement "local_58 = plVar9;" (assignment_expression "local_58 = plVar9" identifier = identifier) ;) (expression_statement "*(undefined8 *)(puVar15 + -8) = 0x11d187;" (assignment_expression "*(undefined8 *)(puVar15 + -8) = 0x11d187" (pointer_expression "*(undefined8 *)(puVar15 + -8)" * (cast_expression "(undefined8 *)(puVar15 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpz_realloc(piVar5,uVar8);" (call_expression "__gmpz_realloc(piVar5,uVar8)" identifier (argument_list "(piVar5,uVar8)" ( identifier , identifier ))) ;) (expression_statement "plVar10 = *(long **)(piVar5 + 2);" (assignment_expression "plVar10 = *(long **)(piVar5 + 2)" identifier = (pointer_expression "*(long **)(piVar5 + 2)" * (cast_expression "(long **)(piVar5 + 2)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar5 + 2)" ( (binary_expression "piVar5 + 2" identifier + number_literal) ))))) ;) (expression_statement "plVar21 = *(long **)(local_60 + 8);" (assignment_expression "plVar21 = *(long **)(local_60 + 8)" identifier = (pointer_expression "*(long **)(local_60 + 8)" * (cast_expression "(long **)(local_60 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_60 + 8)" ( (binary_expression "local_60 + 8" identifier + number_literal) ))))) ;) (expression_statement "plVar9 = local_58;" (assignment_expression "plVar9 = local_58" identifier = identifier) ;) })) (if_statement "if ((long)plVar14 < (long)plVar25) {\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d0ee;\n    __gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14);\n    plVar9 = local_58;\n    if (plVar14 != (long *)0x0) goto LAB_0011d0f7;\nLAB_0011d108:\n    *plVar10 = *plVar10 + 1;\n    if (*plVar10 == 0) {\n      if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }\n      plVar9 = plVar10 + 1;\n      *plVar9 = *plVar9 + 1;\n      if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }\n    }\n    uVar23 = -(uint)plVar25;\n  }\n  else {\n    plVar12 = (long *)((long)plVar25 + -1);\n    if (plVar12 != (long *)0xffffffffffffffff) {\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *plVar10 = 1;\n    uVar23 = 0xffffffff;\n  }" if (parenthesized_expression "((long)plVar14 < (long)plVar25)" ( (binary_expression "(long)plVar14 < (long)plVar25" (cast_expression "(long)plVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d0ee;\n    __gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14);\n    plVar9 = local_58;\n    if (plVar14 != (long *)0x0) goto LAB_0011d0f7;\nLAB_0011d108:\n    *plVar10 = *plVar10 + 1;\n    if (*plVar10 == 0) {\n      if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }\n      plVar9 = plVar10 + 1;\n      *plVar9 = *plVar9 + 1;\n      if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }\n    }\n    uVar23 = -(uint)plVar25;\n  }" { (expression_statement "local_58 = plVar9;" (assignment_expression "local_58 = plVar9" identifier = identifier) ;) (expression_statement "*(undefined8 *)(puVar15 + -8) = 0x11d0ee;" (assignment_expression "*(undefined8 *)(puVar15 + -8) = 0x11d0ee" (pointer_expression "*(undefined8 *)(puVar15 + -8)" * (cast_expression "(undefined8 *)(puVar15 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14);" (call_expression "__gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14)" identifier (argument_list "(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14)" ( (binary_expression "plVar10 + (long)plVar14" identifier + (cast_expression "(long)plVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , (binary_expression "plVar9 + (long)plVar14" identifier + (cast_expression "(long)plVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , (binary_expression "(long)plVar25 - (long)plVar14" (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)plVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ;) (expression_statement "plVar9 = local_58;" (assignment_expression "plVar9 = local_58" identifier = identifier) ;) (if_statement "if (plVar14 != (long *)0x0) goto LAB_0011d0f7;" if (parenthesized_expression "(plVar14 != (long *)0x0)" ( (binary_expression "plVar14 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011d0f7;" goto statement_identifier ;)) (labeled_statement "LAB_0011d108:\n    *plVar10 = *plVar10 + 1;" statement_identifier : (expression_statement "*plVar10 = *plVar10 + 1;" (assignment_expression "*plVar10 = *plVar10 + 1" (pointer_expression "*plVar10" * identifier) = (binary_expression "*plVar10 + 1" (pointer_expression "*plVar10" * identifier) + number_literal)) ;)) (if_statement "if (*plVar10 == 0) {\n      if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }\n      plVar9 = plVar10 + 1;\n      *plVar9 = *plVar9 + 1;\n      if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }\n    }" if (parenthesized_expression "(*plVar10 == 0)" ( (binary_expression "*plVar10 == 0" (pointer_expression "*plVar10" * identifier) == number_literal) )) (compound_statement "{\n      if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }\n      plVar9 = plVar10 + 1;\n      *plVar9 = *plVar9 + 1;\n      if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }\n    }" { (if_statement "if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }" if (parenthesized_expression "(plVar25 == (long *)0x1)" ( (binary_expression "plVar25 == (long *)0x1" identifier == (cast_expression "(long *)0x1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }" { (labeled_statement "LAB_0011d151:\n        plVar10[(long)plVar25] = 1;" statement_identifier : (expression_statement "plVar10[(long)plVar25] = 1;" (assignment_expression "plVar10[(long)plVar25] = 1" (subscript_expression "plVar10[(long)plVar25]" identifier [ (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = number_literal) ;)) (expression_statement "uVar23 = ~(uint)plVar25;" (assignment_expression "uVar23 = ~(uint)plVar25" identifier = (unary_expression "~(uint)plVar25" ~ (cast_expression "(uint)plVar25" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (goto_statement "goto LAB_0011cf4c;" goto statement_identifier ;) })) (expression_statement "plVar9 = plVar10 + 1;" (assignment_expression "plVar9 = plVar10 + 1" identifier = (binary_expression "plVar10 + 1" identifier + number_literal)) ;) (expression_statement "*plVar9 = *plVar9 + 1;" (assignment_expression "*plVar9 = *plVar9 + 1" (pointer_expression "*plVar9" * identifier) = (binary_expression "*plVar9 + 1" (pointer_expression "*plVar9" * identifier) + number_literal)) ;) (if_statement "if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }" if (parenthesized_expression "(*plVar9 == 0)" ( (binary_expression "*plVar9 == 0" (pointer_expression "*plVar9" * identifier) == number_literal) )) (compound_statement "{\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }" { (if_statement "if (plVar25 == (long *)0x2) goto LAB_0011d151;" if (parenthesized_expression "(plVar25 == (long *)0x2)" ( (binary_expression "plVar25 == (long *)0x2" identifier == (cast_expression "(long *)0x2" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011d151;" goto statement_identifier ;)) (expression_statement "plVar9 = plVar10 + 2;" (assignment_expression "plVar9 = plVar10 + 2" identifier = (binary_expression "plVar10 + 2" identifier + number_literal)) ;) (expression_statement "*plVar9 = *plVar9 + 1;" (assignment_expression "*plVar9 = *plVar9 + 1" (pointer_expression "*plVar9" * identifier) = (binary_expression "*plVar9 + 1" (pointer_expression "*plVar9" * identifier) + number_literal)) ;) (if_statement "if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }" if (parenthesized_expression "(*plVar9 == 0)" ( (binary_expression "*plVar9 == 0" (pointer_expression "*plVar9" * identifier) == number_literal) )) (compound_statement "{\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }" { (expression_statement "plVar9 = plVar10 + 3;" (assignment_expression "plVar9 = plVar10 + 3" identifier = (binary_expression "plVar10 + 3" identifier + number_literal)) ;) (do_statement "do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);" do (compound_statement "{\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          }" { (if_statement "if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;" if (parenthesized_expression "(plVar9 == plVar10 + (long)plVar25)" ( (binary_expression "plVar9 == plVar10 + (long)plVar25" identifier == (binary_expression "plVar10 + (long)plVar25" identifier + (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) )) (goto_statement "goto LAB_0011d151;" goto statement_identifier ;)) (expression_statement "lVar18 = *plVar9;" (assignment_expression "lVar18 = *plVar9" identifier = (pointer_expression "*plVar9" * identifier)) ;) (expression_statement "*plVar9 = lVar18 + 1;" (assignment_expression "*plVar9 = lVar18 + 1" (pointer_expression "*plVar9" * identifier) = (binary_expression "lVar18 + 1" identifier + number_literal)) ;) (expression_statement "plVar9 = plVar9 + 1;" (assignment_expression "plVar9 = plVar9 + 1" identifier = (binary_expression "plVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar18 + 1 == 0)" ( (binary_expression "lVar18 + 1 == 0" (binary_expression "lVar18 + 1" identifier + number_literal) == number_literal) )) ;) })) })) })) (expression_statement "uVar23 = -(uint)plVar25;" (assignment_expression "uVar23 = -(uint)plVar25" identifier = (unary_expression "-(uint)plVar25" - (cast_expression "(uint)plVar25" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) (else_clause "else {\n    plVar12 = (long *)((long)plVar25 + -1);\n    if (plVar12 != (long *)0xffffffffffffffff) {\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *plVar10 = 1;\n    uVar23 = 0xffffffff;\n  }" else (compound_statement "{\n    plVar12 = (long *)((long)plVar25 + -1);\n    if (plVar12 != (long *)0xffffffffffffffff) {\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *plVar10 = 1;\n    uVar23 = 0xffffffff;\n  }" { (expression_statement "plVar12 = (long *)((long)plVar25 + -1);" (assignment_expression "plVar12 = (long *)((long)plVar25 + -1)" identifier = (cast_expression "(long *)((long)plVar25 + -1)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar25 + -1)" ( (binary_expression "(long)plVar25 + -1" (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (if_statement "if (plVar12 != (long *)0xffffffffffffffff) {\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }" if (parenthesized_expression "(plVar12 != (long *)0xffffffffffffffff)" ( (binary_expression "plVar12 != (long *)0xffffffffffffffff" identifier != (cast_expression "(long *)0xffffffffffffffff" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }" { (expression_statement "uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];" (assignment_expression "uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12]" identifier = (binary_expression "plVar9[(long)plVar12] & ~plVar21[(long)plVar12]" (subscript_expression "plVar9[(long)plVar12]" identifier [ (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) & (unary_expression "~plVar21[(long)plVar12]" ~ (subscript_expression "plVar21[(long)plVar12]" identifier [ (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ])))) ;) (expression_statement "plVar14 = plVar25;" (assignment_expression "plVar14 = plVar25" identifier = identifier) ;) (while_statement "while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }" while (parenthesized_expression "(plVar25 = plVar14, uVar8 == 0)" ( (comma_expression "plVar25 = plVar14, uVar8 == 0" (assignment_expression "plVar25 = plVar14" identifier = identifier) , (binary_expression "uVar8 == 0" identifier == number_literal)) )) (compound_statement "{\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }" { (expression_statement "plVar25 = (long *)((long)plVar12 + -1);" (assignment_expression "plVar25 = (long *)((long)plVar12 + -1)" identifier = (cast_expression "(long *)((long)plVar12 + -1)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar12 + -1)" ( (binary_expression "(long)plVar12 + -1" (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (if_statement "if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;" if (parenthesized_expression "(plVar25 == (long *)0xffffffffffffffff)" ( (binary_expression "plVar25 == (long *)0xffffffffffffffff" identifier == (cast_expression "(long *)0xffffffffffffffff" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011cf3f;" goto statement_identifier ;)) (expression_statement "plVar14 = plVar12;" (assignment_expression "plVar14 = plVar12" identifier = identifier) ;) (expression_statement "plVar12 = plVar25;" (assignment_expression "plVar12 = plVar25" identifier = identifier) ;) (expression_statement "uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];" (assignment_expression "uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25]" identifier = (binary_expression "plVar9[(long)plVar25] & ~plVar21[(long)plVar25]" (subscript_expression "plVar9[(long)plVar25]" identifier [ (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) & (unary_expression "~plVar21[(long)plVar25]" ~ (subscript_expression "plVar21[(long)plVar25]" identifier [ (cast_expression "(long)plVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ])))) ;) })) (labeled_statement "LAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;" statement_identifier : (expression_statement "*(undefined8 *)(puVar15 + -8) = 0x11d108;" (assignment_expression "*(undefined8 *)(puVar15 + -8) = 0x11d108" (pointer_expression "*(undefined8 *)(puVar15 + -8)" * (cast_expression "(undefined8 *)(puVar15 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "__gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);" (call_expression "__gmpn_andn_n(plVar10,plVar9,plVar21,plVar14)" identifier (argument_list "(plVar10,plVar9,plVar21,plVar14)" ( identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_0011d108;" goto statement_identifier ;) })) (labeled_statement "LAB_0011cf3f:\n    *plVar10 = 1;" statement_identifier : (expression_statement "*plVar10 = 1;" (assignment_expression "*plVar10 = 1" (pointer_expression "*plVar10" * identifier) = number_literal) ;)) (expression_statement "uVar23 = 0xffffffff;" (assignment_expression "uVar23 = 0xffffffff" identifier = number_literal) ;) }))) (labeled_statement "LAB_0011cf4c:\n  local_50[1] = uVar23;" statement_identifier : (expression_statement "local_50[1] = uVar23;" (assignment_expression "local_50[1] = uVar23" (subscript_expression "local_50[1]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "puVar16 = puVar15;" (assignment_expression "puVar16 = puVar15" identifier = identifier) ;) (goto_statement "goto joined_r0x0011d45a;" goto statement_identifier ;) (labeled_statement "code_r0x0011d43b:\n  uVar8 = uVar8 - 1;" statement_identifier : (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;)) (if_statement "if (uVar8 == 0xffffffffffffffff) goto code_r0x0011d445;" if (parenthesized_expression "(uVar8 == 0xffffffffffffffff)" ( (binary_expression "uVar8 == 0xffffffffffffffff" identifier == number_literal) )) (goto_statement "goto code_r0x0011d445;" goto statement_identifier ;)) (goto_statement "goto LAB_0011d42d;" goto statement_identifier ;) (labeled_statement "code_r0x0011d445:\n  *plVar10 = 1;" statement_identifier : (expression_statement "*plVar10 = 1;" (assignment_expression "*plVar10 = 1" (pointer_expression "*plVar10" * identifier) = number_literal) ;)) (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (labeled_statement "LAB_0011d44c:\n  local_50[1] = iVar6;" statement_identifier : (expression_statement "local_50[1] = iVar6;" (assignment_expression "local_50[1] = iVar6" (subscript_expression "local_50[1]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" identifier = identifier) ;) (labeled_statement "joined_r0x0011d45a:\n  if (local_48 != 0) {\n    *(undefined8 *)(puVar16 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free();\n  }" statement_identifier : (if_statement "if (local_48 != 0) {\n    *(undefined8 *)(puVar16 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free();\n  }" if (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) (compound_statement "{\n    *(undefined8 *)(puVar16 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free();\n  }" { (expression_statement "*(undefined8 *)(puVar16 + -8) = 0x11d465;" (assignment_expression "*(undefined8 *)(puVar16 + -8) = 0x11d465" (pointer_expression "*(undefined8 *)(puVar16 + -8)" * (cast_expression "(undefined8 *)(puVar16 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -8)" ( (binary_expression "puVar16 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" identifier (argument_list "()" ( ))) ;) }))) (labeled_statement "LAB_0011cf61:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "*(undefined8 *)(puVar16 + -8) = 0x11d8c8;" (assignment_expression "*(undefined8 *)(puVar16 + -8) = 0x11d8c8" (pointer_expression "*(undefined8 *)(puVar16 + -8)" * (cast_expression "(undefined8 *)(puVar16 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -8)" ( (binary_expression "puVar16 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) <= (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (unary_expression - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (unary_expression - IDENT)) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (unary_expression - IDENT)) != IDENT) && (binary_expression IDENT <= IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (binary_expression (binary_expression (binary_expression IDENT + IDENT) + LIT) <= IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT + IDENT) + LIT) <= IDENT) || (binary_expression (binary_expression (binary_expression IDENT + IDENT) + LIT) <= IDENT)) )) && (parenthesized_expression ( (binary_expression LIT < (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) - IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression IDENT [ IDENT ])) ;)) })) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (unary_expression - IDENT)) != IDENT) )) ;) }))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ))) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + LIT) < (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) && (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) < (binary_expression IDENT + LIT))) )) || (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (unary_expression - IDENT)) != IDENT) && (binary_expression IDENT <= IDENT)) )) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) ))) + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + LIT) < (binary_expression IDENT + LIT)) && (binary_expression (binary_expression IDENT + LIT) < (binary_expression IDENT + LIT))) )) || (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (unary_expression - IDENT)) != IDENT) && (binary_expression IDENT <= IDENT)) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT) + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )) (goto_statement goto statement_identifier ;)) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (unary_expression - IDENT)) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) == (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) < LIT)) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + IDENT) < (binary_expression (binary_expression IDENT + IDENT) + LIT)) && (binary_expression (binary_expression IDENT + IDENT) < (binary_expression (binary_expression IDENT + IDENT) + LIT))) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < LIT) ))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (unary_expression - IDENT)) != IDENT) )) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression IDENT [ IDENT ])) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) & (subscript_expression IDENT [ IDENT ])) )) == LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression LIT < IDENT) )) ;) (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) )))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression 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 IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) , (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) , (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (unary_expression - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (unary_expression - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (binary_expression (binary_expression (binary_expression IDENT + IDENT) + LIT) <= IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT + IDENT) + LIT) <= IDENT) || (binary_expression (binary_expression (binary_expression IDENT + IDENT) + LIT) <= (binary_expression IDENT + IDENT))) )) && (parenthesized_expression ( (binary_expression LIT < (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) - IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }))) })) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + LIT) < (binary_expression IDENT + LIT)) && (binary_expression (binary_expression IDENT + LIT) < (binary_expression IDENT + LIT))) )) || (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT) + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression IDENT [ IDENT ])) ;)) })) }))) })))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT - (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) == LIT) ))) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression * IDENT)) < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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 IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) , (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ]) = LIT) ;)) (expression_statement (assignment_expression IDENT = (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) ;) })) })) })) (expression_statement (assignment_expression IDENT = (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ]) & (unary_expression ~ (subscript_expression IDENT [ (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ])))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ]) & (unary_expression ~ (subscript_expression IDENT [ (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ])))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void __gmpz_ior(int *param_1,ulong param_2,ulong param_3)\n\n{\n  undefined8 *puVar1;\n  ulong *puVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  int *piVar5;\n  int iVar6;\n  ulong uVar7;\n  ulong uVar8;\n  long *plVar9;\n  long *plVar10;\n  ulong *puVar11;\n  long *plVar12;\n  long lVar13;\n  long *plVar14;\n  undefined1 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  long lVar18;\n  long lVar19;\n  long *plVar20;\n  long *plVar21;\n  int iVar22;\n  uint uVar23;\n  long *plVar24;\n  long *plVar25;\n  long *plVar26;\n  ulong uVar27;\n  long in_FS_OFFSET;\n  undefined1 auStack_78 [8];\n  long *local_70;\n  ulong local_68;\n  ulong local_60;\n  long *local_58;\n  int *local_50;\n  long local_48;\n  long local_40;\n  \n  puVar15 = auStack_78;\n  puVar17 = auStack_78;\n  puVar16 = auStack_78;\n  iVar6 = *(int *)(param_2 + 4);\n  plVar20 = (long *)(long)iVar6;\n  iVar22 = *(int *)(param_3 + 4);\n  plVar12 = (long *)(long)iVar22;\n  plVar25 = *(long **)(param_2 + 8);\n  plVar9 = *(long **)(param_3 + 8);\n  plVar10 = *(long **)(param_1 + 2);\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_48 = 0;\n  local_50 = param_1;\n  if ((long)plVar20 < 0) {\n    plVar14 = plVar12;\n    param_2 = param_3;\n    plVar24 = plVar25;\n    plVar21 = plVar9;\n    plVar26 = plVar20;\n    if ((long)plVar12 < 0) {\n      if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }\n      lVar18 = -(long)plVar12;\n      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }\n      lVar13 = *plVar25;\n      plVar14 = plVar20 + -(long)plVar21;\n      *plVar20 = lVar13 + -1;\n      if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      plVar14[lVar13] = plVar9[lVar13];\nLAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;\n      lVar18 = uVar8 + 1;\n      if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }\n      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);\n      puVar2 = puVar11 + lVar18;\n      *puVar2 = 0;\n      do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);\n      iVar6 = -((int)lVar18 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }\n  }\n  else {\n    plVar14 = plVar20;\n    plVar24 = plVar9;\n    plVar21 = plVar25;\n    plVar26 = plVar12;\n    if (-1 < (long)plVar12) {\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }\n  }\n  plVar25 = (long *)((long)plVar26 * -8);\n  if (plVar25 < (long *)0x7f01) {\n    lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0);\n    puVar15 = auStack_78 + lVar18;\n    plVar9 = (long *)((long)&local_70 + lVar18);\n    uVar8 = -(long)plVar26;\n  }\n  else {\n    local_68 = param_2;\n    local_60 = -(long)plVar26;\n    local_58 = plVar25;\n    plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);\n    plVar25 = local_58;\n    uVar8 = local_60;\n    param_2 = local_68;\n  }\n  piVar5 = local_50;\n  lVar18 = *plVar24;\n  *plVar9 = lVar18 + -1;\n  if (lVar18 == 0) {\n    if (plVar26 != (long *)0xffffffffffffffff) {\n      lVar18 = plVar24[1];\n      plVar9[1] = lVar18 + -1;\n      if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }\n    }\n  }\n  else if ((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)) {\n    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }\n  }\nLAB_0011ced0:\n  plVar25 = (long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0));\n  if ((long)*local_50 < (long)uVar8) {\n    local_60 = param_2;\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d187;\n    __gmpz_realloc(piVar5,uVar8);\n    plVar10 = *(long **)(piVar5 + 2);\n    plVar21 = *(long **)(local_60 + 8);\n    plVar9 = local_58;\n  }\n  if ((long)plVar14 < (long)plVar25) {\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d0ee;\n    __gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14);\n    plVar9 = local_58;\n    if (plVar14 != (long *)0x0) goto LAB_0011d0f7;\nLAB_0011d108:\n    *plVar10 = *plVar10 + 1;\n    if (*plVar10 == 0) {\n      if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }\n      plVar9 = plVar10 + 1;\n      *plVar9 = *plVar9 + 1;\n      if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }\n    }\n    uVar23 = -(uint)plVar25;\n  }\n  else {\n    plVar12 = (long *)((long)plVar25 + -1);\n    if (plVar12 != (long *)0xffffffffffffffff) {\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *plVar10 = 1;\n    uVar23 = 0xffffffff;\n  }\nLAB_0011cf4c:\n  local_50[1] = uVar23;\n  puVar16 = puVar15;\n  goto joined_r0x0011d45a;\ncode_r0x0011d43b:\n  uVar8 = uVar8 - 1;\n  if (uVar8 == 0xffffffffffffffff) goto code_r0x0011d445;\n  goto LAB_0011d42d;\ncode_r0x0011d445:\n  *plVar10 = 1;\n  iVar6 = -1;\nLAB_0011d44c:\n  local_50[1] = iVar6;\n  puVar16 = puVar17;\njoined_r0x0011d45a:\n  if (local_48 != 0) {\n    *(undefined8 *)(puVar16 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free();\n  }\nLAB_0011cf61:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  *(undefined8 *)(puVar16 + -8) = 0x11d8c8;\n  __stack_chk_fail();\n}" (primitive_type "void") (function_declarator "__gmpz_ior(int *param_1,ulong param_2,ulong param_3)" (identifier "__gmpz_ior") (parameter_list "(int *param_1,ulong param_2,ulong param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "ulong param_2" (type_identifier "ulong") (identifier "param_2")) (, ",") (parameter_declaration "ulong param_3" (type_identifier "ulong") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined8 *puVar1;\n  ulong *puVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  int *piVar5;\n  int iVar6;\n  ulong uVar7;\n  ulong uVar8;\n  long *plVar9;\n  long *plVar10;\n  ulong *puVar11;\n  long *plVar12;\n  long lVar13;\n  long *plVar14;\n  undefined1 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  long lVar18;\n  long lVar19;\n  long *plVar20;\n  long *plVar21;\n  int iVar22;\n  uint uVar23;\n  long *plVar24;\n  long *plVar25;\n  long *plVar26;\n  ulong uVar27;\n  long in_FS_OFFSET;\n  undefined1 auStack_78 [8];\n  long *local_70;\n  ulong local_68;\n  ulong local_60;\n  long *local_58;\n  int *local_50;\n  long local_48;\n  long local_40;\n  \n  puVar15 = auStack_78;\n  puVar17 = auStack_78;\n  puVar16 = auStack_78;\n  iVar6 = *(int *)(param_2 + 4);\n  plVar20 = (long *)(long)iVar6;\n  iVar22 = *(int *)(param_3 + 4);\n  plVar12 = (long *)(long)iVar22;\n  plVar25 = *(long **)(param_2 + 8);\n  plVar9 = *(long **)(param_3 + 8);\n  plVar10 = *(long **)(param_1 + 2);\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_48 = 0;\n  local_50 = param_1;\n  if ((long)plVar20 < 0) {\n    plVar14 = plVar12;\n    param_2 = param_3;\n    plVar24 = plVar25;\n    plVar21 = plVar9;\n    plVar26 = plVar20;\n    if ((long)plVar12 < 0) {\n      if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }\n      lVar18 = -(long)plVar12;\n      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }\n      lVar13 = *plVar25;\n      plVar14 = plVar20 + -(long)plVar21;\n      *plVar20 = lVar13 + -1;\n      if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      plVar14[lVar13] = plVar9[lVar13];\nLAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;\n      lVar18 = uVar8 + 1;\n      if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }\n      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);\n      puVar2 = puVar11 + lVar18;\n      *puVar2 = 0;\n      do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);\n      iVar6 = -((int)lVar18 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }\n  }\n  else {\n    plVar14 = plVar20;\n    plVar24 = plVar9;\n    plVar21 = plVar25;\n    plVar26 = plVar12;\n    if (-1 < (long)plVar12) {\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }\n  }\n  plVar25 = (long *)((long)plVar26 * -8);\n  if (plVar25 < (long *)0x7f01) {\n    lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0);\n    puVar15 = auStack_78 + lVar18;\n    plVar9 = (long *)((long)&local_70 + lVar18);\n    uVar8 = -(long)plVar26;\n  }\n  else {\n    local_68 = param_2;\n    local_60 = -(long)plVar26;\n    local_58 = plVar25;\n    plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);\n    plVar25 = local_58;\n    uVar8 = local_60;\n    param_2 = local_68;\n  }\n  piVar5 = local_50;\n  lVar18 = *plVar24;\n  *plVar9 = lVar18 + -1;\n  if (lVar18 == 0) {\n    if (plVar26 != (long *)0xffffffffffffffff) {\n      lVar18 = plVar24[1];\n      plVar9[1] = lVar18 + -1;\n      if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }\n    }\n  }\n  else if ((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)) {\n    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }\n  }\nLAB_0011ced0:\n  plVar25 = (long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0));\n  if ((long)*local_50 < (long)uVar8) {\n    local_60 = param_2;\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d187;\n    __gmpz_realloc(piVar5,uVar8);\n    plVar10 = *(long **)(piVar5 + 2);\n    plVar21 = *(long **)(local_60 + 8);\n    plVar9 = local_58;\n  }\n  if ((long)plVar14 < (long)plVar25) {\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d0ee;\n    __gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14);\n    plVar9 = local_58;\n    if (plVar14 != (long *)0x0) goto LAB_0011d0f7;\nLAB_0011d108:\n    *plVar10 = *plVar10 + 1;\n    if (*plVar10 == 0) {\n      if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }\n      plVar9 = plVar10 + 1;\n      *plVar9 = *plVar9 + 1;\n      if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }\n    }\n    uVar23 = -(uint)plVar25;\n  }\n  else {\n    plVar12 = (long *)((long)plVar25 + -1);\n    if (plVar12 != (long *)0xffffffffffffffff) {\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *plVar10 = 1;\n    uVar23 = 0xffffffff;\n  }\nLAB_0011cf4c:\n  local_50[1] = uVar23;\n  puVar16 = puVar15;\n  goto joined_r0x0011d45a;\ncode_r0x0011d43b:\n  uVar8 = uVar8 - 1;\n  if (uVar8 == 0xffffffffffffffff) goto code_r0x0011d445;\n  goto LAB_0011d42d;\ncode_r0x0011d445:\n  *plVar10 = 1;\n  iVar6 = -1;\nLAB_0011d44c:\n  local_50[1] = iVar6;\n  puVar16 = puVar17;\njoined_r0x0011d45a:\n  if (local_48 != 0) {\n    *(undefined8 *)(puVar16 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free();\n  }\nLAB_0011cf61:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  *(undefined8 *)(puVar16 + -8) = 0x11d8c8;\n  __stack_chk_fail();\n}" ({ "{") (declaration "undefined8 *puVar1;" (type_identifier "undefined8") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "ulong *puVar2;" (type_identifier "ulong") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined8 *puVar3;" (type_identifier "undefined8") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "ulong uVar7;" (type_identifier "ulong") (identifier "uVar7") (; ";")) (declaration "ulong uVar8;" (type_identifier "ulong") (identifier "uVar8") (; ";")) (declaration "long *plVar9;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar9" (* "*") (identifier "plVar9")) (; ";")) (declaration "long *plVar10;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar10" (* "*") (identifier "plVar10")) (; ";")) (declaration "ulong *puVar11;" (type_identifier "ulong") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "long *plVar12;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar12" (* "*") (identifier "plVar12")) (; ";")) (declaration "long lVar13;" (sized_type_specifier "long" (long "long")) (identifier "lVar13") (; ";")) (declaration "long *plVar14;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar14" (* "*") (identifier "plVar14")) (; ";")) (declaration "undefined1 *puVar15;" (type_identifier "undefined1") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "undefined1 *puVar16;" (type_identifier "undefined1") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined1 *puVar17;" (type_identifier "undefined1") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "long lVar18;" (sized_type_specifier "long" (long "long")) (identifier "lVar18") (; ";")) (declaration "long lVar19;" (sized_type_specifier "long" (long "long")) (identifier "lVar19") (; ";")) (declaration "long *plVar20;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar20" (* "*") (identifier "plVar20")) (; ";")) (declaration "long *plVar21;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar21" (* "*") (identifier "plVar21")) (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "long *plVar24;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar24" (* "*") (identifier "plVar24")) (; ";")) (declaration "long *plVar25;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar25" (* "*") (identifier "plVar25")) (; ";")) (declaration "long *plVar26;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar26" (* "*") (identifier "plVar26")) (; ";")) (declaration "ulong uVar27;" (type_identifier "ulong") (identifier "uVar27") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "undefined1 auStack_78 [8];" (type_identifier "undefined1") (array_declarator "auStack_78 [8]" (identifier "auStack_78") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "long *local_70;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "ulong local_68;" (type_identifier "ulong") (identifier "local_68") (; ";")) (declaration "ulong local_60;" (type_identifier "ulong") (identifier "local_60") (; ";")) (declaration "long *local_58;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "int *local_50;" (primitive_type "int") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "long local_48;" (sized_type_specifier "long" (long "long")) (identifier "local_48") (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "puVar15 = auStack_78;" (assignment_expression "puVar15 = auStack_78" (identifier "puVar15") (= "=") (identifier "auStack_78")) (; ";")) (expression_statement "puVar17 = auStack_78;" (assignment_expression "puVar17 = auStack_78" (identifier "puVar17") (= "=") (identifier "auStack_78")) (; ";")) (expression_statement "puVar16 = auStack_78;" (assignment_expression "puVar16 = auStack_78" (identifier "puVar16") (= "=") (identifier "auStack_78")) (; ";")) (expression_statement "iVar6 = *(int *)(param_2 + 4);" (assignment_expression "iVar6 = *(int *)(param_2 + 4)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(param_2 + 4)" (* "*") (cast_expression "(int *)(param_2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "plVar20 = (long *)(long)iVar6;" (assignment_expression "plVar20 = (long *)(long)iVar6" (identifier "plVar20") (= "=") (cast_expression "(long *)(long)iVar6" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(long)iVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar6")))) (; ";")) (expression_statement "iVar22 = *(int *)(param_3 + 4);" (assignment_expression "iVar22 = *(int *)(param_3 + 4)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(param_3 + 4)" (* "*") (cast_expression "(int *)(param_3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "plVar12 = (long *)(long)iVar22;" (assignment_expression "plVar12 = (long *)(long)iVar22" (identifier "plVar12") (= "=") (cast_expression "(long *)(long)iVar22" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(long)iVar22" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar22")))) (; ";")) (expression_statement "plVar25 = *(long **)(param_2 + 8);" (assignment_expression "plVar25 = *(long **)(param_2 + 8)" (identifier "plVar25") (= "=") (pointer_expression "*(long **)(param_2 + 8)" (* "*") (cast_expression "(long **)(param_2 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "plVar9 = *(long **)(param_3 + 8);" (assignment_expression "plVar9 = *(long **)(param_3 + 8)" (identifier "plVar9") (= "=") (pointer_expression "*(long **)(param_3 + 8)" (* "*") (cast_expression "(long **)(param_3 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 8)" (( "(") (binary_expression "param_3 + 8" (identifier "param_3") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "plVar10 = *(long **)(param_1 + 2);" (assignment_expression "plVar10 = *(long **)(param_1 + 2)" (identifier "plVar10") (= "=") (pointer_expression "*(long **)(param_1 + 2)" (* "*") (cast_expression "(long **)(param_1 + 2)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = param_1;" (assignment_expression "local_50 = param_1" (identifier "local_50") (= "=") (identifier "param_1")) (; ";")) (if_statement "if ((long)plVar20 < 0) {\n    plVar14 = plVar12;\n    param_2 = param_3;\n    plVar24 = plVar25;\n    plVar21 = plVar9;\n    plVar26 = plVar20;\n    if ((long)plVar12 < 0) {\n      if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }\n      lVar18 = -(long)plVar12;\n      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }\n      lVar13 = *plVar25;\n      plVar14 = plVar20 + -(long)plVar21;\n      *plVar20 = lVar13 + -1;\n      if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      plVar14[lVar13] = plVar9[lVar13];\nLAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;\n      lVar18 = uVar8 + 1;\n      if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }\n      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);\n      puVar2 = puVar11 + lVar18;\n      *puVar2 = 0;\n      do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);\n      iVar6 = -((int)lVar18 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }\n  }\n  else {\n    plVar14 = plVar20;\n    plVar24 = plVar9;\n    plVar21 = plVar25;\n    plVar26 = plVar12;\n    if (-1 < (long)plVar12) {\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }\n  }" (if "if") (parenthesized_expression "((long)plVar20 < 0)" (( "(") (binary_expression "(long)plVar20 < 0" (cast_expression "(long)plVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar20")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    plVar14 = plVar12;\n    param_2 = param_3;\n    plVar24 = plVar25;\n    plVar21 = plVar9;\n    plVar26 = plVar20;\n    if ((long)plVar12 < 0) {\n      if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }\n      lVar18 = -(long)plVar12;\n      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }\n      lVar13 = *plVar25;\n      plVar14 = plVar20 + -(long)plVar21;\n      *plVar20 = lVar13 + -1;\n      if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      plVar14[lVar13] = plVar9[lVar13];\nLAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;\n      lVar18 = uVar8 + 1;\n      if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }\n      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);\n      puVar2 = puVar11 + lVar18;\n      *puVar2 = 0;\n      do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);\n      iVar6 = -((int)lVar18 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }\n  }" ({ "{") (expression_statement "plVar14 = plVar12;" (assignment_expression "plVar14 = plVar12" (identifier "plVar14") (= "=") (identifier "plVar12")) (; ";")) (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" (identifier "param_2") (= "=") (identifier "param_3")) (; ";")) (expression_statement "plVar24 = plVar25;" (assignment_expression "plVar24 = plVar25" (identifier "plVar24") (= "=") (identifier "plVar25")) (; ";")) (expression_statement "plVar21 = plVar9;" (assignment_expression "plVar21 = plVar9" (identifier "plVar21") (= "=") (identifier "plVar9")) (; ";")) (expression_statement "plVar26 = plVar20;" (assignment_expression "plVar26 = plVar20" (identifier "plVar26") (= "=") (identifier "plVar20")) (; ";")) (if_statement "if ((long)plVar12 < 0) {\n      if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }\n      lVar18 = -(long)plVar12;\n      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }\n      lVar13 = *plVar25;\n      plVar14 = plVar20 + -(long)plVar21;\n      *plVar20 = lVar13 + -1;\n      if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      plVar14[lVar13] = plVar9[lVar13];\nLAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;\n      lVar18 = uVar8 + 1;\n      if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }\n      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);\n      puVar2 = puVar11 + lVar18;\n      *puVar2 = 0;\n      do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);\n      iVar6 = -((int)lVar18 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }" (if "if") (parenthesized_expression "((long)plVar12 < 0)" (( "(") (binary_expression "(long)plVar12 < 0" (cast_expression "(long)plVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar12")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }\n      lVar18 = -(long)plVar12;\n      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }\n      lVar13 = *plVar25;\n      plVar14 = plVar20 + -(long)plVar21;\n      *plVar20 = lVar13 + -1;\n      if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      plVar14[lVar13] = plVar9[lVar13];\nLAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;\n      lVar18 = uVar8 + 1;\n      if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }\n      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;\n      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);\n      puVar2 = puVar11 + lVar18;\n      *puVar2 = 0;\n      do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);\n      iVar6 = -((int)lVar18 + (int)*puVar2);\n      goto LAB_0011d44c;\n    }" ({ "{") (if_statement "if ((long)plVar12 <= (long)plVar20) {\n        plVar12 = plVar20;\n      }" (if "if") (parenthesized_expression "((long)plVar12 <= (long)plVar20)" (( "(") (binary_expression "(long)plVar12 <= (long)plVar20" (cast_expression "(long)plVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar12")) (<= "<=") (cast_expression "(long)plVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar20"))) () ")")) (compound_statement "{\n        plVar12 = plVar20;\n      }" ({ "{") (expression_statement "plVar12 = plVar20;" (assignment_expression "plVar12 = plVar20" (identifier "plVar12") (= "=") (identifier "plVar20")) (; ";")) (} "}"))) (expression_statement "lVar18 = -(long)plVar12;" (assignment_expression "lVar18 = -(long)plVar12" (identifier "lVar18") (= "=") (unary_expression "-(long)plVar12" (- "-") (cast_expression "(long)plVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar12")))) (; ";")) (if_statement "if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }\n      else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }" (if "if") (parenthesized_expression "((ulong)((long)plVar12 * -0x10) < 0x7f01)" (( "(") (binary_expression "(ulong)((long)plVar12 * -0x10) < 0x7f01" (call_expression "(ulong)((long)plVar12 * -0x10)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((long)plVar12 * -0x10)" (( "(") (binary_expression "(long)plVar12 * -0x10" (cast_expression "(long)plVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar12")) (* "*") (number_literal "-0x10")) () ")"))) (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n        lVar13 = -((long)plVar12 * -0x10 + 0x10U);\n        puVar17 = auStack_78 + lVar13;\n        plVar20 = (long *)((long)&local_70 + lVar13);\n        plVar21 = plVar12;\n      }" ({ "{") (expression_statement "lVar13 = -((long)plVar12 * -0x10 + 0x10U);" (assignment_expression "lVar13 = -((long)plVar12 * -0x10 + 0x10U)" (identifier "lVar13") (= "=") (unary_expression "-((long)plVar12 * -0x10 + 0x10U)" (- "-") (parenthesized_expression "((long)plVar12 * -0x10 + 0x10U)" (( "(") (binary_expression "(long)plVar12 * -0x10 + 0x10U" (binary_expression "(long)plVar12 * -0x10" (cast_expression "(long)plVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar12")) (* "*") (number_literal "-0x10")) (+ "+") (number_literal "0x10U")) () ")")))) (; ";")) (expression_statement "puVar17 = auStack_78 + lVar13;" (assignment_expression "puVar17 = auStack_78 + lVar13" (identifier "puVar17") (= "=") (binary_expression "auStack_78 + lVar13" (identifier "auStack_78") (+ "+") (identifier "lVar13"))) (; ";")) (expression_statement "plVar20 = (long *)((long)&local_70 + lVar13);" (assignment_expression "plVar20 = (long *)((long)&local_70 + lVar13)" (identifier "plVar20") (= "=") (cast_expression "(long *)((long)&local_70 + lVar13)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_70 + lVar13)" (( "(") (binary_expression "(long)&local_70 + lVar13" (cast_expression "(long)&local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_70" (& "&") (identifier "local_70"))) (+ "+") (identifier "lVar13")) () ")")))) (; ";")) (expression_statement "plVar21 = plVar12;" (assignment_expression "plVar21 = plVar12" (identifier "plVar21") (= "=") (identifier "plVar12")) (; ";")) (} "}")) (else_clause "else {\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }" (else "else") (compound_statement "{\n        local_58 = plVar12;\n        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);\n        plVar21 = local_58;\n      }" ({ "{") (expression_statement "local_58 = plVar12;" (assignment_expression "local_58 = plVar12" (identifier "local_58") (= "=") (identifier "plVar12")) (; ";")) (expression_statement "plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);" (assignment_expression "plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48)" (identifier "plVar20") (= "=") (cast_expression "(long *)__gmp_tmp_reentrant_alloc(&local_48)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "__gmp_tmp_reentrant_alloc(&local_48)" (identifier "__gmp_tmp_reentrant_alloc") (argument_list "(&local_48)" (( "(") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")"))))) (; ";")) (expression_statement "plVar21 = local_58;" (assignment_expression "plVar21 = local_58" (identifier "plVar21") (= "=") (identifier "local_58")) (; ";")) (} "}")))) (expression_statement "lVar13 = *plVar25;" (assignment_expression "lVar13 = *plVar25" (identifier "lVar13") (= "=") (pointer_expression "*plVar25" (* "*") (identifier "plVar25"))) (; ";")) (expression_statement "plVar14 = plVar20 + -(long)plVar21;" (assignment_expression "plVar14 = plVar20 + -(long)plVar21" (identifier "plVar14") (= "=") (binary_expression "plVar20 + -(long)plVar21" (identifier "plVar20") (+ "+") (unary_expression "-(long)plVar21" (- "-") (cast_expression "(long)plVar21" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar21"))))) (; ";")) (expression_statement "*plVar20 = lVar13 + -1;" (assignment_expression "*plVar20 = lVar13 + -1" (pointer_expression "*plVar20" (* "*") (identifier "plVar20")) (= "=") (binary_expression "lVar13 + -1" (identifier "lVar13") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (lVar13 == 0) {\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }\n      else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }" (if "if") (parenthesized_expression "(lVar13 == 0)" (( "(") (binary_expression "lVar13 == 0" (identifier "lVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }\nLAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;\n        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }\n        uVar7 = 1;\n        if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }\n        lVar18 = 0;\n        do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }" ({ "{") (if_statement "if (plVar21 == (long *)0xffffffffffffffff) {\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }\n        else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }" (if "if") (parenthesized_expression "(plVar21 == (long *)0xffffffffffffffff)" (( "(") (binary_expression "plVar21 == (long *)0xffffffffffffffff" (identifier "plVar21") (== "==") (cast_expression "(long *)0xffffffffffffffff" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffffffffffff"))) () ")")) (compound_statement "{\nLAB_0011d84a:\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          uVar8 = 0;\n          if (lVar13 == 0) goto LAB_0011d42d;\n        }" ({ "{") (labeled_statement "LAB_0011d84a:\n          lVar13 = *plVar9;" (statement_identifier "LAB_0011d84a") (: ":") (expression_statement "lVar13 = *plVar9;" (assignment_expression "lVar13 = *plVar9" (identifier "lVar13") (= "=") (pointer_expression "*plVar9" (* "*") (identifier "plVar9"))) (; ";"))) (expression_statement "*plVar14 = lVar13 + -1;" (assignment_expression "*plVar14 = lVar13 + -1" (pointer_expression "*plVar14" (* "*") (identifier "plVar14")) (= "=") (binary_expression "lVar13 + -1" (identifier "lVar13") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (lVar13 == 0) goto LAB_0011d42d;" (if "if") (parenthesized_expression "(lVar13 == 0)" (( "(") (binary_expression "lVar13 == 0" (identifier "lVar13") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0011d42d;" (goto "goto") (statement_identifier "LAB_0011d42d") (; ";"))) (} "}")) (else_clause "else {\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }" (else "else") (compound_statement "{\n          lVar13 = plVar25[1];\n          plVar20[1] = lVar13 + -1;\n          if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }\n          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }\nLAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;\n          lVar13 = *plVar9;\n          *plVar14 = lVar13 + -1;\n          if (lVar13 == 0) goto LAB_0011d551;\n        }" ({ "{") (expression_statement "lVar13 = plVar25[1];" (assignment_expression "lVar13 = plVar25[1]" (identifier "lVar13") (= "=") (subscript_expression "plVar25[1]" (identifier "plVar25") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "plVar20[1] = lVar13 + -1;" (assignment_expression "plVar20[1] = lVar13 + -1" (subscript_expression "plVar20[1]" (identifier "plVar20") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "lVar13 + -1" (identifier "lVar13") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (lVar13 == 0) {\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }\n          else {\n            lVar13 = 2;\n          }" (if "if") (parenthesized_expression "(lVar13 == 0)" (( "(") (binary_expression "lVar13 == 0" (identifier "lVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (-3 < (long)plVar21) goto LAB_0011d53d;\n            lVar19 = plVar25[2];\n            plVar20[2] = lVar19 + -1;\n            lVar13 = 3;\n            while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }\n          }" ({ "{") (if_statement "if (-3 < (long)plVar21) goto LAB_0011d53d;" (if "if") (parenthesized_expression "(-3 < (long)plVar21)" (( "(") (binary_expression "-3 < (long)plVar21" (number_literal "-3") (< "<") (cast_expression "(long)plVar21" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar21"))) () ")")) (goto_statement "goto LAB_0011d53d;" (goto "goto") (statement_identifier "LAB_0011d53d") (; ";"))) (expression_statement "lVar19 = plVar25[2];" (assignment_expression "lVar19 = plVar25[2]" (identifier "lVar19") (= "=") (subscript_expression "plVar25[2]" (identifier "plVar25") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "plVar20[2] = lVar19 + -1;" (assignment_expression "plVar20[2] = lVar19 + -1" (subscript_expression "plVar20[2]" (identifier "plVar20") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "lVar19 + -1" (identifier "lVar19") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "lVar13 = 3;" (assignment_expression "lVar13 = 3" (identifier "lVar13") (= "=") (number_literal "3")) (; ";")) (while_statement "while (lVar19 == 0) {\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }" (while "while") (parenthesized_expression "(lVar19 == 0)" (( "(") (binary_expression "lVar19 == 0" (identifier "lVar19") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;\n              lVar19 = plVar25[lVar13];\n              plVar20[lVar13] = lVar19 + -1;\n              lVar13 = lVar13 + 1;\n            }" ({ "{") (if_statement "if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;" (if "if") (parenthesized_expression "((long *)-lVar13 == plVar12)" (( "(") (binary_expression "(long *)-lVar13 == plVar12" (cast_expression "(long *)-lVar13" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-lVar13" (- "-") (identifier "lVar13"))) (== "==") (identifier "plVar12")) () ")")) (goto_statement "goto LAB_0011d53d;" (goto "goto") (statement_identifier "LAB_0011d53d") (; ";"))) (expression_statement "lVar19 = plVar25[lVar13];" (assignment_expression "lVar19 = plVar25[lVar13]" (identifier "lVar19") (= "=") (subscript_expression "plVar25[lVar13]" (identifier "plVar25") ([ "[") (identifier "lVar13") (] "]"))) (; ";")) (expression_statement "plVar20[lVar13] = lVar19 + -1;" (assignment_expression "plVar20[lVar13] = lVar19 + -1" (subscript_expression "plVar20[lVar13]" (identifier "plVar20") ([ "[") (identifier "lVar13") (] "]")) (= "=") (binary_expression "lVar19 + -1" (identifier "lVar19") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" (identifier "lVar13") (= "=") (binary_expression "lVar13 + 1" (identifier "lVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            lVar13 = 2;\n          }" (else "else") (compound_statement "{\n            lVar13 = 2;\n          }" ({ "{") (expression_statement "lVar13 = 2;" (assignment_expression "lVar13 = 2" (identifier "lVar13") (= "=") (number_literal "2")) (; ";")) (} "}")))) (if_statement "if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }" (if "if") (parenthesized_expression "((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18))" (( "(") (binary_expression "(plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)" (parenthesized_expression "(plVar20 != plVar25)" (( "(") (binary_expression "plVar20 != plVar25" (identifier "plVar20") (!= "!=") (identifier "plVar25")) () ")")) (&& "&&") (parenthesized_expression "((long *)-lVar13 != plVar12 && lVar13 <= lVar18)" (( "(") (binary_expression "(long *)-lVar13 != plVar12 && lVar13 <= lVar18" (binary_expression "(long *)-lVar13 != plVar12" (cast_expression "(long *)-lVar13" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-lVar13" (- "-") (identifier "lVar13"))) (!= "!=") (identifier "plVar12")) (&& "&&") (binary_expression "lVar13 <= lVar18" (identifier "lVar13") (<= "<=") (identifier "lVar18"))) () ")"))) () ")")) (compound_statement "{\n            plVar24 = plVar25 + lVar13;\n            local_58 = plVar20 + lVar13;\n            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);\n            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }\n          }" ({ "{") (expression_statement "plVar24 = plVar25 + lVar13;" (assignment_expression "plVar24 = plVar25 + lVar13" (identifier "plVar24") (= "=") (binary_expression "plVar25 + lVar13" (identifier "plVar25") (+ "+") (identifier "lVar13"))) (; ";")) (expression_statement "local_58 = plVar20 + lVar13;" (assignment_expression "local_58 = plVar20 + lVar13" (identifier "local_58") (= "=") (binary_expression "plVar20 + lVar13" (identifier "plVar20") (+ "+") (identifier "lVar13"))) (; ";")) (expression_statement "local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);" (assignment_expression "local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24)" (identifier "local_60") (= "=") (call_expression "CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24)" (identifier "CONCAT71") (argument_list "(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24)" (( "(") (field_expression "local_60._1_7_" (identifier "local_60") (. ".") (field_identifier "_1_7_")) (, ",") (binary_expression "plVar20 + lVar13 + 2 <= plVar24" (binary_expression "plVar20 + lVar13 + 2" (binary_expression "plVar20 + lVar13" (identifier "plVar20") (+ "+") (identifier "lVar13")) (+ "+") (number_literal "2")) (<= "<=") (identifier "plVar24")) () ")")))) (; ";")) (if_statement "if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)) {\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }\n            else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }" (if "if") (parenthesized_expression "((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13))" (( "(") (binary_expression "(plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&\n               (3 < ~(ulong)plVar21 - lVar13)" (parenthesized_expression "(plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58)" (( "(") (binary_expression "plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58" (binary_expression "plVar20 + lVar13 + 2 <= plVar24" (binary_expression "plVar20 + lVar13 + 2" (binary_expression "plVar20 + lVar13" (identifier "plVar20") (+ "+") (identifier "lVar13")) (+ "+") (number_literal "2")) (<= "<=") (identifier "plVar24")) (|| "||") (binary_expression "plVar25 + lVar13 + 2 <= local_58" (binary_expression "plVar25 + lVar13 + 2" (binary_expression "plVar25 + lVar13" (identifier "plVar25") (+ "+") (identifier "lVar13")) (+ "+") (number_literal "2")) (<= "<=") (identifier "local_58"))) () ")")) (&& "&&") (parenthesized_expression "(3 < ~(ulong)plVar21 - lVar13)" (( "(") (binary_expression "3 < ~(ulong)plVar21 - lVar13" (number_literal "3") (< "<") (binary_expression "~(ulong)plVar21 - lVar13" (unary_expression "~(ulong)plVar21" (~ "~") (cast_expression "(ulong)plVar21" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "plVar21"))) (- "-") (identifier "lVar13"))) () ")"))) () ")")) (compound_statement "{\n              local_60 = lVar18 - lVar13;\n              lVar19 = 0;\n              do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);\n              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);\n              if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }\n            }" ({ "{") (expression_statement "local_60 = lVar18 - lVar13;" (assignment_expression "local_60 = lVar18 - lVar13" (identifier "local_60") (= "=") (binary_expression "lVar18 - lVar13" (identifier "lVar18") (- "-") (identifier "lVar13"))) (; ";")) (expression_statement "lVar19 = 0;" (assignment_expression "lVar19 = 0" (identifier "lVar19") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              } while (lVar19 != (local_60 >> 1) * 0x10);" (do "do") (compound_statement "{\n                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];\n                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);\n                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;\n                lVar19 = lVar19 + 0x10;\n              }" ({ "{") (expression_statement "uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];" (assignment_expression "uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1]" (identifier "uVar4") (= "=") (subscript_expression "((undefined8 *)((long)plVar24 + lVar19))[1]" (parenthesized_expression "((undefined8 *)((long)plVar24 + lVar19))" (( "(") (cast_expression "(undefined8 *)((long)plVar24 + lVar19)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar24 + lVar19)" (( "(") (binary_expression "(long)plVar24 + lVar19" (cast_expression "(long)plVar24" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar24")) (+ "+") (identifier "lVar19")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);" (assignment_expression "*(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19)" (pointer_expression "*(undefined8 *)((long)local_58 + lVar19)" (* "*") (cast_expression "(undefined8 *)((long)local_58 + lVar19)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_58 + lVar19)" (( "(") (binary_expression "(long)local_58 + lVar19" (cast_expression "(long)local_58" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_58")) (+ "+") (identifier "lVar19")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)((long)plVar24 + lVar19)" (* "*") (cast_expression "(undefined8 *)((long)plVar24 + lVar19)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar24 + lVar19)" (( "(") (binary_expression "(long)plVar24 + lVar19" (cast_expression "(long)plVar24" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar24")) (+ "+") (identifier "lVar19")) () ")"))))) (; ";")) (expression_statement "((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;" (assignment_expression "((undefined8 *)((long)local_58 + lVar19))[1] = uVar4" (subscript_expression "((undefined8 *)((long)local_58 + lVar19))[1]" (parenthesized_expression "((undefined8 *)((long)local_58 + lVar19))" (( "(") (cast_expression "(undefined8 *)((long)local_58 + lVar19)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_58 + lVar19)" (( "(") (binary_expression "(long)local_58 + lVar19" (cast_expression "(long)local_58" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_58")) (+ "+") (identifier "lVar19")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "lVar19 = lVar19 + 0x10;" (assignment_expression "lVar19 = lVar19 + 0x10" (identifier "lVar19") (= "=") (binary_expression "lVar19 + 0x10" (identifier "lVar19") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar19 != (local_60 >> 1) * 0x10)" (( "(") (binary_expression "lVar19 != (local_60 >> 1) * 0x10" (identifier "lVar19") (!= "!=") (binary_expression "(local_60 >> 1) * 0x10" (parenthesized_expression "(local_60 >> 1)" (( "(") (binary_expression "local_60 >> 1" (identifier "local_60") (>> ">>") (number_literal "1")) () ")")) (* "*") (number_literal "0x10"))) () ")")) (; ";")) (expression_statement "lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);" (assignment_expression "lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe)" (identifier "lVar13") (= "=") (binary_expression "lVar13 + (local_60 & 0xfffffffffffffffe)" (identifier "lVar13") (+ "+") (parenthesized_expression "(local_60 & 0xfffffffffffffffe)" (( "(") (binary_expression "local_60 & 0xfffffffffffffffe" (identifier "local_60") (& "&") (number_literal "0xfffffffffffffffe")) () ")")))) (; ";")) (if_statement "if (local_60 != (local_60 & 0xfffffffffffffffe)) {\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }" (if "if") (parenthesized_expression "(local_60 != (local_60 & 0xfffffffffffffffe))" (( "(") (binary_expression "local_60 != (local_60 & 0xfffffffffffffffe)" (identifier "local_60") (!= "!=") (parenthesized_expression "(local_60 & 0xfffffffffffffffe)" (( "(") (binary_expression "local_60 & 0xfffffffffffffffe" (identifier "local_60") (& "&") (number_literal "0xfffffffffffffffe")) () ")"))) () ")")) (compound_statement "{\nLAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];\n              }" ({ "{") (labeled_statement "LAB_0011d534:\n                plVar20[lVar13] = plVar25[lVar13];" (statement_identifier "LAB_0011d534") (: ":") (expression_statement "plVar20[lVar13] = plVar25[lVar13];" (assignment_expression "plVar20[lVar13] = plVar25[lVar13]" (subscript_expression "plVar20[lVar13]" (identifier "plVar20") ([ "[") (identifier "lVar13") (] "]")) (= "=") (subscript_expression "plVar25[lVar13]" (identifier "plVar25") ([ "[") (identifier "lVar13") (] "]"))) (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }" (else "else") (compound_statement "{\n              do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);\n            }" ({ "{") (do_statement "do {\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              } while ((long *)-lVar13 != plVar12);" (do "do") (compound_statement "{\n                plVar20[lVar13] = plVar25[lVar13];\n                lVar13 = lVar13 + 1;\n              }" ({ "{") (expression_statement "plVar20[lVar13] = plVar25[lVar13];" (assignment_expression "plVar20[lVar13] = plVar25[lVar13]" (subscript_expression "plVar20[lVar13]" (identifier "plVar20") ([ "[") (identifier "lVar13") (] "]")) (= "=") (subscript_expression "plVar25[lVar13]" (identifier "plVar25") ([ "[") (identifier "lVar13") (] "]"))) (; ";")) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" (identifier "lVar13") (= "=") (binary_expression "lVar13 + 1" (identifier "lVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((long *)-lVar13 != plVar12)" (( "(") (binary_expression "(long *)-lVar13 != plVar12" (cast_expression "(long *)-lVar13" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-lVar13" (- "-") (identifier "lVar13"))) (!= "!=") (identifier "plVar12")) () ")")) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_0011d53d:\n          uVar8 = ~(ulong)plVar21;" (statement_identifier "LAB_0011d53d") (: ":") (expression_statement "uVar8 = ~(ulong)plVar21;" (assignment_expression "uVar8 = ~(ulong)plVar21" (identifier "uVar8") (= "=") (unary_expression "~(ulong)plVar21" (~ "~") (cast_expression "(ulong)plVar21" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "plVar21")))) (; ";"))) (expression_statement "lVar13 = *plVar9;" (assignment_expression "lVar13 = *plVar9" (identifier "lVar13") (= "=") (pointer_expression "*plVar9" (* "*") (identifier "plVar9"))) (; ";")) (expression_statement "*plVar14 = lVar13 + -1;" (assignment_expression "*plVar14 = lVar13 + -1" (pointer_expression "*plVar14" (* "*") (identifier "plVar14")) (= "=") (binary_expression "lVar13 + -1" (identifier "lVar13") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (lVar13 == 0) goto LAB_0011d551;" (if "if") (parenthesized_expression "(lVar13 == 0)" (( "(") (binary_expression "lVar13 == 0" (identifier "lVar13") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0011d551;" (goto "goto") (statement_identifier "LAB_0011d551") (; ";"))) (} "}")))) (labeled_statement "LAB_0011d3a0:\n        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;" (statement_identifier "LAB_0011d3a0") (: ":") (if_statement "if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;" (if "if") (parenthesized_expression "((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff))" (( "(") (binary_expression "(plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)" (parenthesized_expression "(plVar9 == plVar14)" (( "(") (binary_expression "plVar9 == plVar14" (identifier "plVar9") (== "==") (identifier "plVar14")) () ")")) (|| "||") (parenthesized_expression "(plVar21 == (long *)0xffffffffffffffff)" (( "(") (binary_expression "plVar21 == (long *)0xffffffffffffffff" (identifier "plVar21") (== "==") (cast_expression "(long *)0xffffffffffffffff" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffffffffffff"))) () ")"))) () ")")) (goto_statement "goto LAB_0011d42d;" (goto "goto") (statement_identifier "LAB_0011d42d") (; ";")))) (if_statement "if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }" (if "if") (parenthesized_expression "((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21))" (( "(") (binary_expression "(plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)" (parenthesized_expression "(plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3)" (( "(") (binary_expression "plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&\n             plVar20 + (1 - (long)plVar21) < plVar9 + 3" (binary_expression "plVar9 + 1 < plVar20 + (3 - (long)plVar21)" (binary_expression "plVar9 + 1" (identifier "plVar9") (+ "+") (number_literal "1")) (< "<") (binary_expression "plVar20 + (3 - (long)plVar21)" (identifier "plVar20") (+ "+") (parenthesized_expression "(3 - (long)plVar21)" (( "(") (binary_expression "3 - (long)plVar21" (number_literal "3") (- "-") (cast_expression "(long)plVar21" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar21"))) () ")")))) (&& "&&") (binary_expression "plVar20 + (1 - (long)plVar21) < plVar9 + 3" (binary_expression "plVar20 + (1 - (long)plVar21)" (identifier "plVar20") (+ "+") (parenthesized_expression "(1 - (long)plVar21)" (( "(") (binary_expression "1 - (long)plVar21" (number_literal "1") (- "-") (cast_expression "(long)plVar21" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar21"))) () ")"))) (< "<") (binary_expression "plVar9 + 3" (identifier "plVar9") (+ "+") (number_literal "3")))) () ")")) (|| "||") (parenthesized_expression "(-6 < (long)plVar21)" (( "(") (binary_expression "-6 < (long)plVar21" (number_literal "-6") (< "<") (cast_expression "(long)plVar21" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar21"))) () ")"))) () ")")) (compound_statement "{\n          lVar13 = 1;\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          goto LAB_0011d42d;\n        }" ({ "{") (expression_statement "lVar13 = 1;" (assignment_expression "lVar13 = 1" (identifier "lVar13") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);" (do "do") (compound_statement "{\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          }" ({ "{") (expression_statement "plVar14[lVar13] = plVar9[lVar13];" (assignment_expression "plVar14[lVar13] = plVar9[lVar13]" (subscript_expression "plVar14[lVar13]" (identifier "plVar14") ([ "[") (identifier "lVar13") (] "]")) (= "=") (subscript_expression "plVar9[lVar13]" (identifier "plVar9") ([ "[") (identifier "lVar13") (] "]"))) (; ";")) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" (identifier "lVar13") (= "=") (binary_expression "lVar13 + 1" (identifier "lVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((long *)-lVar13 != plVar12 && lVar13 <= lVar18)" (( "(") (binary_expression "(long *)-lVar13 != plVar12 && lVar13 <= lVar18" (binary_expression "(long *)-lVar13 != plVar12" (cast_expression "(long *)-lVar13" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-lVar13" (- "-") (identifier "lVar13"))) (!= "!=") (identifier "plVar12")) (&& "&&") (binary_expression "lVar13 <= lVar18" (identifier "lVar13") (<= "<=") (identifier "lVar18"))) () ")")) (; ";")) (goto_statement "goto LAB_0011d42d;" (goto "goto") (statement_identifier "LAB_0011d42d") (; ";")) (} "}"))) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (if_statement "if ((long)plVar21 < -1) {\n          uVar7 = uVar8;\n        }" (if "if") (parenthesized_expression "((long)plVar21 < -1)" (( "(") (binary_expression "(long)plVar21 < -1" (cast_expression "(long)plVar21" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar21")) (< "<") (number_literal "-1")) () ")")) (compound_statement "{\n          uVar7 = uVar8;\n        }" ({ "{") (expression_statement "uVar7 = uVar8;" (assignment_expression "uVar7 = uVar8" (identifier "uVar7") (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" (identifier "lVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);" (do "do") (compound_statement "{\n          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);\n          uVar4 = puVar3[1];\n          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);\n          *puVar1 = *puVar3;\n          puVar1[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        }" ({ "{") (expression_statement "puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);" (assignment_expression "puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8)" (identifier "puVar3") (= "=") (cast_expression "(undefined8 *)((long)plVar9 + lVar18 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar9 + lVar18 + 8)" (( "(") (binary_expression "(long)plVar9 + lVar18 + 8" (binary_expression "(long)plVar9 + lVar18" (cast_expression "(long)plVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar9")) (+ "+") (identifier "lVar18")) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "uVar4 = puVar3[1];" (assignment_expression "uVar4 = puVar3[1]" (identifier "uVar4") (= "=") (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);" (assignment_expression "puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18)" (identifier "puVar1") (= "=") (cast_expression "(undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)(plVar20 + (1 - (long)plVar21)) + lVar18)" (( "(") (binary_expression "(long)(plVar20 + (1 - (long)plVar21)) + lVar18" (cast_expression "(long)(plVar20 + (1 - (long)plVar21))" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(plVar20 + (1 - (long)plVar21))" (( "(") (binary_expression "plVar20 + (1 - (long)plVar21)" (identifier "plVar20") (+ "+") (parenthesized_expression "(1 - (long)plVar21)" (( "(") (binary_expression "1 - (long)plVar21" (number_literal "1") (- "-") (cast_expression "(long)plVar21" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar21"))) () ")"))) () ")"))) (+ "+") (identifier "lVar18")) () ")")))) (; ";")) (expression_statement "*puVar1 = *puVar3;" (assignment_expression "*puVar1 = *puVar3" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (pointer_expression "*puVar3" (* "*") (identifier "puVar3"))) (; ";")) (expression_statement "puVar1[1] = uVar4;" (assignment_expression "puVar1[1] = uVar4" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "lVar18 = lVar18 + 0x10;" (assignment_expression "lVar18 = lVar18 + 0x10" (identifier "lVar18") (= "=") (binary_expression "lVar18 + 0x10" (identifier "lVar18") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar18 != (uVar7 >> 1) * 0x10)" (( "(") (binary_expression "lVar18 != (uVar7 >> 1) * 0x10" (identifier "lVar18") (!= "!=") (binary_expression "(uVar7 >> 1) * 0x10" (parenthesized_expression "(uVar7 >> 1)" (( "(") (binary_expression "uVar7 >> 1" (identifier "uVar7") (>> ">>") (number_literal "1")) () ")")) (* "*") (number_literal "0x10"))) () ")")) (; ";")) (expression_statement "lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;" (assignment_expression "lVar13 = (uVar7 & 0xfffffffffffffffe) + 1" (identifier "lVar13") (= "=") (binary_expression "(uVar7 & 0xfffffffffffffffe) + 1" (parenthesized_expression "(uVar7 & 0xfffffffffffffffe)" (( "(") (binary_expression "uVar7 & 0xfffffffffffffffe" (identifier "uVar7") (& "&") (number_literal "0xfffffffffffffffe")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;" (if "if") (parenthesized_expression "(uVar7 == (uVar7 & 0xfffffffffffffffe))" (( "(") (binary_expression "uVar7 == (uVar7 & 0xfffffffffffffffe)" (identifier "uVar7") (== "==") (parenthesized_expression "(uVar7 & 0xfffffffffffffffe)" (( "(") (binary_expression "uVar7 & 0xfffffffffffffffe" (identifier "uVar7") (& "&") (number_literal "0xfffffffffffffffe")) () ")"))) () ")")) (goto_statement "goto LAB_0011d42d;" (goto "goto") (statement_identifier "LAB_0011d42d") (; ";"))) (} "}")) (else_clause "else {\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }" (else "else") (compound_statement "{\n        if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }\n        lVar13 = *plVar9;\n        *plVar14 = lVar13 + -1;\n        if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }\n        if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }\nLAB_0011d551:\n        uVar8 = ~(ulong)plVar21;\n        lVar13 = plVar9[1];\n        plVar14[1] = lVar13 + -1;\n        if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }\n        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;\n        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }\n        uVar7 = lVar18 - lVar13;\n        lVar18 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);\n        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);\n        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;\n      }" ({ "{") (if_statement "if (plVar20 != plVar25) {\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }" (if "if") (parenthesized_expression "(plVar20 != plVar25)" (( "(") (binary_expression "plVar20 != plVar25" (identifier "plVar20") (!= "!=") (identifier "plVar25")) () ")")) (compound_statement "{\n          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;\n          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }\n          goto LAB_0011d53d;\n        }" ({ "{") (if_statement "if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;" (if "if") (parenthesized_expression "(plVar21 == (long *)0xffffffffffffffff)" (( "(") (binary_expression "plVar21 == (long *)0xffffffffffffffff" (identifier "plVar21") (== "==") (cast_expression "(long *)0xffffffffffffffff" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffffffffffff"))) () ")")) (goto_statement "goto LAB_0011d84a;" (goto "goto") (statement_identifier "LAB_0011d84a") (; ";"))) (if_statement "if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }\n          else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }" (if "if") (parenthesized_expression "((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21))" (( "(") (binary_expression "(plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)" (parenthesized_expression "(plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3)" (( "(") (binary_expression "plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3" (binary_expression "plVar25 + 1 < plVar20 + 3" (binary_expression "plVar25 + 1" (identifier "plVar25") (+ "+") (number_literal "1")) (< "<") (binary_expression "plVar20 + 3" (identifier "plVar20") (+ "+") (number_literal "3"))) (&& "&&") (binary_expression "plVar20 + 1 < plVar25 + 3" (binary_expression "plVar20 + 1" (identifier "plVar20") (+ "+") (number_literal "1")) (< "<") (binary_expression "plVar25 + 3" (identifier "plVar25") (+ "+") (number_literal "3")))) () ")")) (|| "||") (parenthesized_expression "(-6 < (long)plVar21)" (( "(") (binary_expression "-6 < (long)plVar21" (number_literal "-6") (< "<") (cast_expression "(long)plVar21" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar21"))) () ")"))) () ")")) (compound_statement "{\n            lVar13 = 1;\n            do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);\n          }" ({ "{") (expression_statement "lVar13 = 1;" (assignment_expression "lVar13 = 1" (identifier "lVar13") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);" (do "do") (compound_statement "{\n              plVar20[lVar13] = plVar25[lVar13];\n              lVar13 = lVar13 + 1;\n            }" ({ "{") (expression_statement "plVar20[lVar13] = plVar25[lVar13];" (assignment_expression "plVar20[lVar13] = plVar25[lVar13]" (subscript_expression "plVar20[lVar13]" (identifier "plVar20") ([ "[") (identifier "lVar13") (] "]")) (= "=") (subscript_expression "plVar25[lVar13]" (identifier "plVar25") ([ "[") (identifier "lVar13") (] "]"))) (; ";")) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" (identifier "lVar13") (= "=") (binary_expression "lVar13 + 1" (identifier "lVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((long *)-lVar13 != plVar12 && lVar13 <= lVar18)" (( "(") (binary_expression "(long *)-lVar13 != plVar12 && lVar13 <= lVar18" (binary_expression "(long *)-lVar13 != plVar12" (cast_expression "(long *)-lVar13" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-lVar13" (- "-") (identifier "lVar13"))) (!= "!=") (identifier "plVar12")) (&& "&&") (binary_expression "lVar13 <= lVar18" (identifier "lVar13") (<= "<=") (identifier "lVar18"))) () ")")) (; ";")) (} "}")) (else_clause "else {\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }" (else "else") (compound_statement "{\n            lVar13 = 8;\n            uVar8 = 1;\n            if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }\n            do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);\n            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;\n            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;\n          }" ({ "{") (expression_statement "lVar13 = 8;" (assignment_expression "lVar13 = 8" (identifier "lVar13") (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (if_statement "if ((long)plVar21 < -1) {\n              uVar8 = ~(ulong)plVar21;\n            }" (if "if") (parenthesized_expression "((long)plVar21 < -1)" (( "(") (binary_expression "(long)plVar21 < -1" (cast_expression "(long)plVar21" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar21")) (< "<") (number_literal "-1")) () ")")) (compound_statement "{\n              uVar8 = ~(ulong)plVar21;\n            }" ({ "{") (expression_statement "uVar8 = ~(ulong)plVar21;" (assignment_expression "uVar8 = ~(ulong)plVar21" (identifier "uVar8") (= "=") (unary_expression "~(ulong)plVar21" (~ "~") (cast_expression "(ulong)plVar21" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "plVar21")))) (; ";")) (} "}"))) (do_statement "do {\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);" (do "do") (compound_statement "{\n              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];\n              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);\n              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;\n              lVar13 = lVar13 + 0x10;\n            }" ({ "{") (expression_statement "uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];" (assignment_expression "uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1]" (identifier "uVar4") (= "=") (subscript_expression "((undefined8 *)((long)plVar25 + lVar13))[1]" (parenthesized_expression "((undefined8 *)((long)plVar25 + lVar13))" (( "(") (cast_expression "(undefined8 *)((long)plVar25 + lVar13)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar25 + lVar13)" (( "(") (binary_expression "(long)plVar25 + lVar13" (cast_expression "(long)plVar25" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar25")) (+ "+") (identifier "lVar13")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);" (assignment_expression "*(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13)" (pointer_expression "*(undefined8 *)((long)plVar20 + lVar13)" (* "*") (cast_expression "(undefined8 *)((long)plVar20 + lVar13)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar20 + lVar13)" (( "(") (binary_expression "(long)plVar20 + lVar13" (cast_expression "(long)plVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar20")) (+ "+") (identifier "lVar13")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)((long)plVar25 + lVar13)" (* "*") (cast_expression "(undefined8 *)((long)plVar25 + lVar13)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar25 + lVar13)" (( "(") (binary_expression "(long)plVar25 + lVar13" (cast_expression "(long)plVar25" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar25")) (+ "+") (identifier "lVar13")) () ")"))))) (; ";")) (expression_statement "((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;" (assignment_expression "((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4" (subscript_expression "((undefined8 *)((long)plVar20 + lVar13))[1]" (parenthesized_expression "((undefined8 *)((long)plVar20 + lVar13))" (( "(") (cast_expression "(undefined8 *)((long)plVar20 + lVar13)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar20 + lVar13)" (( "(") (binary_expression "(long)plVar20 + lVar13" (cast_expression "(long)plVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar20")) (+ "+") (identifier "lVar13")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "lVar13 = lVar13 + 0x10;" (assignment_expression "lVar13 = lVar13 + 0x10" (identifier "lVar13") (= "=") (binary_expression "lVar13 + 0x10" (identifier "lVar13") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar13 != (uVar8 >> 1) * 0x10 + 8)" (( "(") (binary_expression "lVar13 != (uVar8 >> 1) * 0x10 + 8" (identifier "lVar13") (!= "!=") (binary_expression "(uVar8 >> 1) * 0x10 + 8" (binary_expression "(uVar8 >> 1) * 0x10" (parenthesized_expression "(uVar8 >> 1)" (( "(") (binary_expression "uVar8 >> 1" (identifier "uVar8") (>> ">>") (number_literal "1")) () ")")) (* "*") (number_literal "0x10")) (+ "+") (number_literal "8"))) () ")")) (; ";")) (expression_statement "lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;" (assignment_expression "lVar13 = (uVar8 & 0xfffffffffffffffe) + 1" (identifier "lVar13") (= "=") (binary_expression "(uVar8 & 0xfffffffffffffffe) + 1" (parenthesized_expression "(uVar8 & 0xfffffffffffffffe)" (( "(") (binary_expression "uVar8 & 0xfffffffffffffffe" (identifier "uVar8") (& "&") (number_literal "0xfffffffffffffffe")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;" (if "if") (parenthesized_expression "(uVar8 != (uVar8 & 0xfffffffffffffffe))" (( "(") (binary_expression "uVar8 != (uVar8 & 0xfffffffffffffffe)" (identifier "uVar8") (!= "!=") (parenthesized_expression "(uVar8 & 0xfffffffffffffffe)" (( "(") (binary_expression "uVar8 & 0xfffffffffffffffe" (identifier "uVar8") (& "&") (number_literal "0xfffffffffffffffe")) () ")"))) () ")")) (goto_statement "goto LAB_0011d534;" (goto "goto") (statement_identifier "LAB_0011d534") (; ";"))) (} "}")))) (goto_statement "goto LAB_0011d53d;" (goto "goto") (statement_identifier "LAB_0011d53d") (; ";")) (} "}"))) (expression_statement "lVar13 = *plVar9;" (assignment_expression "lVar13 = *plVar9" (identifier "lVar13") (= "=") (pointer_expression "*plVar9" (* "*") (identifier "plVar9"))) (; ";")) (expression_statement "*plVar14 = lVar13 + -1;" (assignment_expression "*plVar14 = lVar13 + -1" (pointer_expression "*plVar14" (* "*") (identifier "plVar14")) (= "=") (binary_expression "lVar13 + -1" (identifier "lVar13") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (lVar13 != 0) {\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }" (if "if") (parenthesized_expression "(lVar13 != 0)" (( "(") (binary_expression "lVar13 != 0" (identifier "lVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar8 = ~(ulong)plVar21;\n          goto LAB_0011d3a0;\n        }" ({ "{") (expression_statement "uVar8 = ~(ulong)plVar21;" (assignment_expression "uVar8 = ~(ulong)plVar21" (identifier "uVar8") (= "=") (unary_expression "~(ulong)plVar21" (~ "~") (cast_expression "(ulong)plVar21" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "plVar21")))) (; ";")) (goto_statement "goto LAB_0011d3a0;" (goto "goto") (statement_identifier "LAB_0011d3a0") (; ";")) (} "}"))) (if_statement "if (plVar21 == (long *)0xffffffffffffffff) {\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }" (if "if") (parenthesized_expression "(plVar21 == (long *)0xffffffffffffffff)" (( "(") (binary_expression "plVar21 == (long *)0xffffffffffffffff" (identifier "plVar21") (== "==") (cast_expression "(long *)0xffffffffffffffff" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffffffffffff"))) () ")")) (compound_statement "{\n          uVar8 = 0;\n          goto LAB_0011d42d;\n        }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0011d42d;" (goto "goto") (statement_identifier "LAB_0011d42d") (; ";")) (} "}"))) (labeled_statement "LAB_0011d551:\n        uVar8 = ~(ulong)plVar21;" (statement_identifier "LAB_0011d551") (: ":") (expression_statement "uVar8 = ~(ulong)plVar21;" (assignment_expression "uVar8 = ~(ulong)plVar21" (identifier "uVar8") (= "=") (unary_expression "~(ulong)plVar21" (~ "~") (cast_expression "(ulong)plVar21" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "plVar21")))) (; ";"))) (expression_statement "lVar13 = plVar9[1];" (assignment_expression "lVar13 = plVar9[1]" (identifier "lVar13") (= "=") (subscript_expression "plVar9[1]" (identifier "plVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "plVar14[1] = lVar13 + -1;" (assignment_expression "plVar14[1] = lVar13 + -1" (subscript_expression "plVar14[1]" (identifier "plVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "lVar13 + -1" (identifier "lVar13") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (lVar13 == 0) {\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }\n        else {\n          lVar13 = 2;\n        }" (if "if") (parenthesized_expression "(lVar13 == 0)" (( "(") (binary_expression "lVar13 == 0" (identifier "lVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (-3 < (long)plVar21) goto LAB_0011d42d;\n          lVar19 = plVar9[2];\n          lVar13 = 3;\n          plVar14[2] = lVar19 + -1;\n          while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }\n        }" ({ "{") (if_statement "if (-3 < (long)plVar21) goto LAB_0011d42d;" (if "if") (parenthesized_expression "(-3 < (long)plVar21)" (( "(") (binary_expression "-3 < (long)plVar21" (number_literal "-3") (< "<") (cast_expression "(long)plVar21" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar21"))) () ")")) (goto_statement "goto LAB_0011d42d;" (goto "goto") (statement_identifier "LAB_0011d42d") (; ";"))) (expression_statement "lVar19 = plVar9[2];" (assignment_expression "lVar19 = plVar9[2]" (identifier "lVar19") (= "=") (subscript_expression "plVar9[2]" (identifier "plVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "lVar13 = 3;" (assignment_expression "lVar13 = 3" (identifier "lVar13") (= "=") (number_literal "3")) (; ";")) (expression_statement "plVar14[2] = lVar19 + -1;" (assignment_expression "plVar14[2] = lVar19 + -1" (subscript_expression "plVar14[2]" (identifier "plVar14") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "lVar19 + -1" (identifier "lVar19") (+ "+") (number_literal "-1"))) (; ";")) (while_statement "while (lVar19 == 0) {\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }" (while "while") (parenthesized_expression "(lVar19 == 0)" (( "(") (binary_expression "lVar19 == 0" (identifier "lVar19") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;\n            lVar19 = plVar9[lVar13];\n            plVar14[lVar13] = lVar19 + -1;\n            lVar13 = lVar13 + 1;\n          }" ({ "{") (if_statement "if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;" (if "if") (parenthesized_expression "((long *)-lVar13 == plVar12)" (( "(") (binary_expression "(long *)-lVar13 == plVar12" (cast_expression "(long *)-lVar13" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-lVar13" (- "-") (identifier "lVar13"))) (== "==") (identifier "plVar12")) () ")")) (goto_statement "goto LAB_0011d42d;" (goto "goto") (statement_identifier "LAB_0011d42d") (; ";"))) (expression_statement "lVar19 = plVar9[lVar13];" (assignment_expression "lVar19 = plVar9[lVar13]" (identifier "lVar19") (= "=") (subscript_expression "plVar9[lVar13]" (identifier "plVar9") ([ "[") (identifier "lVar13") (] "]"))) (; ";")) (expression_statement "plVar14[lVar13] = lVar19 + -1;" (assignment_expression "plVar14[lVar13] = lVar19 + -1" (subscript_expression "plVar14[lVar13]" (identifier "plVar14") ([ "[") (identifier "lVar13") (] "]")) (= "=") (binary_expression "lVar19 + -1" (identifier "lVar19") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" (identifier "lVar13") (= "=") (binary_expression "lVar13 + 1" (identifier "lVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          lVar13 = 2;\n        }" (else "else") (compound_statement "{\n          lVar13 = 2;\n        }" ({ "{") (expression_statement "lVar13 = 2;" (assignment_expression "lVar13 = 2" (identifier "lVar13") (= "=") (number_literal "2")) (; ";")) (} "}")))) (if_statement "if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))\n        goto LAB_0011d42d;" (if "if") (parenthesized_expression "((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))" (( "(") (binary_expression "(plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0)" (parenthesized_expression "(plVar9 == plVar14)" (( "(") (binary_expression "plVar9 == plVar14" (identifier "plVar9") (== "==") (identifier "plVar14")) () ")")) (|| "||") (parenthesized_expression "(SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0)" (( "(") (binary_expression "SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0" (call_expression "SBORROW8(lVar13,lVar18)" (identifier "SBORROW8") (argument_list "(lVar13,lVar18)" (( "(") (identifier "lVar13") (, ",") (identifier "lVar18") () ")"))) (== "==") (binary_expression "lVar13 + (long)plVar12 < 0" (binary_expression "lVar13 + (long)plVar12" (identifier "lVar13") (+ "+") (cast_expression "(long)plVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar12"))) (< "<") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0011d42d;" (goto "goto") (statement_identifier "LAB_0011d42d") (; ";"))) (if_statement "if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)) {\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }" (if "if") (parenthesized_expression "((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4))" (( "(") (binary_expression "(plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||\n           (uVar8 - lVar13 < 4)" (parenthesized_expression "(plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2)" (( "(") (binary_expression "plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2" (binary_expression "plVar14 + lVar13 < plVar9 + lVar13 + 2" (binary_expression "plVar14 + lVar13" (identifier "plVar14") (+ "+") (identifier "lVar13")) (< "<") (binary_expression "plVar9 + lVar13 + 2" (binary_expression "plVar9 + lVar13" (identifier "plVar9") (+ "+") (identifier "lVar13")) (+ "+") (number_literal "2"))) (&& "&&") (binary_expression "plVar9 + lVar13 < plVar14 + lVar13 + 2" (binary_expression "plVar9 + lVar13" (identifier "plVar9") (+ "+") (identifier "lVar13")) (< "<") (binary_expression "plVar14 + lVar13 + 2" (binary_expression "plVar14 + lVar13" (identifier "plVar14") (+ "+") (identifier "lVar13")) (+ "+") (number_literal "2")))) () ")")) (|| "||") (parenthesized_expression "(uVar8 - lVar13 < 4)" (( "(") (binary_expression "uVar8 - lVar13 < 4" (binary_expression "uVar8 - lVar13" (identifier "uVar8") (- "-") (identifier "lVar13")) (< "<") (number_literal "4")) () ")"))) () ")")) (compound_statement "{\n          do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);\n          goto LAB_0011d42d;\n        }" ({ "{") (do_statement "do {\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          } while ((long *)-lVar13 != plVar12);" (do "do") (compound_statement "{\n            plVar14[lVar13] = plVar9[lVar13];\n            lVar13 = lVar13 + 1;\n          }" ({ "{") (expression_statement "plVar14[lVar13] = plVar9[lVar13];" (assignment_expression "plVar14[lVar13] = plVar9[lVar13]" (subscript_expression "plVar14[lVar13]" (identifier "plVar14") ([ "[") (identifier "lVar13") (] "]")) (= "=") (subscript_expression "plVar9[lVar13]" (identifier "plVar9") ([ "[") (identifier "lVar13") (] "]"))) (; ";")) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" (identifier "lVar13") (= "=") (binary_expression "lVar13 + 1" (identifier "lVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((long *)-lVar13 != plVar12)" (( "(") (binary_expression "(long *)-lVar13 != plVar12" (cast_expression "(long *)-lVar13" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-lVar13" (- "-") (identifier "lVar13"))) (!= "!=") (identifier "plVar12")) () ")")) (; ";")) (goto_statement "goto LAB_0011d42d;" (goto "goto") (statement_identifier "LAB_0011d42d") (; ";")) (} "}"))) (expression_statement "uVar7 = lVar18 - lVar13;" (assignment_expression "uVar7 = lVar18 - lVar13" (identifier "uVar7") (= "=") (binary_expression "lVar18 - lVar13" (identifier "lVar18") (- "-") (identifier "lVar13"))) (; ";")) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" (identifier "lVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        } while (lVar18 != (uVar7 >> 1) * 0x10);" (do "do") (compound_statement "{\n          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);\n          uVar4 = puVar1[1];\n          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);\n          *puVar3 = *puVar1;\n          puVar3[1] = uVar4;\n          lVar18 = lVar18 + 0x10;\n        }" ({ "{") (expression_statement "puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);" (assignment_expression "puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18)" (identifier "puVar1") (= "=") (cast_expression "(undefined8 *)((long)(plVar9 + lVar13) + lVar18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)(plVar9 + lVar13) + lVar18)" (( "(") (binary_expression "(long)(plVar9 + lVar13) + lVar18" (cast_expression "(long)(plVar9 + lVar13)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(plVar9 + lVar13)" (( "(") (binary_expression "plVar9 + lVar13" (identifier "plVar9") (+ "+") (identifier "lVar13")) () ")"))) (+ "+") (identifier "lVar18")) () ")")))) (; ";")) (expression_statement "uVar4 = puVar1[1];" (assignment_expression "uVar4 = puVar1[1]" (identifier "uVar4") (= "=") (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);" (assignment_expression "puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18)" (identifier "puVar3") (= "=") (cast_expression "(undefined8 *)((long)(plVar14 + lVar13) + lVar18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)(plVar14 + lVar13) + lVar18)" (( "(") (binary_expression "(long)(plVar14 + lVar13) + lVar18" (cast_expression "(long)(plVar14 + lVar13)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(plVar14 + lVar13)" (( "(") (binary_expression "plVar14 + lVar13" (identifier "plVar14") (+ "+") (identifier "lVar13")) () ")"))) (+ "+") (identifier "lVar18")) () ")")))) (; ";")) (expression_statement "*puVar3 = *puVar1;" (assignment_expression "*puVar3 = *puVar1" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (expression_statement "puVar3[1] = uVar4;" (assignment_expression "puVar3[1] = uVar4" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "lVar18 = lVar18 + 0x10;" (assignment_expression "lVar18 = lVar18 + 0x10" (identifier "lVar18") (= "=") (binary_expression "lVar18 + 0x10" (identifier "lVar18") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar18 != (uVar7 >> 1) * 0x10)" (( "(") (binary_expression "lVar18 != (uVar7 >> 1) * 0x10" (identifier "lVar18") (!= "!=") (binary_expression "(uVar7 >> 1) * 0x10" (parenthesized_expression "(uVar7 >> 1)" (( "(") (binary_expression "uVar7 >> 1" (identifier "uVar7") (>> ">>") (number_literal "1")) () ")")) (* "*") (number_literal "0x10"))) () ")")) (; ";")) (expression_statement "lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);" (assignment_expression "lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe)" (identifier "lVar13") (= "=") (binary_expression "lVar13 + (uVar7 & 0xfffffffffffffffe)" (identifier "lVar13") (+ "+") (parenthesized_expression "(uVar7 & 0xfffffffffffffffe)" (( "(") (binary_expression "uVar7 & 0xfffffffffffffffe" (identifier "uVar7") (& "&") (number_literal "0xfffffffffffffffe")) () ")")))) (; ";")) (if_statement "if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;" (if "if") (parenthesized_expression "(uVar7 == (uVar7 & 0xfffffffffffffffe))" (( "(") (binary_expression "uVar7 == (uVar7 & 0xfffffffffffffffe)" (identifier "uVar7") (== "==") (parenthesized_expression "(uVar7 & 0xfffffffffffffffe)" (( "(") (binary_expression "uVar7 & 0xfffffffffffffffe" (identifier "uVar7") (& "&") (number_literal "0xfffffffffffffffe")) () ")"))) () ")")) (goto_statement "goto LAB_0011d42d;" (goto "goto") (statement_identifier "LAB_0011d42d") (; ";"))) (} "}")))) (expression_statement "plVar14[lVar13] = plVar9[lVar13];" (assignment_expression "plVar14[lVar13] = plVar9[lVar13]" (subscript_expression "plVar14[lVar13]" (identifier "plVar14") ([ "[") (identifier "lVar13") (] "]")) (= "=") (subscript_expression "plVar9[lVar13]" (identifier "plVar9") ([ "[") (identifier "lVar13") (] "]"))) (; ";")) (labeled_statement "LAB_0011d42d:\n      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;" (statement_identifier "LAB_0011d42d") (: ":") (if_statement "if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;" (if "if") (parenthesized_expression "((plVar14[uVar8] & plVar20[uVar8]) == 0)" (( "(") (binary_expression "(plVar14[uVar8] & plVar20[uVar8]) == 0" (parenthesized_expression "(plVar14[uVar8] & plVar20[uVar8])" (( "(") (binary_expression "plVar14[uVar8] & plVar20[uVar8]" (subscript_expression "plVar14[uVar8]" (identifier "plVar14") ([ "[") (identifier "uVar8") (] "]")) (& "&") (subscript_expression "plVar20[uVar8]" (identifier "plVar20") ([ "[") (identifier "uVar8") (] "]"))) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x0011d43b;" (goto "goto") (statement_identifier "code_r0x0011d43b") (; ";")))) (expression_statement "lVar18 = uVar8 + 1;" (assignment_expression "lVar18 = uVar8 + 1" (identifier "lVar18") (= "=") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (lVar18 < *local_50) {\n        puVar11 = *(ulong **)(local_50 + 2);\n      }\n      else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }" (if "if") (parenthesized_expression "(lVar18 < *local_50)" (( "(") (binary_expression "lVar18 < *local_50" (identifier "lVar18") (< "<") (pointer_expression "*local_50" (* "*") (identifier "local_50"))) () ")")) (compound_statement "{\n        puVar11 = *(ulong **)(local_50 + 2);\n      }" ({ "{") (expression_statement "puVar11 = *(ulong **)(local_50 + 2);" (assignment_expression "puVar11 = *(ulong **)(local_50 + 2)" (identifier "puVar11") (= "=") (pointer_expression "*(ulong **)(local_50 + 2)" (* "*") (cast_expression "(ulong **)(local_50 + 2)" (( "(") (type_descriptor "ulong **" (type_identifier "ulong") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_50 + 2)" (( "(") (binary_expression "local_50 + 2" (identifier "local_50") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }" (else "else") (compound_statement "{\n        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;\n        local_58 = plVar14;\n        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);\n        plVar14 = local_58;\n      }" ({ "{") (expression_statement "*(undefined8 *)(puVar17 + -8) = 0x11d8b7;" (assignment_expression "*(undefined8 *)(puVar17 + -8) = 0x11d8b7" (pointer_expression "*(undefined8 *)(puVar17 + -8)" (* "*") (cast_expression "(undefined8 *)(puVar17 + -8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0x11d8b7")) (; ";")) (expression_statement "local_58 = plVar14;" (assignment_expression "local_58 = plVar14" (identifier "local_58") (= "=") (identifier "plVar14")) (; ";")) (expression_statement "puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);" (assignment_expression "puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2)" (identifier "puVar11") (= "=") (cast_expression "(ulong *)__gmpz_realloc(local_50,uVar8 + 2)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "__gmpz_realloc(local_50,uVar8 + 2)" (identifier "__gmpz_realloc") (argument_list "(local_50,uVar8 + 2)" (( "(") (identifier "local_50") (, ",") (binary_expression "uVar8 + 2" (identifier "uVar8") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "plVar14 = local_58;" (assignment_expression "plVar14 = local_58" (identifier "plVar14") (= "=") (identifier "local_58")) (; ";")) (} "}")))) (expression_statement "*(undefined8 *)(puVar17 + -8) = 0x11d6ca;" (assignment_expression "*(undefined8 *)(puVar17 + -8) = 0x11d6ca" (pointer_expression "*(undefined8 *)(puVar17 + -8)" (* "*") (cast_expression "(undefined8 *)(puVar17 + -8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0x11d6ca")) (; ";")) (expression_statement "__gmpn_and_n(puVar11,plVar20,plVar14,lVar18);" (call_expression "__gmpn_and_n(puVar11,plVar20,plVar14,lVar18)" (identifier "__gmpn_and_n") (argument_list "(puVar11,plVar20,plVar14,lVar18)" (( "(") (identifier "puVar11") (, ",") (identifier "plVar20") (, ",") (identifier "plVar14") (, ",") (identifier "lVar18") () ")"))) (; ";")) (expression_statement "puVar2 = puVar11 + lVar18;" (assignment_expression "puVar2 = puVar11 + lVar18" (identifier "puVar2") (= "=") (binary_expression "puVar11 + lVar18" (identifier "puVar11") (+ "+") (identifier "lVar18"))) (; ";")) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      } while (0xfffffffffffffffe < uVar8);" (do "do") (compound_statement "{\n        uVar8 = *puVar11;\n        *puVar11 = *puVar11 + 1;\n        puVar11 = puVar11 + 1;\n      }" ({ "{") (expression_statement "uVar8 = *puVar11;" (assignment_expression "uVar8 = *puVar11" (identifier "uVar8") (= "=") (pointer_expression "*puVar11" (* "*") (identifier "puVar11"))) (; ";")) (expression_statement "*puVar11 = *puVar11 + 1;" (assignment_expression "*puVar11 = *puVar11 + 1" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (= "=") (binary_expression "*puVar11 + 1" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 1" (identifier "puVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0xfffffffffffffffe < uVar8)" (( "(") (binary_expression "0xfffffffffffffffe < uVar8" (number_literal "0xfffffffffffffffe") (< "<") (identifier "uVar8")) () ")")) (; ";")) (expression_statement "iVar6 = -((int)lVar18 + (int)*puVar2);" (assignment_expression "iVar6 = -((int)lVar18 + (int)*puVar2)" (identifier "iVar6") (= "=") (unary_expression "-((int)lVar18 + (int)*puVar2)" (- "-") (parenthesized_expression "((int)lVar18 + (int)*puVar2)" (( "(") (binary_expression "(int)lVar18 + (int)*puVar2" (cast_expression "(int)lVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar18")) (+ "+") (cast_expression "(int)*puVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")))) () ")")))) (; ";")) (goto_statement "goto LAB_0011d44c;" (goto "goto") (statement_identifier "LAB_0011d44c") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    plVar14 = plVar20;\n    plVar24 = plVar9;\n    plVar21 = plVar25;\n    plVar26 = plVar12;\n    if (-1 < (long)plVar12) {\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }\n  }" (else "else") (compound_statement "{\n    plVar14 = plVar20;\n    plVar24 = plVar9;\n    plVar21 = plVar25;\n    plVar26 = plVar12;\n    if (-1 < (long)plVar12) {\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }\n  }" ({ "{") (expression_statement "plVar14 = plVar20;" (assignment_expression "plVar14 = plVar20" (identifier "plVar14") (= "=") (identifier "plVar20")) (; ";")) (expression_statement "plVar24 = plVar9;" (assignment_expression "plVar24 = plVar9" (identifier "plVar24") (= "=") (identifier "plVar9")) (; ";")) (expression_statement "plVar21 = plVar25;" (assignment_expression "plVar21 = plVar25" (identifier "plVar21") (= "=") (identifier "plVar25")) (; ";")) (expression_statement "plVar26 = plVar12;" (assignment_expression "plVar26 = plVar12" (identifier "plVar26") (= "=") (identifier "plVar12")) (; ";")) (if_statement "if (-1 < (long)plVar12) {\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }" (if "if") (parenthesized_expression "(-1 < (long)plVar12)" (( "(") (binary_expression "-1 < (long)plVar12" (number_literal "-1") (< "<") (cast_expression "(long)plVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar12"))) () ")")) (compound_statement "{\n      if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }\n      local_50[1] = iVar6;\n      goto LAB_0011cf61;\n    }" ({ "{") (if_statement "if ((long)plVar20 < (long)plVar12) {\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }\n      else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }" (if "if") (parenthesized_expression "((long)plVar20 < (long)plVar12)" (( "(") (binary_expression "(long)plVar20 < (long)plVar12" (cast_expression "(long)plVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar20")) (< "<") (cast_expression "(long)plVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar12"))) () ")")) (compound_statement "{\n        if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }\n        iVar6 = iVar22;\n        if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }\n      }" ({ "{") (if_statement "if (*param_1 < iVar22) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }" (if "if") (parenthesized_expression "(*param_1 < iVar22)" (( "(") (binary_expression "*param_1 < iVar22" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (< "<") (identifier "iVar22")) () ")")) (compound_statement "{\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_70 = plVar20;\n          local_68 = param_2;\n          local_58 = plVar12;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);\n          plVar25 = *(long **)(local_68 + 8);\n          plVar12 = local_58;\n          plVar20 = local_70;\n          iVar22 = (int)local_60;\n        }" ({ "{") (expression_statement "local_60 = CONCAT44(local_60._4_4_,iVar22);" (assignment_expression "local_60 = CONCAT44(local_60._4_4_,iVar22)" (identifier "local_60") (= "=") (call_expression "CONCAT44(local_60._4_4_,iVar22)" (identifier "CONCAT44") (argument_list "(local_60._4_4_,iVar22)" (( "(") (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_")) (, ",") (identifier "iVar22") () ")")))) (; ";")) (expression_statement "local_70 = plVar20;" (assignment_expression "local_70 = plVar20" (identifier "local_70") (= "=") (identifier "plVar20")) (; ";")) (expression_statement "local_68 = param_2;" (assignment_expression "local_68 = param_2" (identifier "local_68") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_58 = plVar12;" (assignment_expression "local_58 = plVar12" (identifier "local_58") (= "=") (identifier "plVar12")) (; ";")) (expression_statement "plVar10 = (long *)__gmpz_realloc(param_1,plVar12);" (assignment_expression "plVar10 = (long *)__gmpz_realloc(param_1,plVar12)" (identifier "plVar10") (= "=") (cast_expression "(long *)__gmpz_realloc(param_1,plVar12)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "__gmpz_realloc(param_1,plVar12)" (identifier "__gmpz_realloc") (argument_list "(param_1,plVar12)" (( "(") (identifier "param_1") (, ",") (identifier "plVar12") () ")"))))) (; ";")) (expression_statement "plVar25 = *(long **)(local_68 + 8);" (assignment_expression "plVar25 = *(long **)(local_68 + 8)" (identifier "plVar25") (= "=") (pointer_expression "*(long **)(local_68 + 8)" (* "*") (cast_expression "(long **)(local_68 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_68 + 8)" (( "(") (binary_expression "local_68 + 8" (identifier "local_68") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "plVar12 = local_58;" (assignment_expression "plVar12 = local_58" (identifier "plVar12") (= "=") (identifier "local_58")) (; ";")) (expression_statement "plVar20 = local_70;" (assignment_expression "plVar20 = local_70" (identifier "plVar20") (= "=") (identifier "local_70")) (; ";")) (expression_statement "iVar22 = (int)local_60;" (assignment_expression "iVar22 = (int)local_60" (identifier "iVar22") (= "=") (cast_expression "(int)local_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_60"))) (; ";")) (} "}"))) (expression_statement "iVar6 = iVar22;" (assignment_expression "iVar6 = iVar22" (identifier "iVar6") (= "=") (identifier "iVar22")) (; ";")) (if_statement "if (plVar10 != plVar9) {\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }" (if "if") (parenthesized_expression "(plVar10 != plVar9)" (( "(") (binary_expression "plVar10 != plVar9" (identifier "plVar10") (!= "!=") (identifier "plVar9")) () ")")) (compound_statement "{\n          local_60 = CONCAT44(local_60._4_4_,iVar22);\n          local_58 = plVar20;\n          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }" ({ "{") (expression_statement "local_60 = CONCAT44(local_60._4_4_,iVar22);" (assignment_expression "local_60 = CONCAT44(local_60._4_4_,iVar22)" (identifier "local_60") (= "=") (call_expression "CONCAT44(local_60._4_4_,iVar22)" (identifier "CONCAT44") (argument_list "(local_60._4_4_,iVar22)" (( "(") (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_")) (, ",") (identifier "iVar22") () ")")))) (; ";")) (expression_statement "local_58 = plVar20;" (assignment_expression "local_58 = plVar20" (identifier "local_58") (= "=") (identifier "plVar20")) (; ";")) (expression_statement "__gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)\n          ;" (call_expression "__gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)" (identifier "__gmpn_copyi") (argument_list "(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)" (( "(") (binary_expression "plVar10 + (long)plVar20" (identifier "plVar10") (+ "+") (cast_expression "(long)plVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar20"))) (, ",") (binary_expression "plVar9 + (long)plVar20" (identifier "plVar9") (+ "+") (cast_expression "(long)plVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar20"))) (, ",") (binary_expression "(long)plVar12 - (long)plVar20" (cast_expression "(long)plVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar12")) (- "-") (cast_expression "(long)plVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar20"))) () ")"))) (; ";")) (expression_statement "plVar20 = local_58;" (assignment_expression "plVar20 = local_58" (identifier "plVar20") (= "=") (identifier "local_58")) (; ";")) (expression_statement "iVar6 = (int)local_60;" (assignment_expression "iVar6 = (int)local_60" (identifier "iVar6") (= "=") (cast_expression "(int)local_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_60"))) (; ";")) (} "}"))) (if_statement "if (plVar20 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }" (if "if") (parenthesized_expression "(plVar20 != (long *)0x0)" (( "(") (binary_expression "plVar20 != (long *)0x0" (identifier "plVar20") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);\n          iVar6 = (int)local_58;\n        }" ({ "{") (expression_statement "local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);" (assignment_expression "local_58 = (long *)CONCAT44(local_58._4_4_,iVar6)" (identifier "local_58") (= "=") (cast_expression "(long *)CONCAT44(local_58._4_4_,iVar6)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT44(local_58._4_4_,iVar6)" (identifier "CONCAT44") (argument_list "(local_58._4_4_,iVar6)" (( "(") (field_expression "local_58._4_4_" (identifier "local_58") (. ".") (field_identifier "_4_4_")) (, ",") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "__gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);" (call_expression "__gmpn_ior_n(plVar10,plVar25,plVar9,plVar20)" (identifier "__gmpn_ior_n") (argument_list "(plVar10,plVar25,plVar9,plVar20)" (( "(") (identifier "plVar10") (, ",") (identifier "plVar25") (, ",") (identifier "plVar9") (, ",") (identifier "plVar20") () ")"))) (; ";")) (expression_statement "iVar6 = (int)local_58;" (assignment_expression "iVar6 = (int)local_58" (identifier "iVar6") (= "=") (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }" (else "else") (compound_statement "{\n        if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }\n        if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }\n      }" ({ "{") (if_statement "if (*param_1 < iVar6) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }" (if "if") (parenthesized_expression "(*param_1 < iVar6)" (( "(") (binary_expression "*param_1 < iVar6" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (< "<") (identifier "iVar6")) () ")")) (compound_statement "{\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_70 = plVar12;\n          local_68 = param_3;\n          local_58 = plVar20;\n          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);\n          plVar9 = *(long **)(local_68 + 8);\n          plVar12 = local_70;\n          plVar20 = local_58;\n          iVar6 = (int)local_60;\n        }" ({ "{") (expression_statement "local_60 = CONCAT44(local_60._4_4_,iVar6);" (assignment_expression "local_60 = CONCAT44(local_60._4_4_,iVar6)" (identifier "local_60") (= "=") (call_expression "CONCAT44(local_60._4_4_,iVar6)" (identifier "CONCAT44") (argument_list "(local_60._4_4_,iVar6)" (( "(") (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_")) (, ",") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "local_70 = plVar12;" (assignment_expression "local_70 = plVar12" (identifier "local_70") (= "=") (identifier "plVar12")) (; ";")) (expression_statement "local_68 = param_3;" (assignment_expression "local_68 = param_3" (identifier "local_68") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_58 = plVar20;" (assignment_expression "local_58 = plVar20" (identifier "local_58") (= "=") (identifier "plVar20")) (; ";")) (expression_statement "plVar10 = (long *)__gmpz_realloc(param_1,plVar20);" (assignment_expression "plVar10 = (long *)__gmpz_realloc(param_1,plVar20)" (identifier "plVar10") (= "=") (cast_expression "(long *)__gmpz_realloc(param_1,plVar20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "__gmpz_realloc(param_1,plVar20)" (identifier "__gmpz_realloc") (argument_list "(param_1,plVar20)" (( "(") (identifier "param_1") (, ",") (identifier "plVar20") () ")"))))) (; ";")) (expression_statement "plVar9 = *(long **)(local_68 + 8);" (assignment_expression "plVar9 = *(long **)(local_68 + 8)" (identifier "plVar9") (= "=") (pointer_expression "*(long **)(local_68 + 8)" (* "*") (cast_expression "(long **)(local_68 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_68 + 8)" (( "(") (binary_expression "local_68 + 8" (identifier "local_68") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "plVar12 = local_70;" (assignment_expression "plVar12 = local_70" (identifier "plVar12") (= "=") (identifier "local_70")) (; ";")) (expression_statement "plVar20 = local_58;" (assignment_expression "plVar20 = local_58" (identifier "plVar20") (= "=") (identifier "local_58")) (; ";")) (expression_statement "iVar6 = (int)local_60;" (assignment_expression "iVar6 = (int)local_60" (identifier "iVar6") (= "=") (cast_expression "(int)local_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_60"))) (; ";")) (} "}"))) (if_statement "if (plVar10 != plVar25) {\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }" (if "if") (parenthesized_expression "(plVar10 != plVar25)" (( "(") (binary_expression "plVar10 != plVar25" (identifier "plVar10") (!= "!=") (identifier "plVar25")) () ")")) (compound_statement "{\n          local_60 = CONCAT44(local_60._4_4_,iVar6);\n          local_58 = plVar12;\n          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );\n          plVar12 = local_58;\n          iVar6 = (int)local_60;\n        }" ({ "{") (expression_statement "local_60 = CONCAT44(local_60._4_4_,iVar6);" (assignment_expression "local_60 = CONCAT44(local_60._4_4_,iVar6)" (identifier "local_60") (= "=") (call_expression "CONCAT44(local_60._4_4_,iVar6)" (identifier "CONCAT44") (argument_list "(local_60._4_4_,iVar6)" (( "(") (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_")) (, ",") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "local_58 = plVar12;" (assignment_expression "local_58 = plVar12" (identifier "local_58") (= "=") (identifier "plVar12")) (; ";")) (expression_statement "__gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      );" (call_expression "__gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      )" (identifier "__gmpn_copyi") (argument_list "(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12\n                      )" (( "(") (binary_expression "plVar10 + (long)plVar12" (identifier "plVar10") (+ "+") (cast_expression "(long)plVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar12"))) (, ",") (binary_expression "plVar25 + (long)plVar12" (identifier "plVar25") (+ "+") (cast_expression "(long)plVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar12"))) (, ",") (binary_expression "(long)plVar20 - (long)plVar12" (cast_expression "(long)plVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar20")) (- "-") (cast_expression "(long)plVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar12"))) () ")"))) (; ";")) (expression_statement "plVar12 = local_58;" (assignment_expression "plVar12 = local_58" (identifier "plVar12") (= "=") (identifier "local_58")) (; ";")) (expression_statement "iVar6 = (int)local_60;" (assignment_expression "iVar6 = (int)local_60" (identifier "iVar6") (= "=") (cast_expression "(int)local_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_60"))) (; ";")) (} "}"))) (if_statement "if (plVar12 != (long *)0x0) {\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }" (if "if") (parenthesized_expression "(plVar12 != (long *)0x0)" (( "(") (binary_expression "plVar12 != (long *)0x0" (identifier "plVar12") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);\n          __gmpn_ior_n(plVar10,plVar25,plVar9);\n          iVar6 = (int)local_58;\n        }" ({ "{") (expression_statement "local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);" (assignment_expression "local_58 = (long *)CONCAT44(local_58._4_4_,iVar6)" (identifier "local_58") (= "=") (cast_expression "(long *)CONCAT44(local_58._4_4_,iVar6)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT44(local_58._4_4_,iVar6)" (identifier "CONCAT44") (argument_list "(local_58._4_4_,iVar6)" (( "(") (field_expression "local_58._4_4_" (identifier "local_58") (. ".") (field_identifier "_4_4_")) (, ",") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "__gmpn_ior_n(plVar10,plVar25,plVar9);" (call_expression "__gmpn_ior_n(plVar10,plVar25,plVar9)" (identifier "__gmpn_ior_n") (argument_list "(plVar10,plVar25,plVar9)" (( "(") (identifier "plVar10") (, ",") (identifier "plVar25") (, ",") (identifier "plVar9") () ")"))) (; ";")) (expression_statement "iVar6 = (int)local_58;" (assignment_expression "iVar6 = (int)local_58" (identifier "iVar6") (= "=") (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_50[1] = iVar6;" (assignment_expression "local_50[1] = iVar6" (subscript_expression "local_50[1]" (identifier "local_50") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (goto_statement "goto LAB_0011cf61;" (goto "goto") (statement_identifier "LAB_0011cf61") (; ";")) (} "}"))) (} "}")))) (expression_statement "plVar25 = (long *)((long)plVar26 * -8);" (assignment_expression "plVar25 = (long *)((long)plVar26 * -8)" (identifier "plVar25") (= "=") (cast_expression "(long *)((long)plVar26 * -8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar26 * -8)" (( "(") (binary_expression "(long)plVar26 * -8" (cast_expression "(long)plVar26" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar26")) (* "*") (number_literal "-8")) () ")")))) (; ";")) (if_statement "if (plVar25 < (long *)0x7f01) {\n    lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0);\n    puVar15 = auStack_78 + lVar18;\n    plVar9 = (long *)((long)&local_70 + lVar18);\n    uVar8 = -(long)plVar26;\n  }\n  else {\n    local_68 = param_2;\n    local_60 = -(long)plVar26;\n    local_58 = plVar25;\n    plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);\n    plVar25 = local_58;\n    uVar8 = local_60;\n    param_2 = local_68;\n  }" (if "if") (parenthesized_expression "(plVar25 < (long *)0x7f01)" (( "(") (binary_expression "plVar25 < (long *)0x7f01" (identifier "plVar25") (< "<") (cast_expression "(long *)0x7f01" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7f01"))) () ")")) (compound_statement "{\n    lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0);\n    puVar15 = auStack_78 + lVar18;\n    plVar9 = (long *)((long)&local_70 + lVar18);\n    uVar8 = -(long)plVar26;\n  }" ({ "{") (expression_statement "lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0);" (assignment_expression "lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0)" (identifier "lVar18") (= "=") (unary_expression "-((long)plVar25 + 0x17U & 0xfffffffffffffff0)" (- "-") (parenthesized_expression "((long)plVar25 + 0x17U & 0xfffffffffffffff0)" (( "(") (binary_expression "(long)plVar25 + 0x17U & 0xfffffffffffffff0" (binary_expression "(long)plVar25 + 0x17U" (cast_expression "(long)plVar25" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar25")) (+ "+") (number_literal "0x17U")) (& "&") (number_literal "0xfffffffffffffff0")) () ")")))) (; ";")) (expression_statement "puVar15 = auStack_78 + lVar18;" (assignment_expression "puVar15 = auStack_78 + lVar18" (identifier "puVar15") (= "=") (binary_expression "auStack_78 + lVar18" (identifier "auStack_78") (+ "+") (identifier "lVar18"))) (; ";")) (expression_statement "plVar9 = (long *)((long)&local_70 + lVar18);" (assignment_expression "plVar9 = (long *)((long)&local_70 + lVar18)" (identifier "plVar9") (= "=") (cast_expression "(long *)((long)&local_70 + lVar18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_70 + lVar18)" (( "(") (binary_expression "(long)&local_70 + lVar18" (cast_expression "(long)&local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_70" (& "&") (identifier "local_70"))) (+ "+") (identifier "lVar18")) () ")")))) (; ";")) (expression_statement "uVar8 = -(long)plVar26;" (assignment_expression "uVar8 = -(long)plVar26" (identifier "uVar8") (= "=") (unary_expression "-(long)plVar26" (- "-") (cast_expression "(long)plVar26" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar26")))) (; ";")) (} "}")) (else_clause "else {\n    local_68 = param_2;\n    local_60 = -(long)plVar26;\n    local_58 = plVar25;\n    plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);\n    plVar25 = local_58;\n    uVar8 = local_60;\n    param_2 = local_68;\n  }" (else "else") (compound_statement "{\n    local_68 = param_2;\n    local_60 = -(long)plVar26;\n    local_58 = plVar25;\n    plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);\n    plVar25 = local_58;\n    uVar8 = local_60;\n    param_2 = local_68;\n  }" ({ "{") (expression_statement "local_68 = param_2;" (assignment_expression "local_68 = param_2" (identifier "local_68") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_60 = -(long)plVar26;" (assignment_expression "local_60 = -(long)plVar26" (identifier "local_60") (= "=") (unary_expression "-(long)plVar26" (- "-") (cast_expression "(long)plVar26" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar26")))) (; ";")) (expression_statement "local_58 = plVar25;" (assignment_expression "local_58 = plVar25" (identifier "local_58") (= "=") (identifier "plVar25")) (; ";")) (expression_statement "plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);" (assignment_expression "plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25)" (identifier "plVar9") (= "=") (cast_expression "(long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "__gmp_tmp_reentrant_alloc(&local_48,plVar25)" (identifier "__gmp_tmp_reentrant_alloc") (argument_list "(&local_48,plVar25)" (( "(") (pointer_expression "&local_48" (& "&") (identifier "local_48")) (, ",") (identifier "plVar25") () ")"))))) (; ";")) (expression_statement "plVar25 = local_58;" (assignment_expression "plVar25 = local_58" (identifier "plVar25") (= "=") (identifier "local_58")) (; ";")) (expression_statement "uVar8 = local_60;" (assignment_expression "uVar8 = local_60" (identifier "uVar8") (= "=") (identifier "local_60")) (; ";")) (expression_statement "param_2 = local_68;" (assignment_expression "param_2 = local_68" (identifier "param_2") (= "=") (identifier "local_68")) (; ";")) (} "}")))) (expression_statement "piVar5 = local_50;" (assignment_expression "piVar5 = local_50" (identifier "piVar5") (= "=") (identifier "local_50")) (; ";")) (expression_statement "lVar18 = *plVar24;" (assignment_expression "lVar18 = *plVar24" (identifier "lVar18") (= "=") (pointer_expression "*plVar24" (* "*") (identifier "plVar24"))) (; ";")) (expression_statement "*plVar9 = lVar18 + -1;" (assignment_expression "*plVar9 = lVar18 + -1" (pointer_expression "*plVar9" (* "*") (identifier "plVar9")) (= "=") (binary_expression "lVar18 + -1" (identifier "lVar18") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (lVar18 == 0) {\n    if (plVar26 != (long *)0xffffffffffffffff) {\n      lVar18 = plVar24[1];\n      plVar9[1] = lVar18 + -1;\n      if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }\n    }\n  }\n  else if ((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)) {\n    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }\n  }" (if "if") (parenthesized_expression "(lVar18 == 0)" (( "(") (binary_expression "lVar18 == 0" (identifier "lVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (plVar26 != (long *)0xffffffffffffffff) {\n      lVar18 = plVar24[1];\n      plVar9[1] = lVar18 + -1;\n      if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }\n    }\n  }" ({ "{") (if_statement "if (plVar26 != (long *)0xffffffffffffffff) {\n      lVar18 = plVar24[1];\n      plVar9[1] = lVar18 + -1;\n      if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }\n    }" (if "if") (parenthesized_expression "(plVar26 != (long *)0xffffffffffffffff)" (( "(") (binary_expression "plVar26 != (long *)0xffffffffffffffff" (identifier "plVar26") (!= "!=") (cast_expression "(long *)0xffffffffffffffff" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffffffffffff"))) () ")")) (compound_statement "{\n      lVar18 = plVar24[1];\n      plVar9[1] = lVar18 + -1;\n      if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }\n    }" ({ "{") (expression_statement "lVar18 = plVar24[1];" (assignment_expression "lVar18 = plVar24[1]" (identifier "lVar18") (= "=") (subscript_expression "plVar24[1]" (identifier "plVar24") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "plVar9[1] = lVar18 + -1;" (assignment_expression "plVar9[1] = lVar18 + -1" (subscript_expression "plVar9[1]" (identifier "plVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "lVar18 + -1" (identifier "lVar18") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (lVar18 == 0) {\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }" (if "if") (parenthesized_expression "(lVar18 == 0)" (( "(") (binary_expression "lVar18 == 0" (identifier "lVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (-3 < (long)plVar26) goto LAB_0011ced0;\n        lVar18 = plVar24[2];\n        uVar7 = 3;\n        plVar9[2] = lVar18 + -1;\n        while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }\n      }" ({ "{") (if_statement "if (-3 < (long)plVar26) goto LAB_0011ced0;" (if "if") (parenthesized_expression "(-3 < (long)plVar26)" (( "(") (binary_expression "-3 < (long)plVar26" (number_literal "-3") (< "<") (cast_expression "(long)plVar26" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar26"))) () ")")) (goto_statement "goto LAB_0011ced0;" (goto "goto") (statement_identifier "LAB_0011ced0") (; ";"))) (expression_statement "lVar18 = plVar24[2];" (assignment_expression "lVar18 = plVar24[2]" (identifier "lVar18") (= "=") (subscript_expression "plVar24[2]" (identifier "plVar24") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar7 = 3;" (assignment_expression "uVar7 = 3" (identifier "uVar7") (= "=") (number_literal "3")) (; ";")) (expression_statement "plVar9[2] = lVar18 + -1;" (assignment_expression "plVar9[2] = lVar18 + -1" (subscript_expression "plVar9[2]" (identifier "plVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "lVar18 + -1" (identifier "lVar18") (+ "+") (number_literal "-1"))) (; ";")) (while_statement "while (lVar18 == 0) {\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }" (while "while") (parenthesized_expression "(lVar18 == 0)" (( "(") (binary_expression "lVar18 == 0" (identifier "lVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (uVar8 == uVar7) goto LAB_0011ced0;\n          lVar18 = plVar24[uVar7];\n          plVar9[uVar7] = lVar18 + -1;\n          uVar7 = uVar7 + 1;\n        }" ({ "{") (if_statement "if (uVar8 == uVar7) goto LAB_0011ced0;" (if "if") (parenthesized_expression "(uVar8 == uVar7)" (( "(") (binary_expression "uVar8 == uVar7" (identifier "uVar8") (== "==") (identifier "uVar7")) () ")")) (goto_statement "goto LAB_0011ced0;" (goto "goto") (statement_identifier "LAB_0011ced0") (; ";"))) (expression_statement "lVar18 = plVar24[uVar7];" (assignment_expression "lVar18 = plVar24[uVar7]" (identifier "lVar18") (= "=") (subscript_expression "plVar24[uVar7]" (identifier "plVar24") ([ "[") (identifier "uVar7") (] "]"))) (; ";")) (expression_statement "plVar9[uVar7] = lVar18 + -1;" (assignment_expression "plVar9[uVar7] = lVar18 + -1" (subscript_expression "plVar9[uVar7]" (identifier "plVar9") ([ "[") (identifier "uVar7") (] "]")) (= "=") (binary_expression "lVar18 + -1" (identifier "lVar18") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" (identifier "uVar7") (= "=") (binary_expression "uVar7 + 1" (identifier "uVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        uVar7 = 2;\n      }" (else "else") (compound_statement "{\n        uVar7 = 2;\n      }" ({ "{") (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (} "}")))) (if_statement "if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }" (if "if") (parenthesized_expression "((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8))" (( "(") (binary_expression "(plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)" (parenthesized_expression "(plVar24 != plVar9)" (( "(") (binary_expression "plVar24 != plVar9" (identifier "plVar24") (!= "!=") (identifier "plVar9")) () ")")) (&& "&&") (parenthesized_expression "((long)uVar7 < (long)uVar8)" (( "(") (binary_expression "(long)uVar7 < (long)uVar8" (cast_expression "(long)uVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar7")) (< "<") (cast_expression "(long)uVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar8"))) () ")"))) () ")")) (compound_statement "{\n        local_58 = plVar24 + uVar7;\n        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);\n        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }\n      }" ({ "{") (expression_statement "local_58 = plVar24 + uVar7;" (assignment_expression "local_58 = plVar24 + uVar7" (identifier "local_58") (= "=") (binary_expression "plVar24 + uVar7" (identifier "plVar24") (+ "+") (identifier "uVar7"))) (; ";")) (expression_statement "local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);" (assignment_expression "local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58)" (identifier "local_60") (= "=") (call_expression "CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58)" (identifier "CONCAT71") (argument_list "(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58)" (( "(") (field_expression "local_60._1_7_" (identifier "local_60") (. ".") (field_identifier "_1_7_")) (, ",") (binary_expression "plVar9 + uVar7 + 2 <= local_58" (binary_expression "plVar9 + uVar7 + 2" (binary_expression "plVar9 + uVar7" (identifier "plVar9") (+ "+") (identifier "uVar7")) (+ "+") (number_literal "2")) (<= "<=") (identifier "local_58")) () ")")))) (; ";")) (if_statement "if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)) {\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }\n        else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }" (if "if") (parenthesized_expression "((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7))" (( "(") (binary_expression "(plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&\n           (3 < ~(ulong)plVar26 - uVar7)" (parenthesized_expression "(plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7)" (( "(") (binary_expression "plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7" (binary_expression "plVar9 + uVar7 + 2 <= local_58" (binary_expression "plVar9 + uVar7 + 2" (binary_expression "plVar9 + uVar7" (identifier "plVar9") (+ "+") (identifier "uVar7")) (+ "+") (number_literal "2")) (<= "<=") (identifier "local_58")) (|| "||") (binary_expression "plVar24 + uVar7 + 2 <= plVar9 + uVar7" (binary_expression "plVar24 + uVar7 + 2" (binary_expression "plVar24 + uVar7" (identifier "plVar24") (+ "+") (identifier "uVar7")) (+ "+") (number_literal "2")) (<= "<=") (binary_expression "plVar9 + uVar7" (identifier "plVar9") (+ "+") (identifier "uVar7")))) () ")")) (&& "&&") (parenthesized_expression "(3 < ~(ulong)plVar26 - uVar7)" (( "(") (binary_expression "3 < ~(ulong)plVar26 - uVar7" (number_literal "3") (< "<") (binary_expression "~(ulong)plVar26 - uVar7" (unary_expression "~(ulong)plVar26" (~ "~") (cast_expression "(ulong)plVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "plVar26"))) (- "-") (identifier "uVar7"))) () ")"))) () ")")) (compound_statement "{\n          uVar27 = uVar8 - uVar7;\n          lVar18 = 0;\n          do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);\n          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);\n          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;\n        }" ({ "{") (expression_statement "uVar27 = uVar8 - uVar7;" (assignment_expression "uVar27 = uVar8 - uVar7" (identifier "uVar27") (= "=") (binary_expression "uVar8 - uVar7" (identifier "uVar8") (- "-") (identifier "uVar7"))) (; ";")) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" (identifier "lVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          } while ((uVar27 >> 1) * 0x10 != lVar18);" (do "do") (compound_statement "{\n            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];\n            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);\n            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);\n            puVar1[1] = uVar4;\n            lVar18 = lVar18 + 0x10;\n          }" ({ "{") (expression_statement "uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];" (assignment_expression "uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1]" (identifier "uVar4") (= "=") (subscript_expression "((undefined8 *)((long)local_58 + lVar18))[1]" (parenthesized_expression "((undefined8 *)((long)local_58 + lVar18))" (( "(") (cast_expression "(undefined8 *)((long)local_58 + lVar18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_58 + lVar18)" (( "(") (binary_expression "(long)local_58 + lVar18" (cast_expression "(long)local_58" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_58")) (+ "+") (identifier "lVar18")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);" (assignment_expression "puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18)" (identifier "puVar1") (= "=") (cast_expression "(undefined8 *)((long)(plVar9 + uVar7) + lVar18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)(plVar9 + uVar7) + lVar18)" (( "(") (binary_expression "(long)(plVar9 + uVar7) + lVar18" (cast_expression "(long)(plVar9 + uVar7)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(plVar9 + uVar7)" (( "(") (binary_expression "plVar9 + uVar7" (identifier "plVar9") (+ "+") (identifier "uVar7")) () ")"))) (+ "+") (identifier "lVar18")) () ")")))) (; ";")) (expression_statement "*puVar1 = *(undefined8 *)((long)local_58 + lVar18);" (assignment_expression "*puVar1 = *(undefined8 *)((long)local_58 + lVar18)" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (pointer_expression "*(undefined8 *)((long)local_58 + lVar18)" (* "*") (cast_expression "(undefined8 *)((long)local_58 + lVar18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_58 + lVar18)" (( "(") (binary_expression "(long)local_58 + lVar18" (cast_expression "(long)local_58" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_58")) (+ "+") (identifier "lVar18")) () ")"))))) (; ";")) (expression_statement "puVar1[1] = uVar4;" (assignment_expression "puVar1[1] = uVar4" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "lVar18 = lVar18 + 0x10;" (assignment_expression "lVar18 = lVar18 + 0x10" (identifier "lVar18") (= "=") (binary_expression "lVar18 + 0x10" (identifier "lVar18") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uVar27 >> 1) * 0x10 != lVar18)" (( "(") (binary_expression "(uVar27 >> 1) * 0x10 != lVar18" (binary_expression "(uVar27 >> 1) * 0x10" (parenthesized_expression "(uVar27 >> 1)" (( "(") (binary_expression "uVar27 >> 1" (identifier "uVar27") (>> ">>") (number_literal "1")) () ")")) (* "*") (number_literal "0x10")) (!= "!=") (identifier "lVar18")) () ")")) (; ";")) (expression_statement "lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);" (assignment_expression "lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe)" (identifier "lVar18") (= "=") (binary_expression "uVar7 + (uVar27 & 0xfffffffffffffffe)" (identifier "uVar7") (+ "+") (parenthesized_expression "(uVar27 & 0xfffffffffffffffe)" (( "(") (binary_expression "uVar27 & 0xfffffffffffffffe" (identifier "uVar27") (& "&") (number_literal "0xfffffffffffffffe")) () ")")))) (; ";")) (if_statement "if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;" (if "if") (parenthesized_expression "((uVar27 & 0xfffffffffffffffe) != uVar27)" (( "(") (binary_expression "(uVar27 & 0xfffffffffffffffe) != uVar27" (parenthesized_expression "(uVar27 & 0xfffffffffffffffe)" (( "(") (binary_expression "uVar27 & 0xfffffffffffffffe" (identifier "uVar27") (& "&") (number_literal "0xfffffffffffffffe")) () ")")) (!= "!=") (identifier "uVar27")) () ")")) (goto_statement "goto LAB_0011d020;" (goto "goto") (statement_identifier "LAB_0011d020") (; ";"))) (} "}")) (else_clause "else {\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }" (else "else") (compound_statement "{\n          do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);\n        }" ({ "{") (do_statement "do {\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          } while (uVar8 != uVar7);" (do "do") (compound_statement "{\n            plVar9[uVar7] = plVar24[uVar7];\n            uVar7 = uVar7 + 1;\n          }" ({ "{") (expression_statement "plVar9[uVar7] = plVar24[uVar7];" (assignment_expression "plVar9[uVar7] = plVar24[uVar7]" (subscript_expression "plVar9[uVar7]" (identifier "plVar9") ([ "[") (identifier "uVar7") (] "]")) (= "=") (subscript_expression "plVar24[uVar7]" (identifier "plVar24") ([ "[") (identifier "uVar7") (] "]"))) (; ";")) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" (identifier "uVar7") (= "=") (binary_expression "uVar7 + 1" (identifier "uVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar8 != uVar7)" (( "(") (binary_expression "uVar8 != uVar7" (identifier "uVar8") (!= "!=") (identifier "uVar7")) () ")")) (; ";")) (} "}")))) (} "}"))) (} "}"))) (} "}")) (else_clause "else if ((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)) {\n    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }\n  }" (else "else") (if_statement "if ((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)) {\n    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }\n  }" (if "if") (parenthesized_expression "((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff))" (( "(") (binary_expression "(plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)" (parenthesized_expression "(plVar24 != plVar9)" (( "(") (binary_expression "plVar24 != plVar9" (identifier "plVar24") (!= "!=") (identifier "plVar9")) () ")")) (&& "&&") (parenthesized_expression "(plVar26 != (long *)0xffffffffffffffff)" (( "(") (binary_expression "plVar26 != (long *)0xffffffffffffffff" (identifier "plVar26") (!= "!=") (cast_expression "(long *)0xffffffffffffffff" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffffffffffff"))) () ")"))) () ")")) (compound_statement "{\n    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }\n  }" ({ "{") (if_statement "if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }\n    else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }" (if "if") (parenthesized_expression "((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26))" (( "(") (binary_expression "(plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)" (parenthesized_expression "(plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3)" (( "(") (binary_expression "plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3" (binary_expression "plVar24 + 1 < plVar9 + 3" (binary_expression "plVar24 + 1" (identifier "plVar24") (+ "+") (number_literal "1")) (< "<") (binary_expression "plVar9 + 3" (identifier "plVar9") (+ "+") (number_literal "3"))) (&& "&&") (binary_expression "plVar9 + 1 < plVar24 + 3" (binary_expression "plVar9 + 1" (identifier "plVar9") (+ "+") (number_literal "1")) (< "<") (binary_expression "plVar24 + 3" (identifier "plVar24") (+ "+") (number_literal "3")))) () ")")) (|| "||") (parenthesized_expression "(-6 < (long)plVar26)" (( "(") (binary_expression "-6 < (long)plVar26" (number_literal "-6") (< "<") (cast_expression "(long)plVar26" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar26"))) () ")"))) () ")")) (compound_statement "{\n      lVar18 = 1;\n      do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);\n    }" ({ "{") (expression_statement "lVar18 = 1;" (assignment_expression "lVar18 = 1" (identifier "lVar18") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      } while (lVar18 < (long)uVar8);" (do "do") (compound_statement "{\n        plVar9[lVar18] = plVar24[lVar18];\n        lVar18 = lVar18 + 1;\n      }" ({ "{") (expression_statement "plVar9[lVar18] = plVar24[lVar18];" (assignment_expression "plVar9[lVar18] = plVar24[lVar18]" (subscript_expression "plVar9[lVar18]" (identifier "plVar9") ([ "[") (identifier "lVar18") (] "]")) (= "=") (subscript_expression "plVar24[lVar18]" (identifier "plVar24") ([ "[") (identifier "lVar18") (] "]"))) (; ";")) (expression_statement "lVar18 = lVar18 + 1;" (assignment_expression "lVar18 = lVar18 + 1" (identifier "lVar18") (= "=") (binary_expression "lVar18 + 1" (identifier "lVar18") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar18 < (long)uVar8)" (( "(") (binary_expression "lVar18 < (long)uVar8" (identifier "lVar18") (< "<") (cast_expression "(long)uVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar8"))) () ")")) (; ";")) (} "}")) (else_clause "else {\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }" (else "else") (compound_statement "{\n      uVar7 = ~(ulong)plVar26;\n      if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }\n      lVar18 = 8;\n      do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);\n      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;\n      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }\n    }" ({ "{") (expression_statement "uVar7 = ~(ulong)plVar26;" (assignment_expression "uVar7 = ~(ulong)plVar26" (identifier "uVar7") (= "=") (unary_expression "~(ulong)plVar26" (~ "~") (cast_expression "(ulong)plVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "plVar26")))) (; ";")) (if_statement "if (-2 < (long)plVar26) {\n        uVar7 = 1;\n      }" (if "if") (parenthesized_expression "(-2 < (long)plVar26)" (( "(") (binary_expression "-2 < (long)plVar26" (number_literal "-2") (< "<") (cast_expression "(long)plVar26" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar26"))) () ")")) (compound_statement "{\n        uVar7 = 1;\n      }" ({ "{") (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "lVar18 = 8;" (assignment_expression "lVar18 = 8" (identifier "lVar18") (= "=") (number_literal "8")) (; ";")) (do_statement "do {\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);" (do "do") (compound_statement "{\n        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];\n        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);\n        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;\n        lVar18 = lVar18 + 0x10;\n      }" ({ "{") (expression_statement "uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];" (assignment_expression "uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1]" (identifier "uVar4") (= "=") (subscript_expression "((undefined8 *)((long)plVar24 + lVar18))[1]" (parenthesized_expression "((undefined8 *)((long)plVar24 + lVar18))" (( "(") (cast_expression "(undefined8 *)((long)plVar24 + lVar18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar24 + lVar18)" (( "(") (binary_expression "(long)plVar24 + lVar18" (cast_expression "(long)plVar24" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar24")) (+ "+") (identifier "lVar18")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);" (assignment_expression "*(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18)" (pointer_expression "*(undefined8 *)((long)plVar9 + lVar18)" (* "*") (cast_expression "(undefined8 *)((long)plVar9 + lVar18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar9 + lVar18)" (( "(") (binary_expression "(long)plVar9 + lVar18" (cast_expression "(long)plVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar9")) (+ "+") (identifier "lVar18")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)((long)plVar24 + lVar18)" (* "*") (cast_expression "(undefined8 *)((long)plVar24 + lVar18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar24 + lVar18)" (( "(") (binary_expression "(long)plVar24 + lVar18" (cast_expression "(long)plVar24" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar24")) (+ "+") (identifier "lVar18")) () ")"))))) (; ";")) (expression_statement "((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;" (assignment_expression "((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4" (subscript_expression "((undefined8 *)((long)plVar9 + lVar18))[1]" (parenthesized_expression "((undefined8 *)((long)plVar9 + lVar18))" (( "(") (cast_expression "(undefined8 *)((long)plVar9 + lVar18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar9 + lVar18)" (( "(") (binary_expression "(long)plVar9 + lVar18" (cast_expression "(long)plVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar9")) (+ "+") (identifier "lVar18")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "lVar18 = lVar18 + 0x10;" (assignment_expression "lVar18 = lVar18 + 0x10" (identifier "lVar18") (= "=") (binary_expression "lVar18 + 0x10" (identifier "lVar18") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar18 != (uVar7 >> 1) * 0x10 + 8)" (( "(") (binary_expression "lVar18 != (uVar7 >> 1) * 0x10 + 8" (identifier "lVar18") (!= "!=") (binary_expression "(uVar7 >> 1) * 0x10 + 8" (binary_expression "(uVar7 >> 1) * 0x10" (parenthesized_expression "(uVar7 >> 1)" (( "(") (binary_expression "uVar7 >> 1" (identifier "uVar7") (>> ">>") (number_literal "1")) () ")")) (* "*") (number_literal "0x10")) (+ "+") (number_literal "8"))) () ")")) (; ";")) (expression_statement "lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;" (assignment_expression "lVar18 = (uVar7 & 0xfffffffffffffffe) + 1" (identifier "lVar18") (= "=") (binary_expression "(uVar7 & 0xfffffffffffffffe) + 1" (parenthesized_expression "(uVar7 & 0xfffffffffffffffe)" (( "(") (binary_expression "uVar7 & 0xfffffffffffffffe" (identifier "uVar7") (& "&") (number_literal "0xfffffffffffffffe")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((uVar7 & 0xfffffffffffffffe) != uVar7) {\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }" (if "if") (parenthesized_expression "((uVar7 & 0xfffffffffffffffe) != uVar7)" (( "(") (binary_expression "(uVar7 & 0xfffffffffffffffe) != uVar7" (parenthesized_expression "(uVar7 & 0xfffffffffffffffe)" (( "(") (binary_expression "uVar7 & 0xfffffffffffffffe" (identifier "uVar7") (& "&") (number_literal "0xfffffffffffffffe")) () ")")) (!= "!=") (identifier "uVar7")) () ")")) (compound_statement "{\nLAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];\n      }" ({ "{") (labeled_statement "LAB_0011d020:\n        plVar9[lVar18] = plVar24[lVar18];" (statement_identifier "LAB_0011d020") (: ":") (expression_statement "plVar9[lVar18] = plVar24[lVar18];" (assignment_expression "plVar9[lVar18] = plVar24[lVar18]" (subscript_expression "plVar9[lVar18]" (identifier "plVar9") ([ "[") (identifier "lVar18") (] "]")) (= "=") (subscript_expression "plVar24[lVar18]" (identifier "plVar24") ([ "[") (identifier "lVar18") (] "]"))) (; ";"))) (} "}"))) (} "}")))) (} "}"))))) (labeled_statement "LAB_0011ced0:\n  plVar25 = (long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0));" (statement_identifier "LAB_0011ced0") (: ":") (expression_statement "plVar25 = (long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0));" (assignment_expression "plVar25 = (long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0))" (identifier "plVar25") (= "=") (cast_expression "(long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0))" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0))" (( "(") (binary_expression "uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0)" (identifier "uVar8") (- "-") (parenthesized_expression "(*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0)" (( "(") (binary_expression "*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0" (pointer_expression "*(long *)((long)(plVar9 + -1) + (long)plVar25)" (* "*") (cast_expression "(long *)((long)(plVar9 + -1) + (long)plVar25)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)(plVar9 + -1) + (long)plVar25)" (( "(") (binary_expression "(long)(plVar9 + -1) + (long)plVar25" (cast_expression "(long)(plVar9 + -1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(plVar9 + -1)" (( "(") (binary_expression "plVar9 + -1" (identifier "plVar9") (+ "+") (number_literal "-1")) () ")"))) (+ "+") (cast_expression "(long)plVar25" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar25"))) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")))) (; ";"))) (if_statement "if ((long)*local_50 < (long)uVar8) {\n    local_60 = param_2;\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d187;\n    __gmpz_realloc(piVar5,uVar8);\n    plVar10 = *(long **)(piVar5 + 2);\n    plVar21 = *(long **)(local_60 + 8);\n    plVar9 = local_58;\n  }" (if "if") (parenthesized_expression "((long)*local_50 < (long)uVar8)" (( "(") (binary_expression "(long)*local_50 < (long)uVar8" (cast_expression "(long)*local_50" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "*local_50" (* "*") (identifier "local_50"))) (< "<") (cast_expression "(long)uVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar8"))) () ")")) (compound_statement "{\n    local_60 = param_2;\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d187;\n    __gmpz_realloc(piVar5,uVar8);\n    plVar10 = *(long **)(piVar5 + 2);\n    plVar21 = *(long **)(local_60 + 8);\n    plVar9 = local_58;\n  }" ({ "{") (expression_statement "local_60 = param_2;" (assignment_expression "local_60 = param_2" (identifier "local_60") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_58 = plVar9;" (assignment_expression "local_58 = plVar9" (identifier "local_58") (= "=") (identifier "plVar9")) (; ";")) (expression_statement "*(undefined8 *)(puVar15 + -8) = 0x11d187;" (assignment_expression "*(undefined8 *)(puVar15 + -8) = 0x11d187" (pointer_expression "*(undefined8 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined8 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0x11d187")) (; ";")) (expression_statement "__gmpz_realloc(piVar5,uVar8);" (call_expression "__gmpz_realloc(piVar5,uVar8)" (identifier "__gmpz_realloc") (argument_list "(piVar5,uVar8)" (( "(") (identifier "piVar5") (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "plVar10 = *(long **)(piVar5 + 2);" (assignment_expression "plVar10 = *(long **)(piVar5 + 2)" (identifier "plVar10") (= "=") (pointer_expression "*(long **)(piVar5 + 2)" (* "*") (cast_expression "(long **)(piVar5 + 2)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar5 + 2)" (( "(") (binary_expression "piVar5 + 2" (identifier "piVar5") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "plVar21 = *(long **)(local_60 + 8);" (assignment_expression "plVar21 = *(long **)(local_60 + 8)" (identifier "plVar21") (= "=") (pointer_expression "*(long **)(local_60 + 8)" (* "*") (cast_expression "(long **)(local_60 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_60 + 8)" (( "(") (binary_expression "local_60 + 8" (identifier "local_60") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "plVar9 = local_58;" (assignment_expression "plVar9 = local_58" (identifier "plVar9") (= "=") (identifier "local_58")) (; ";")) (} "}"))) (if_statement "if ((long)plVar14 < (long)plVar25) {\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d0ee;\n    __gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14);\n    plVar9 = local_58;\n    if (plVar14 != (long *)0x0) goto LAB_0011d0f7;\nLAB_0011d108:\n    *plVar10 = *plVar10 + 1;\n    if (*plVar10 == 0) {\n      if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }\n      plVar9 = plVar10 + 1;\n      *plVar9 = *plVar9 + 1;\n      if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }\n    }\n    uVar23 = -(uint)plVar25;\n  }\n  else {\n    plVar12 = (long *)((long)plVar25 + -1);\n    if (plVar12 != (long *)0xffffffffffffffff) {\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *plVar10 = 1;\n    uVar23 = 0xffffffff;\n  }" (if "if") (parenthesized_expression "((long)plVar14 < (long)plVar25)" (( "(") (binary_expression "(long)plVar14 < (long)plVar25" (cast_expression "(long)plVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar14")) (< "<") (cast_expression "(long)plVar25" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar25"))) () ")")) (compound_statement "{\n    local_58 = plVar9;\n    *(undefined8 *)(puVar15 + -8) = 0x11d0ee;\n    __gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14);\n    plVar9 = local_58;\n    if (plVar14 != (long *)0x0) goto LAB_0011d0f7;\nLAB_0011d108:\n    *plVar10 = *plVar10 + 1;\n    if (*plVar10 == 0) {\n      if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }\n      plVar9 = plVar10 + 1;\n      *plVar9 = *plVar9 + 1;\n      if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }\n    }\n    uVar23 = -(uint)plVar25;\n  }" ({ "{") (expression_statement "local_58 = plVar9;" (assignment_expression "local_58 = plVar9" (identifier "local_58") (= "=") (identifier "plVar9")) (; ";")) (expression_statement "*(undefined8 *)(puVar15 + -8) = 0x11d0ee;" (assignment_expression "*(undefined8 *)(puVar15 + -8) = 0x11d0ee" (pointer_expression "*(undefined8 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined8 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0x11d0ee")) (; ";")) (expression_statement "__gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14);" (call_expression "__gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14)" (identifier "__gmpn_copyi") (argument_list "(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14)" (( "(") (binary_expression "plVar10 + (long)plVar14" (identifier "plVar10") (+ "+") (cast_expression "(long)plVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar14"))) (, ",") (binary_expression "plVar9 + (long)plVar14" (identifier "plVar9") (+ "+") (cast_expression "(long)plVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar14"))) (, ",") (binary_expression "(long)plVar25 - (long)plVar14" (cast_expression "(long)plVar25" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar25")) (- "-") (cast_expression "(long)plVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar14"))) () ")"))) (; ";")) (expression_statement "plVar9 = local_58;" (assignment_expression "plVar9 = local_58" (identifier "plVar9") (= "=") (identifier "local_58")) (; ";")) (if_statement "if (plVar14 != (long *)0x0) goto LAB_0011d0f7;" (if "if") (parenthesized_expression "(plVar14 != (long *)0x0)" (( "(") (binary_expression "plVar14 != (long *)0x0" (identifier "plVar14") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0011d0f7;" (goto "goto") (statement_identifier "LAB_0011d0f7") (; ";"))) (labeled_statement "LAB_0011d108:\n    *plVar10 = *plVar10 + 1;" (statement_identifier "LAB_0011d108") (: ":") (expression_statement "*plVar10 = *plVar10 + 1;" (assignment_expression "*plVar10 = *plVar10 + 1" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (= "=") (binary_expression "*plVar10 + 1" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (*plVar10 == 0) {\n      if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }\n      plVar9 = plVar10 + 1;\n      *plVar9 = *plVar9 + 1;\n      if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }\n    }" (if "if") (parenthesized_expression "(*plVar10 == 0)" (( "(") (binary_expression "*plVar10 == 0" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }\n      plVar9 = plVar10 + 1;\n      *plVar9 = *plVar9 + 1;\n      if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }\n    }" ({ "{") (if_statement "if (plVar25 == (long *)0x1) {\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }" (if "if") (parenthesized_expression "(plVar25 == (long *)0x1)" (( "(") (binary_expression "plVar25 == (long *)0x1" (identifier "plVar25") (== "==") (cast_expression "(long *)0x1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\nLAB_0011d151:\n        plVar10[(long)plVar25] = 1;\n        uVar23 = ~(uint)plVar25;\n        goto LAB_0011cf4c;\n      }" ({ "{") (labeled_statement "LAB_0011d151:\n        plVar10[(long)plVar25] = 1;" (statement_identifier "LAB_0011d151") (: ":") (expression_statement "plVar10[(long)plVar25] = 1;" (assignment_expression "plVar10[(long)plVar25] = 1" (subscript_expression "plVar10[(long)plVar25]" (identifier "plVar10") ([ "[") (cast_expression "(long)plVar25" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar25")) (] "]")) (= "=") (number_literal "1")) (; ";"))) (expression_statement "uVar23 = ~(uint)plVar25;" (assignment_expression "uVar23 = ~(uint)plVar25" (identifier "uVar23") (= "=") (unary_expression "~(uint)plVar25" (~ "~") (cast_expression "(uint)plVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "plVar25")))) (; ";")) (goto_statement "goto LAB_0011cf4c;" (goto "goto") (statement_identifier "LAB_0011cf4c") (; ";")) (} "}"))) (expression_statement "plVar9 = plVar10 + 1;" (assignment_expression "plVar9 = plVar10 + 1" (identifier "plVar9") (= "=") (binary_expression "plVar10 + 1" (identifier "plVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*plVar9 = *plVar9 + 1;" (assignment_expression "*plVar9 = *plVar9 + 1" (pointer_expression "*plVar9" (* "*") (identifier "plVar9")) (= "=") (binary_expression "*plVar9 + 1" (pointer_expression "*plVar9" (* "*") (identifier "plVar9")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*plVar9 == 0) {\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }" (if "if") (parenthesized_expression "(*plVar9 == 0)" (( "(") (binary_expression "*plVar9 == 0" (pointer_expression "*plVar9" (* "*") (identifier "plVar9")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (plVar25 == (long *)0x2) goto LAB_0011d151;\n        plVar9 = plVar10 + 2;\n        *plVar9 = *plVar9 + 1;\n        if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }\n      }" ({ "{") (if_statement "if (plVar25 == (long *)0x2) goto LAB_0011d151;" (if "if") (parenthesized_expression "(plVar25 == (long *)0x2)" (( "(") (binary_expression "plVar25 == (long *)0x2" (identifier "plVar25") (== "==") (cast_expression "(long *)0x2" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (goto_statement "goto LAB_0011d151;" (goto "goto") (statement_identifier "LAB_0011d151") (; ";"))) (expression_statement "plVar9 = plVar10 + 2;" (assignment_expression "plVar9 = plVar10 + 2" (identifier "plVar9") (= "=") (binary_expression "plVar10 + 2" (identifier "plVar10") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*plVar9 = *plVar9 + 1;" (assignment_expression "*plVar9 = *plVar9 + 1" (pointer_expression "*plVar9" (* "*") (identifier "plVar9")) (= "=") (binary_expression "*plVar9 + 1" (pointer_expression "*plVar9" (* "*") (identifier "plVar9")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*plVar9 == 0) {\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }" (if "if") (parenthesized_expression "(*plVar9 == 0)" (( "(") (binary_expression "*plVar9 == 0" (pointer_expression "*plVar9" (* "*") (identifier "plVar9")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          plVar9 = plVar10 + 3;\n          do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);\n        }" ({ "{") (expression_statement "plVar9 = plVar10 + 3;" (assignment_expression "plVar9 = plVar10 + 3" (identifier "plVar9") (= "=") (binary_expression "plVar10 + 3" (identifier "plVar10") (+ "+") (number_literal "3"))) (; ";")) (do_statement "do {\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          } while (lVar18 + 1 == 0);" (do "do") (compound_statement "{\n            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;\n            lVar18 = *plVar9;\n            *plVar9 = lVar18 + 1;\n            plVar9 = plVar9 + 1;\n          }" ({ "{") (if_statement "if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;" (if "if") (parenthesized_expression "(plVar9 == plVar10 + (long)plVar25)" (( "(") (binary_expression "plVar9 == plVar10 + (long)plVar25" (identifier "plVar9") (== "==") (binary_expression "plVar10 + (long)plVar25" (identifier "plVar10") (+ "+") (cast_expression "(long)plVar25" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar25")))) () ")")) (goto_statement "goto LAB_0011d151;" (goto "goto") (statement_identifier "LAB_0011d151") (; ";"))) (expression_statement "lVar18 = *plVar9;" (assignment_expression "lVar18 = *plVar9" (identifier "lVar18") (= "=") (pointer_expression "*plVar9" (* "*") (identifier "plVar9"))) (; ";")) (expression_statement "*plVar9 = lVar18 + 1;" (assignment_expression "*plVar9 = lVar18 + 1" (pointer_expression "*plVar9" (* "*") (identifier "plVar9")) (= "=") (binary_expression "lVar18 + 1" (identifier "lVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "plVar9 = plVar9 + 1;" (assignment_expression "plVar9 = plVar9 + 1" (identifier "plVar9") (= "=") (binary_expression "plVar9 + 1" (identifier "plVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar18 + 1 == 0)" (( "(") (binary_expression "lVar18 + 1 == 0" (binary_expression "lVar18 + 1" (identifier "lVar18") (+ "+") (number_literal "1")) (== "==") (number_literal "0")) () ")")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "uVar23 = -(uint)plVar25;" (assignment_expression "uVar23 = -(uint)plVar25" (identifier "uVar23") (= "=") (unary_expression "-(uint)plVar25" (- "-") (cast_expression "(uint)plVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "plVar25")))) (; ";")) (} "}")) (else_clause "else {\n    plVar12 = (long *)((long)plVar25 + -1);\n    if (plVar12 != (long *)0xffffffffffffffff) {\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *plVar10 = 1;\n    uVar23 = 0xffffffff;\n  }" (else "else") (compound_statement "{\n    plVar12 = (long *)((long)plVar25 + -1);\n    if (plVar12 != (long *)0xffffffffffffffff) {\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }\nLAB_0011cf3f:\n    *plVar10 = 1;\n    uVar23 = 0xffffffff;\n  }" ({ "{") (expression_statement "plVar12 = (long *)((long)plVar25 + -1);" (assignment_expression "plVar12 = (long *)((long)plVar25 + -1)" (identifier "plVar12") (= "=") (cast_expression "(long *)((long)plVar25 + -1)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar25 + -1)" (( "(") (binary_expression "(long)plVar25 + -1" (cast_expression "(long)plVar25" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar25")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if (plVar12 != (long *)0xffffffffffffffff) {\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }" (if "if") (parenthesized_expression "(plVar12 != (long *)0xffffffffffffffff)" (( "(") (binary_expression "plVar12 != (long *)0xffffffffffffffff" (identifier "plVar12") (!= "!=") (cast_expression "(long *)0xffffffffffffffff" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffffffffffff"))) () ")")) (compound_statement "{\n      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];\n      plVar14 = plVar25;\n      while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }\nLAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;\n      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);\n      goto LAB_0011d108;\n    }" ({ "{") (expression_statement "uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];" (assignment_expression "uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12]" (identifier "uVar8") (= "=") (binary_expression "plVar9[(long)plVar12] & ~plVar21[(long)plVar12]" (subscript_expression "plVar9[(long)plVar12]" (identifier "plVar9") ([ "[") (cast_expression "(long)plVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar12")) (] "]")) (& "&") (unary_expression "~plVar21[(long)plVar12]" (~ "~") (subscript_expression "plVar21[(long)plVar12]" (identifier "plVar21") ([ "[") (cast_expression "(long)plVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar12")) (] "]"))))) (; ";")) (expression_statement "plVar14 = plVar25;" (assignment_expression "plVar14 = plVar25" (identifier "plVar14") (= "=") (identifier "plVar25")) (; ";")) (while_statement "while (plVar25 = plVar14, uVar8 == 0) {\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }" (while "while") (parenthesized_expression "(plVar25 = plVar14, uVar8 == 0)" (( "(") (comma_expression "plVar25 = plVar14, uVar8 == 0" (assignment_expression "plVar25 = plVar14" (identifier "plVar25") (= "=") (identifier "plVar14")) (, ",") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n        plVar25 = (long *)((long)plVar12 + -1);\n        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;\n        plVar14 = plVar12;\n        plVar12 = plVar25;\n        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];\n      }" ({ "{") (expression_statement "plVar25 = (long *)((long)plVar12 + -1);" (assignment_expression "plVar25 = (long *)((long)plVar12 + -1)" (identifier "plVar25") (= "=") (cast_expression "(long *)((long)plVar12 + -1)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar12 + -1)" (( "(") (binary_expression "(long)plVar12 + -1" (cast_expression "(long)plVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar12")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;" (if "if") (parenthesized_expression "(plVar25 == (long *)0xffffffffffffffff)" (( "(") (binary_expression "plVar25 == (long *)0xffffffffffffffff" (identifier "plVar25") (== "==") (cast_expression "(long *)0xffffffffffffffff" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffffffffffff"))) () ")")) (goto_statement "goto LAB_0011cf3f;" (goto "goto") (statement_identifier "LAB_0011cf3f") (; ";"))) (expression_statement "plVar14 = plVar12;" (assignment_expression "plVar14 = plVar12" (identifier "plVar14") (= "=") (identifier "plVar12")) (; ";")) (expression_statement "plVar12 = plVar25;" (assignment_expression "plVar12 = plVar25" (identifier "plVar12") (= "=") (identifier "plVar25")) (; ";")) (expression_statement "uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];" (assignment_expression "uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25]" (identifier "uVar8") (= "=") (binary_expression "plVar9[(long)plVar25] & ~plVar21[(long)plVar25]" (subscript_expression "plVar9[(long)plVar25]" (identifier "plVar9") ([ "[") (cast_expression "(long)plVar25" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar25")) (] "]")) (& "&") (unary_expression "~plVar21[(long)plVar25]" (~ "~") (subscript_expression "plVar21[(long)plVar25]" (identifier "plVar21") ([ "[") (cast_expression "(long)plVar25" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar25")) (] "]"))))) (; ";")) (} "}"))) (labeled_statement "LAB_0011d0f7:\n      *(undefined8 *)(puVar15 + -8) = 0x11d108;" (statement_identifier "LAB_0011d0f7") (: ":") (expression_statement "*(undefined8 *)(puVar15 + -8) = 0x11d108;" (assignment_expression "*(undefined8 *)(puVar15 + -8) = 0x11d108" (pointer_expression "*(undefined8 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined8 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0x11d108")) (; ";"))) (expression_statement "__gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);" (call_expression "__gmpn_andn_n(plVar10,plVar9,plVar21,plVar14)" (identifier "__gmpn_andn_n") (argument_list "(plVar10,plVar9,plVar21,plVar14)" (( "(") (identifier "plVar10") (, ",") (identifier "plVar9") (, ",") (identifier "plVar21") (, ",") (identifier "plVar14") () ")"))) (; ";")) (goto_statement "goto LAB_0011d108;" (goto "goto") (statement_identifier "LAB_0011d108") (; ";")) (} "}"))) (labeled_statement "LAB_0011cf3f:\n    *plVar10 = 1;" (statement_identifier "LAB_0011cf3f") (: ":") (expression_statement "*plVar10 = 1;" (assignment_expression "*plVar10 = 1" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (= "=") (number_literal "1")) (; ";"))) (expression_statement "uVar23 = 0xffffffff;" (assignment_expression "uVar23 = 0xffffffff" (identifier "uVar23") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")))) (labeled_statement "LAB_0011cf4c:\n  local_50[1] = uVar23;" (statement_identifier "LAB_0011cf4c") (: ":") (expression_statement "local_50[1] = uVar23;" (assignment_expression "local_50[1] = uVar23" (subscript_expression "local_50[1]" (identifier "local_50") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar23")) (; ";"))) (expression_statement "puVar16 = puVar15;" (assignment_expression "puVar16 = puVar15" (identifier "puVar16") (= "=") (identifier "puVar15")) (; ";")) (goto_statement "goto joined_r0x0011d45a;" (goto "goto") (statement_identifier "joined_r0x0011d45a") (; ";")) (labeled_statement "code_r0x0011d43b:\n  uVar8 = uVar8 - 1;" (statement_identifier "code_r0x0011d43b") (: ":") (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" (identifier "uVar8") (= "=") (binary_expression "uVar8 - 1" (identifier "uVar8") (- "-") (number_literal "1"))) (; ";"))) (if_statement "if (uVar8 == 0xffffffffffffffff) goto code_r0x0011d445;" (if "if") (parenthesized_expression "(uVar8 == 0xffffffffffffffff)" (( "(") (binary_expression "uVar8 == 0xffffffffffffffff" (identifier "uVar8") (== "==") (number_literal "0xffffffffffffffff")) () ")")) (goto_statement "goto code_r0x0011d445;" (goto "goto") (statement_identifier "code_r0x0011d445") (; ";"))) (goto_statement "goto LAB_0011d42d;" (goto "goto") (statement_identifier "LAB_0011d42d") (; ";")) (labeled_statement "code_r0x0011d445:\n  *plVar10 = 1;" (statement_identifier "code_r0x0011d445") (: ":") (expression_statement "*plVar10 = 1;" (assignment_expression "*plVar10 = 1" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (= "=") (number_literal "1")) (; ";"))) (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" (identifier "iVar6") (= "=") (number_literal "-1")) (; ";")) (labeled_statement "LAB_0011d44c:\n  local_50[1] = iVar6;" (statement_identifier "LAB_0011d44c") (: ":") (expression_statement "local_50[1] = iVar6;" (assignment_expression "local_50[1] = iVar6" (subscript_expression "local_50[1]" (identifier "local_50") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar6")) (; ";"))) (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" (identifier "puVar16") (= "=") (identifier "puVar17")) (; ";")) (labeled_statement "joined_r0x0011d45a:\n  if (local_48 != 0) {\n    *(undefined8 *)(puVar16 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free();\n  }" (statement_identifier "joined_r0x0011d45a") (: ":") (if_statement "if (local_48 != 0) {\n    *(undefined8 *)(puVar16 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free();\n  }" (if "if") (parenthesized_expression "(local_48 != 0)" (( "(") (binary_expression "local_48 != 0" (identifier "local_48") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined8 *)(puVar16 + -8) = 0x11d465;\n    __gmp_tmp_reentrant_free();\n  }" ({ "{") (expression_statement "*(undefined8 *)(puVar16 + -8) = 0x11d465;" (assignment_expression "*(undefined8 *)(puVar16 + -8) = 0x11d465" (pointer_expression "*(undefined8 *)(puVar16 + -8)" (* "*") (cast_expression "(undefined8 *)(puVar16 + -8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -8)" (( "(") (binary_expression "puVar16 + -8" (identifier "puVar16") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0x11d465")) (; ";")) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" (identifier "__gmp_tmp_reentrant_free") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_0011cf61:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" (statement_identifier "LAB_0011cf61") (: ":") (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "*(undefined8 *)(puVar16 + -8) = 0x11d8c8;" (assignment_expression "*(undefined8 *)(puVar16 + -8) = 0x11d8c8" (pointer_expression "*(undefined8 *)(puVar16 + -8)" (* "*") (cast_expression "(undefined8 *)(puVar16 + -8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -8)" (( "(") (binary_expression "puVar16 + -8" (identifier "puVar16") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0x11d8c8")) (; ";")) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

void function_1(type_1 res,type_2 op1,type_2 op2)

{
  type_3 *puVar1;
  type_4 *puVar2;
  type_3 *puVar3;
  type_5 var_6;
  type_3 uVar5;
  type_6 *var_37;
  type_1 m;
  int var_31;
  type_2 var_34;
  type_5 *var_17;
  type_5 *var_28;
  type_4 *var_25;
  type_5 *var_8;
  long var_9;
  type_2 var_33;
  type_5 *var_18;
  type_7 *var_35;
  type_7 *var_38;
  type_7 *var_22;
  long var_11;
  size_t var_2;
  long var_15;
  type_5 *var_5;
  type_5 *var_7;
  int var_26;
  type_8 uVar22;
  type_5 *var_13;
  type_5 *var_10;
  type_5 *var_32;
  type_4 var_20;
  type_4 var_19;
  long var_1;
  type_7 var_3 [8];
  type_5 *local_70;
  type_2 local_68;
  type_2 var_16;
  type_5 *var_14;
  type_1 local_50;
  type_6 *__tmp_marker;
  long var_40;
  
  var_35 = var_3;
  var_22 = var_3;
  var_38 = var_3;
  var_31 = op1->_mp_size;
  var_5 = (type_5 *)(long)var_31;
  var_26 = op2->_mp_size;
  var_8 = (type_5 *)(long)var_26;
  var_10 = op1->_mp_d;
  var_17 = op2->_mp_d;
  var_28 = res->_mp_d;
  var_40 = *(long *)(var_1 + 0x28);
  __tmp_marker = (type_6 *)0x0;
  local_50 = res;
  if ((long)var_5 < 0) {
    var_18 = var_8;
    op1 = op2;
    var_13 = var_10;
    var_7 = var_17;
    var_32 = var_5;
    if ((long)var_8 < 0) {
      if ((long)var_8 <= (long)var_5) {
        var_8 = var_5;
      }
      var_11 = -(long)var_8;
      var_2 = (long)var_8 * -0x10;
      if (var_2 < 0x7f01) {
        var_22 = var_3 + -(var_2 + 0x10);
        var_5 = (type_5 *)((long)&local_70 + -(var_2 + 0x10));
        var_7 = var_8;
      }
      else {
        var_14 = var_8;
        var_5 = (type_5 *)var_4(&__tmp_marker,var_2);
        var_7 = var_14;
      }
      var_6 = *var_10;
      var_18 = var_5 + -(long)var_7;
      *var_5 = var_6 - 1;
      if (var_6 == 0) {
        if (var_7 == (type_5 *)0xffffffffffffffff) {
LAB_0011d84a:
          var_6 = *var_17;
          *var_18 = var_6 - 1;
          var_20 = 0;
          if (var_6 == 0) goto LAB_0011d42d;
        }
        else {
          var_6 = var_10[1];
          var_5[1] = var_6 - 1;
          if (var_6 == 0) {
            if (-3 < (long)var_7) goto LAB_0011d53d;
            var_6 = var_10[2];
            var_5[2] = var_6 - 1;
            var_9 = 3;
            while (var_6 == 0) {
              if ((type_5 *)-var_9 == var_8) goto LAB_0011d53d;
              var_6 = var_10[var_9];
              var_5[var_9] = var_6 - 1;
              var_9 = var_9 + 1;
            }
          }
          else {
            var_9 = 2;
          }
          if ((var_5 != var_10) && ((type_5 *)-var_9 != var_8 && var_9 <= var_11)) {
            var_13 = var_10 + var_9;
            var_14 = var_5 + var_9;
            var_16 = (type_2)var_12(var_16._1_7_,var_5 + var_9 + 2 <= var_13);
            if ((var_5 + var_9 + 2 <= var_13 || var_10 + var_9 + 2 <= var_14) &&
               (3 < ~(type_4)var_7 - var_9)) {
              var_16 = (type_2)(var_11 - var_9);
              var_15 = 0;
              do {
                uVar5 = ((type_3 *)((long)var_13 + var_15))[1];
                *(type_3 *)((long)var_14 + var_15) = *(type_3 *)((long)var_13 + var_15);
                ((type_3 *)((long)var_14 + var_15))[1] = uVar5;
                var_15 = var_15 + 0x10;
              } while (var_15 != ((type_4)var_16 >> 1) * 0x10);
              var_9 = (long)&((type_2)((type_4)var_16 & 0xfffffffffffffffe))->_mp_alloc +
                       var_9;
              if (var_16 != (type_2)((type_4)var_16 & 0xfffffffffffffffe)) {
LAB_0011d534:
                var_5[var_9] = var_10[var_9];
              }
            }
            else {
              do {
                var_5[var_9] = var_10[var_9];
                var_9 = var_9 + 1;
              } while ((type_5 *)-var_9 != var_8);
            }
          }
LAB_0011d53d:
          var_20 = ~(type_4)var_7;
          var_6 = *var_17;
          *var_18 = var_6 - 1;
          if (var_6 == 0) goto LAB_0011d551;
        }
LAB_0011d3a0:
        if ((var_17 == var_18) || (var_7 == (type_5 *)0xffffffffffffffff)) goto LAB_0011d42d;
        if ((var_17 + 1 < var_5 + (3 - (long)var_7) &&
             var_5 + (1 - (long)var_7) < var_17 + 3) || (-6 < (long)var_7)) {
          var_9 = 1;
          do {
            var_18[var_9] = var_17[var_9];
            var_9 = var_9 + 1;
          } while ((type_5 *)-var_9 != var_8 && var_9 <= var_11);
          goto LAB_0011d42d;
        }
        var_19 = 1;
        if ((long)var_7 < -1) {
          var_19 = var_20;
        }
        var_11 = 0;
        do {
          puVar3 = (type_3 *)((long)var_17 + var_11 + 8);
          uVar5 = puVar3[1];
          puVar1 = (type_3 *)((long)(var_5 + (1 - (long)var_7)) + var_11);
          *puVar1 = *puVar3;
          puVar1[1] = uVar5;
          var_11 = var_11 + 0x10;
        } while (var_11 != (var_19 >> 1) * 0x10);
        var_9 = (var_19 & 0xfffffffffffffffe) + 1;
        if (var_19 == (var_19 & 0xfffffffffffffffe)) goto LAB_0011d42d;
      }
      else {
        if (var_5 != var_10) {
          if (var_7 == (type_5 *)0xffffffffffffffff) goto LAB_0011d84a;
          if ((var_10 + 1 < var_5 + 3 && var_5 + 1 < var_10 + 3) || (-6 < (long)var_7)) {
            var_9 = 1;
            do {
              var_5[var_9] = var_10[var_9];
              var_9 = var_9 + 1;
            } while ((type_5 *)-var_9 != var_8 && var_9 <= var_11);
          }
          else {
            var_9 = 8;
            var_20 = 1;
            if ((long)var_7 < -1) {
              var_20 = ~(type_4)var_7;
            }
            do {
              uVar5 = ((type_3 *)((long)var_10 + var_9))[1];
              *(type_3 *)((long)var_5 + var_9) = *(type_3 *)((long)var_10 + var_9);
              ((type_3 *)((long)var_5 + var_9))[1] = uVar5;
              var_9 = var_9 + 0x10;
            } while (var_9 != (var_20 >> 1) * 0x10 + 8);
            var_9 = (var_20 & 0xfffffffffffffffe) + 1;
            if (var_20 != (var_20 & 0xfffffffffffffffe)) goto LAB_0011d534;
          }
          goto LAB_0011d53d;
        }
        var_6 = *var_17;
        *var_18 = var_6 - 1;
        if (var_6 != 0) {
          var_20 = ~(type_4)var_7;
          goto LAB_0011d3a0;
        }
        if (var_7 == (type_5 *)0xffffffffffffffff) {
          var_20 = 0;
          goto LAB_0011d42d;
        }
LAB_0011d551:
        var_20 = ~(type_4)var_7;
        var_6 = var_17[1];
        var_18[1] = var_6 - 1;
        if (var_6 == 0) {
          if (-3 < (long)var_7) goto LAB_0011d42d;
          var_6 = var_17[2];
          var_9 = 3;
          var_18[2] = var_6 - 1;
          while (var_6 == 0) {
            if ((type_5 *)-var_9 == var_8) goto LAB_0011d42d;
            var_6 = var_17[var_9];
            var_18[var_9] = var_6 - 1;
            var_9 = var_9 + 1;
          }
        }
        else {
          var_9 = 2;
        }
        if ((var_17 == var_18) || (var_21(var_9,var_11) == (long)(var_9 + (long)var_8) < 0))
        goto LAB_0011d42d;
        if ((var_18 + var_9 < var_17 + var_9 + 2 && var_17 + var_9 < var_18 + var_9 + 2) ||
           (var_20 - var_9 < 4)) {
          do {
            var_18[var_9] = var_17[var_9];
            var_9 = var_9 + 1;
          } while ((type_5 *)-var_9 != var_8);
          goto LAB_0011d42d;
        }
        var_19 = var_11 - var_9;
        var_11 = 0;
        do {
          puVar1 = (type_3 *)((long)(var_17 + var_9) + var_11);
          uVar5 = puVar1[1];
          puVar3 = (type_3 *)((long)(var_18 + var_9) + var_11);
          *puVar3 = *puVar1;
          puVar3[1] = uVar5;
          var_11 = var_11 + 0x10;
        } while (var_11 != (var_19 >> 1) * 0x10);
        var_9 = var_9 + (var_19 & 0xfffffffffffffffe);
        if (var_19 == (var_19 & 0xfffffffffffffffe)) goto LAB_0011d42d;
      }
      var_18[var_9] = var_17[var_9];
LAB_0011d42d:
      if ((var_18[var_20] & var_5[var_20]) == 0) goto code_r0x0011d43b;
      var_11 = var_20 + 1;
      if (var_11 < local_50->_mp_alloc) {
        var_25 = local_50->_mp_d;
      }
      else {
        *(type_3 *)(var_22 + -8) = 0x11d8b7;
        var_14 = var_18;
        var_25 = (type_4 *)var_23(local_50,var_20 + 2);
        var_18 = var_14;
      }
      *(type_3 *)(var_22 + -8) = 0x11d6ca;
      var_24(var_25,var_5,var_18,var_11);
      puVar2 = var_25 + var_11;
      *puVar2 = 0;
      do {
        var_20 = *var_25;
        *var_25 = *var_25 + 1;
        var_25 = var_25 + 1;
      } while (0xfffffffffffffffe < var_20);
      var_31 = -((int)var_11 + (int)*puVar2);
      goto LAB_0011d44c;
    }
  }
  else {
    var_18 = var_5;
    var_13 = var_17;
    var_7 = var_10;
    var_32 = var_8;
    if (-1 < (long)var_8) {
      if ((long)var_5 < (long)var_8) {
        if (res->_mp_alloc < var_26) {
          var_16 = (type_2)var_27(var_16._4_4_,var_26);
          local_70 = var_5;
          local_68 = op1;
          var_14 = var_8;
          var_28 = (type_5 *)var_23(res,(type_9)var_8);
          var_10 = local_68->_mp_d;
          var_8 = var_14;
          var_5 = local_70;
          var_26 = (int)var_16;
        }
        var_31 = var_26;
        if (var_28 != var_17) {
          var_16 = (type_2)var_27(var_16._4_4_,var_26);
          var_14 = var_5;
          var_29(var_28 + (long)var_5,var_17 + (long)var_5,(long)var_8 - (long)var_5);
          var_5 = var_14;
          var_31 = (int)var_16;
        }
        if (var_5 != (type_5 *)0x0) {
          var_14 = (type_5 *)var_27(var_14._4_4_,var_31);
          var_30(var_28,var_10,var_17,var_5);
          var_31 = (int)var_14;
        }
      }
      else {
        if (res->_mp_alloc < var_31) {
          var_16 = (type_2)var_27(var_16._4_4_,var_31);
          local_70 = var_8;
          local_68 = op2;
          var_14 = var_5;
          var_28 = (type_5 *)var_23(res,(type_9)var_5);
          var_17 = local_68->_mp_d;
          var_8 = local_70;
          var_5 = var_14;
          var_31 = (int)var_16;
        }
        if (var_28 != var_10) {
          var_16 = (type_2)var_27(var_16._4_4_,var_31);
          var_14 = var_8;
          var_29(var_28 + (long)var_8,var_10 + (long)var_8,(long)var_5 - (long)var_8)
          ;
          var_8 = var_14;
          var_31 = (int)var_16;
        }
        if (var_8 != (type_5 *)0x0) {
          var_14 = (type_5 *)var_27(var_14._4_4_,var_31);
          var_30(var_28,var_10,var_17);
          var_31 = (int)var_14;
        }
      }
      local_50->_mp_size = var_31;
      goto LAB_0011cf61;
    }
  }
  var_10 = (type_5 *)((long)var_32 * -8);
  if (var_10 < (type_5 *)0x7f01) {
    var_11 = -((type_4)((long)var_10 + 0x17) & 0xfffffffffffffff0);
    var_35 = var_3 + var_11;
    var_17 = (type_5 *)((long)&local_70 + var_11);
    var_33 = (type_2)-(long)var_32;
  }
  else {
    local_68 = op1;
    var_16 = (type_2)-(long)var_32;
    var_14 = var_10;
    var_17 = (type_5 *)var_4(&__tmp_marker,(size_t)var_10);
    var_10 = var_14;
    var_33 = var_16;
    op1 = local_68;
  }
  m = local_50;
  var_6 = *var_13;
  *var_17 = var_6 - 1;
  if (var_6 == 0) {
    if (var_32 != (type_5 *)0xffffffffffffffff) {
      var_6 = var_13[1];
      var_17[1] = var_6 - 1;
      if (var_6 == 0) {
        if (-3 < (long)var_32) goto LAB_0011ced0;
        var_6 = var_13[2];
        var_34 = (type_2)0x3;
        var_17[2] = var_6 - 1;
        while (var_6 == 0) {
          if (var_33 == var_34) goto LAB_0011ced0;
          var_6 = var_13[(long)var_34];
          var_17[(long)var_34] = var_6 - 1;
          var_34 = (type_2)((long)&var_34->_mp_alloc + 1);
        }
      }
      else {
        var_34 = (type_2)0x2;
      }
      if ((var_13 != var_17) && ((long)var_34 < (long)var_33)) {
        var_14 = var_13 + (long)var_34;
        var_16 = (type_2)
                   var_12(var_16._1_7_,var_17 + (long)((long)&var_34->_mp_alloc + 2) <= var_14
                           );
        if ((var_17 + (long)((long)&var_34->_mp_alloc + 2) <= var_14 ||
             var_13 + (long)((long)&var_34->_mp_alloc + 2) <= var_17 + (long)var_34) &&
           (3 < ~(type_4)var_32 - (long)var_34)) {
          var_20 = (long)var_33 - (long)var_34;
          var_11 = 0;
          do {
            uVar5 = ((type_3 *)((long)var_14 + var_11))[1];
            puVar1 = (type_3 *)((long)(var_17 + (long)var_34) + var_11);
            *puVar1 = *(type_3 *)((long)var_14 + var_11);
            puVar1[1] = uVar5;
            var_11 = var_11 + 0x10;
          } while ((var_20 >> 1) * 0x10 != var_11);
          var_11 = (long)&var_34->_mp_alloc + (var_20 & 0xfffffffffffffffe);
          if ((var_20 & 0xfffffffffffffffe) != var_20) goto LAB_0011d020;
        }
        else {
          do {
            var_17[(long)var_34] = var_13[(long)var_34];
            var_34 = (type_2)((long)&var_34->_mp_alloc + 1);
          } while (var_33 != var_34);
        }
      }
    }
  }
  else if ((var_13 != var_17) && (var_32 != (type_5 *)0xffffffffffffffff)) {
    if ((var_13 + 1 < var_17 + 3 && var_17 + 1 < var_13 + 3) || (-6 < (long)var_32)) {
      var_11 = 1;
      do {
        var_17[var_11] = var_13[var_11];
        var_11 = var_11 + 1;
      } while (var_11 < (long)var_33);
    }
    else {
      var_20 = ~(type_4)var_32;
      if (-2 < (long)var_32) {
        var_20 = 1;
      }
      var_11 = 8;
      do {
        uVar5 = ((type_3 *)((long)var_13 + var_11))[1];
        *(type_3 *)((long)var_17 + var_11) = *(type_3 *)((long)var_13 + var_11);
        ((type_3 *)((long)var_17 + var_11))[1] = uVar5;
        var_11 = var_11 + 0x10;
      } while (var_11 != (var_20 >> 1) * 0x10 + 8);
      var_11 = (var_20 & 0xfffffffffffffffe) + 1;
      if ((var_20 & 0xfffffffffffffffe) != var_20) {
LAB_0011d020:
        var_17[var_11] = var_13[var_11];
      }
    }
  }
LAB_0011ced0:
  var_10 = (type_5 *)
            ((long)var_33 - (type_4)(*(long *)((long)(var_17 + -1) + (long)var_10) == 0));
  if ((long)local_50->_mp_alloc < (long)var_33) {
    var_16 = op1;
    var_14 = var_17;
    *(type_3 *)(var_35 + -8) = 0x11d187;
    var_23(m,(type_9)var_33);
    var_28 = m->_mp_d;
    var_7 = var_16->_mp_d;
    var_17 = var_14;
  }
  if ((long)var_18 < (long)var_10) {
    var_14 = var_17;
    *(type_3 *)(var_35 + -8) = 0x11d0ee;
    var_29(var_28 + (long)var_18,var_17 + (long)var_18,(long)var_10 - (long)var_18);
    var_17 = var_14;
    if (var_18 != (type_5 *)0x0) goto LAB_0011d0f7;
LAB_0011d108:
    *var_28 = *var_28 + 1;
    if (*var_28 == 0) {
      if (var_10 == (type_5 *)&DAT_00000001) {
LAB_0011d151:
        var_28[(long)var_10] = 1;
        uVar22 = ~(type_8)var_10;
        goto LAB_0011cf4c;
      }
      var_17 = var_28 + 1;
      *var_17 = *var_17 + 1;
      if (*var_17 == 0) {
        if (var_10 == (type_5 *)0x2) goto LAB_0011d151;
        var_17 = var_28 + 2;
        *var_17 = *var_17 + 1;
        if (*var_17 == 0) {
          var_17 = var_28 + 3;
          do {
            if (var_17 == var_28 + (long)var_10) goto LAB_0011d151;
            var_6 = *var_17;
            *var_17 = var_6 + 1;
            var_17 = var_17 + 1;
          } while (var_6 + 1 == 0);
        }
      }
    }
    uVar22 = -(type_8)var_10;
  }
  else {
    var_8 = (type_5 *)((long)var_10 + -1);
    if (var_8 != (type_5 *)0xffffffffffffffff) {
      var_20 = var_17[(long)var_8] & ~var_7[(long)var_8];
      var_18 = var_10;
      while (var_10 = var_18, var_20 == 0) {
        var_10 = (type_5 *)((long)var_8 + -1);
        if (var_10 == (type_5 *)0xffffffffffffffff) goto LAB_0011cf3f;
        var_18 = var_8;
        var_8 = var_10;
        var_20 = var_17[(long)var_10] & ~var_7[(long)var_10];
      }
LAB_0011d0f7:
      *(type_3 *)(var_35 + -8) = 0x11d108;
      var_36(var_28,var_17,var_7,var_18);
      goto LAB_0011d108;
    }
LAB_0011cf3f:
    *var_28 = 1;
    uVar22 = 0xffffffff;
  }
LAB_0011cf4c:
  local_50->_mp_size = uVar22;
  var_38 = var_35;
  var_37 = __tmp_marker;
  goto joined_r0x0011d45a;
code_r0x0011d43b:
  var_20 = var_20 - 1;
  if (var_20 == 0xffffffffffffffff) goto code_r0x0011d445;
  goto LAB_0011d42d;
code_r0x0011d445:
  *var_28 = 1;
  var_31 = -1;
LAB_0011d44c:
  local_50->_mp_size = var_31;
  var_38 = var_22;
  var_37 = __tmp_marker;
joined_r0x0011d45a:
  __tmp_marker = var_37;
  if (var_37 != (type_6 *)0x0) {
    *(type_3 *)(var_38 + -8) = 0x11d465;
    var_39(var_37);
  }
LAB_0011cf61:
  if (var_40 == *(long *)(var_1 + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  *(type_3 *)(var_38 + -8) = 0x11d8c8;
  var_41();
}


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

void MASKED(int *param_1,ulong param_2,ulong param_3)

{
  undefined8 *puVar1;
  ulong *puVar2;
  undefined8 *puVar3;
  undefined8 uVar4;
  int *piVar5;
  int iVar6;
  ulong uVar7;
  ulong uVar8;
  long *plVar9;
  long *plVar10;
  ulong *puVar11;
  long *plVar12;
  long lVar13;
  long *plVar14;
  undefined1 *puVar15;
  undefined1 *puVar16;
  undefined1 *puVar17;
  long lVar18;
  long lVar19;
  long *plVar20;
  long *plVar21;
  int iVar22;
  uint uVar23;
  long *plVar24;
  long *plVar25;
  long *plVar26;
  ulong uVar27;
  long in_FS_OFFSET;
  undefined1 auStack_78 [8];
  long *local_70;
  ulong local_68;
  ulong local_60;
  long *local_58;
  int *local_50;
  long local_48;
  long local_40;
  
  puVar15 = auStack_78;
  puVar17 = auStack_78;
  puVar16 = auStack_78;
  iVar6 = *(int *)(param_2 + 4);
  plVar20 = (long *)(long)iVar6;
  iVar22 = *(int *)(param_3 + 4);
  plVar12 = (long *)(long)iVar22;
  plVar25 = *(long **)(param_2 + 8);
  plVar9 = *(long **)(param_3 + 8);
  plVar10 = *(long **)(param_1 + 2);
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_48 = 0;
  local_50 = param_1;
  if ((long)plVar20 < 0) {
    plVar14 = plVar12;
    param_2 = param_3;
    plVar24 = plVar25;
    plVar21 = plVar9;
    plVar26 = plVar20;
    if ((long)plVar12 < 0) {
      if ((long)plVar12 <= (long)plVar20) {
        plVar12 = plVar20;
      }
      lVar18 = -(long)plVar12;
      if ((ulong)((long)plVar12 * -0x10) < 0x7f01) {
        lVar13 = -((long)plVar12 * -0x10 + 0x10U);
        puVar17 = auStack_78 + lVar13;
        plVar20 = (long *)((long)&local_70 + lVar13);
        plVar21 = plVar12;
      }
      else {
        local_58 = plVar12;
        plVar20 = (long *)__gmp_tmp_reentrant_alloc(&local_48);
        plVar21 = local_58;
      }
      lVar13 = *plVar25;
      plVar14 = plVar20 + -(long)plVar21;
      *plVar20 = lVar13 + -1;
      if (lVar13 == 0) {
        if (plVar21 == (long *)0xffffffffffffffff) {
LAB_0011d84a:
          lVar13 = *plVar9;
          *plVar14 = lVar13 + -1;
          uVar8 = 0;
          if (lVar13 == 0) goto LAB_0011d42d;
        }
        else {
          lVar13 = plVar25[1];
          plVar20[1] = lVar13 + -1;
          if (lVar13 == 0) {
            if (-3 < (long)plVar21) goto LAB_0011d53d;
            lVar19 = plVar25[2];
            plVar20[2] = lVar19 + -1;
            lVar13 = 3;
            while (lVar19 == 0) {
              if ((long *)-lVar13 == plVar12) goto LAB_0011d53d;
              lVar19 = plVar25[lVar13];
              plVar20[lVar13] = lVar19 + -1;
              lVar13 = lVar13 + 1;
            }
          }
          else {
            lVar13 = 2;
          }
          if ((plVar20 != plVar25) && ((long *)-lVar13 != plVar12 && lVar13 <= lVar18)) {
            plVar24 = plVar25 + lVar13;
            local_58 = plVar20 + lVar13;
            local_60 = CONCAT71(local_60._1_7_,plVar20 + lVar13 + 2 <= plVar24);
            if ((plVar20 + lVar13 + 2 <= plVar24 || plVar25 + lVar13 + 2 <= local_58) &&
               (3 < ~(ulong)plVar21 - lVar13)) {
              local_60 = lVar18 - lVar13;
              lVar19 = 0;
              do {
                uVar4 = ((undefined8 *)((long)plVar24 + lVar19))[1];
                *(undefined8 *)((long)local_58 + lVar19) = *(undefined8 *)((long)plVar24 + lVar19);
                ((undefined8 *)((long)local_58 + lVar19))[1] = uVar4;
                lVar19 = lVar19 + 0x10;
              } while (lVar19 != (local_60 >> 1) * 0x10);
              lVar13 = lVar13 + (local_60 & 0xfffffffffffffffe);
              if (local_60 != (local_60 & 0xfffffffffffffffe)) {
LAB_0011d534:
                plVar20[lVar13] = plVar25[lVar13];
              }
            }
            else {
              do {
                plVar20[lVar13] = plVar25[lVar13];
                lVar13 = lVar13 + 1;
              } while ((long *)-lVar13 != plVar12);
            }
          }
LAB_0011d53d:
          uVar8 = ~(ulong)plVar21;
          lVar13 = *plVar9;
          *plVar14 = lVar13 + -1;
          if (lVar13 == 0) goto LAB_0011d551;
        }
LAB_0011d3a0:
        if ((plVar9 == plVar14) || (plVar21 == (long *)0xffffffffffffffff)) goto LAB_0011d42d;
        if ((plVar9 + 1 < plVar20 + (3 - (long)plVar21) &&
             plVar20 + (1 - (long)plVar21) < plVar9 + 3) || (-6 < (long)plVar21)) {
          lVar13 = 1;
          do {
            plVar14[lVar13] = plVar9[lVar13];
            lVar13 = lVar13 + 1;
          } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);
          goto LAB_0011d42d;
        }
        uVar7 = 1;
        if ((long)plVar21 < -1) {
          uVar7 = uVar8;
        }
        lVar18 = 0;
        do {
          puVar3 = (undefined8 *)((long)plVar9 + lVar18 + 8);
          uVar4 = puVar3[1];
          puVar1 = (undefined8 *)((long)(plVar20 + (1 - (long)plVar21)) + lVar18);
          *puVar1 = *puVar3;
          puVar1[1] = uVar4;
          lVar18 = lVar18 + 0x10;
        } while (lVar18 != (uVar7 >> 1) * 0x10);
        lVar13 = (uVar7 & 0xfffffffffffffffe) + 1;
        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;
      }
      else {
        if (plVar20 != plVar25) {
          if (plVar21 == (long *)0xffffffffffffffff) goto LAB_0011d84a;
          if ((plVar25 + 1 < plVar20 + 3 && plVar20 + 1 < plVar25 + 3) || (-6 < (long)plVar21)) {
            lVar13 = 1;
            do {
              plVar20[lVar13] = plVar25[lVar13];
              lVar13 = lVar13 + 1;
            } while ((long *)-lVar13 != plVar12 && lVar13 <= lVar18);
          }
          else {
            lVar13 = 8;
            uVar8 = 1;
            if ((long)plVar21 < -1) {
              uVar8 = ~(ulong)plVar21;
            }
            do {
              uVar4 = ((undefined8 *)((long)plVar25 + lVar13))[1];
              *(undefined8 *)((long)plVar20 + lVar13) = *(undefined8 *)((long)plVar25 + lVar13);
              ((undefined8 *)((long)plVar20 + lVar13))[1] = uVar4;
              lVar13 = lVar13 + 0x10;
            } while (lVar13 != (uVar8 >> 1) * 0x10 + 8);
            lVar13 = (uVar8 & 0xfffffffffffffffe) + 1;
            if (uVar8 != (uVar8 & 0xfffffffffffffffe)) goto LAB_0011d534;
          }
          goto LAB_0011d53d;
        }
        lVar13 = *plVar9;
        *plVar14 = lVar13 + -1;
        if (lVar13 != 0) {
          uVar8 = ~(ulong)plVar21;
          goto LAB_0011d3a0;
        }
        if (plVar21 == (long *)0xffffffffffffffff) {
          uVar8 = 0;
          goto LAB_0011d42d;
        }
LAB_0011d551:
        uVar8 = ~(ulong)plVar21;
        lVar13 = plVar9[1];
        plVar14[1] = lVar13 + -1;
        if (lVar13 == 0) {
          if (-3 < (long)plVar21) goto LAB_0011d42d;
          lVar19 = plVar9[2];
          lVar13 = 3;
          plVar14[2] = lVar19 + -1;
          while (lVar19 == 0) {
            if ((long *)-lVar13 == plVar12) goto LAB_0011d42d;
            lVar19 = plVar9[lVar13];
            plVar14[lVar13] = lVar19 + -1;
            lVar13 = lVar13 + 1;
          }
        }
        else {
          lVar13 = 2;
        }
        if ((plVar9 == plVar14) || (SBORROW8(lVar13,lVar18) == lVar13 + (long)plVar12 < 0))
        goto LAB_0011d42d;
        if ((plVar14 + lVar13 < plVar9 + lVar13 + 2 && plVar9 + lVar13 < plVar14 + lVar13 + 2) ||
           (uVar8 - lVar13 < 4)) {
          do {
            plVar14[lVar13] = plVar9[lVar13];
            lVar13 = lVar13 + 1;
          } while ((long *)-lVar13 != plVar12);
          goto LAB_0011d42d;
        }
        uVar7 = lVar18 - lVar13;
        lVar18 = 0;
        do {
          puVar1 = (undefined8 *)((long)(plVar9 + lVar13) + lVar18);
          uVar4 = puVar1[1];
          puVar3 = (undefined8 *)((long)(plVar14 + lVar13) + lVar18);
          *puVar3 = *puVar1;
          puVar3[1] = uVar4;
          lVar18 = lVar18 + 0x10;
        } while (lVar18 != (uVar7 >> 1) * 0x10);
        lVar13 = lVar13 + (uVar7 & 0xfffffffffffffffe);
        if (uVar7 == (uVar7 & 0xfffffffffffffffe)) goto LAB_0011d42d;
      }
      plVar14[lVar13] = plVar9[lVar13];
LAB_0011d42d:
      if ((plVar14[uVar8] & plVar20[uVar8]) == 0) goto code_r0x0011d43b;
      lVar18 = uVar8 + 1;
      if (lVar18 < *local_50) {
        puVar11 = *(ulong **)(local_50 + 2);
      }
      else {
        *(undefined8 *)(puVar17 + -8) = 0x11d8b7;
        local_58 = plVar14;
        puVar11 = (ulong *)__gmpz_realloc(local_50,uVar8 + 2);
        plVar14 = local_58;
      }
      *(undefined8 *)(puVar17 + -8) = 0x11d6ca;
      __gmpn_and_n(puVar11,plVar20,plVar14,lVar18);
      puVar2 = puVar11 + lVar18;
      *puVar2 = 0;
      do {
        uVar8 = *puVar11;
        *puVar11 = *puVar11 + 1;
        puVar11 = puVar11 + 1;
      } while (0xfffffffffffffffe < uVar8);
      iVar6 = -((int)lVar18 + (int)*puVar2);
      goto LAB_0011d44c;
    }
  }
  else {
    plVar14 = plVar20;
    plVar24 = plVar9;
    plVar21 = plVar25;
    plVar26 = plVar12;
    if (-1 < (long)plVar12) {
      if ((long)plVar20 < (long)plVar12) {
        if (*param_1 < iVar22) {
          local_60 = CONCAT44(local_60._4_4_,iVar22);
          local_70 = plVar20;
          local_68 = param_2;
          local_58 = plVar12;
          plVar10 = (long *)__gmpz_realloc(param_1,plVar12);
          plVar25 = *(long **)(local_68 + 8);
          plVar12 = local_58;
          plVar20 = local_70;
          iVar22 = (int)local_60;
        }
        iVar6 = iVar22;
        if (plVar10 != plVar9) {
          local_60 = CONCAT44(local_60._4_4_,iVar22);
          local_58 = plVar20;
          __gmpn_copyi(plVar10 + (long)plVar20,plVar9 + (long)plVar20,(long)plVar12 - (long)plVar20)
          ;
          plVar20 = local_58;
          iVar6 = (int)local_60;
        }
        if (plVar20 != (long *)0x0) {
          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);
          __gmpn_ior_n(plVar10,plVar25,plVar9,plVar20);
          iVar6 = (int)local_58;
        }
      }
      else {
        if (*param_1 < iVar6) {
          local_60 = CONCAT44(local_60._4_4_,iVar6);
          local_70 = plVar12;
          local_68 = param_3;
          local_58 = plVar20;
          plVar10 = (long *)__gmpz_realloc(param_1,plVar20);
          plVar9 = *(long **)(local_68 + 8);
          plVar12 = local_70;
          plVar20 = local_58;
          iVar6 = (int)local_60;
        }
        if (plVar10 != plVar25) {
          local_60 = CONCAT44(local_60._4_4_,iVar6);
          local_58 = plVar12;
          __gmpn_copyi(plVar10 + (long)plVar12,plVar25 + (long)plVar12,(long)plVar20 - (long)plVar12
                      );
          plVar12 = local_58;
          iVar6 = (int)local_60;
        }
        if (plVar12 != (long *)0x0) {
          local_58 = (long *)CONCAT44(local_58._4_4_,iVar6);
          __gmpn_ior_n(plVar10,plVar25,plVar9);
          iVar6 = (int)local_58;
        }
      }
      local_50[1] = iVar6;
      goto LAB_0011cf61;
    }
  }
  plVar25 = (long *)((long)plVar26 * -8);
  if (plVar25 < (long *)0x7f01) {
    lVar18 = -((long)plVar25 + 0x17U & 0xfffffffffffffff0);
    puVar15 = auStack_78 + lVar18;
    plVar9 = (long *)((long)&local_70 + lVar18);
    uVar8 = -(long)plVar26;
  }
  else {
    local_68 = param_2;
    local_60 = -(long)plVar26;
    local_58 = plVar25;
    plVar9 = (long *)__gmp_tmp_reentrant_alloc(&local_48,plVar25);
    plVar25 = local_58;
    uVar8 = local_60;
    param_2 = local_68;
  }
  piVar5 = local_50;
  lVar18 = *plVar24;
  *plVar9 = lVar18 + -1;
  if (lVar18 == 0) {
    if (plVar26 != (long *)0xffffffffffffffff) {
      lVar18 = plVar24[1];
      plVar9[1] = lVar18 + -1;
      if (lVar18 == 0) {
        if (-3 < (long)plVar26) goto LAB_0011ced0;
        lVar18 = plVar24[2];
        uVar7 = 3;
        plVar9[2] = lVar18 + -1;
        while (lVar18 == 0) {
          if (uVar8 == uVar7) goto LAB_0011ced0;
          lVar18 = plVar24[uVar7];
          plVar9[uVar7] = lVar18 + -1;
          uVar7 = uVar7 + 1;
        }
      }
      else {
        uVar7 = 2;
      }
      if ((plVar24 != plVar9) && ((long)uVar7 < (long)uVar8)) {
        local_58 = plVar24 + uVar7;
        local_60 = CONCAT71(local_60._1_7_,plVar9 + uVar7 + 2 <= local_58);
        if ((plVar9 + uVar7 + 2 <= local_58 || plVar24 + uVar7 + 2 <= plVar9 + uVar7) &&
           (3 < ~(ulong)plVar26 - uVar7)) {
          uVar27 = uVar8 - uVar7;
          lVar18 = 0;
          do {
            uVar4 = ((undefined8 *)((long)local_58 + lVar18))[1];
            puVar1 = (undefined8 *)((long)(plVar9 + uVar7) + lVar18);
            *puVar1 = *(undefined8 *)((long)local_58 + lVar18);
            puVar1[1] = uVar4;
            lVar18 = lVar18 + 0x10;
          } while ((uVar27 >> 1) * 0x10 != lVar18);
          lVar18 = uVar7 + (uVar27 & 0xfffffffffffffffe);
          if ((uVar27 & 0xfffffffffffffffe) != uVar27) goto LAB_0011d020;
        }
        else {
          do {
            plVar9[uVar7] = plVar24[uVar7];
            uVar7 = uVar7 + 1;
          } while (uVar8 != uVar7);
        }
      }
    }
  }
  else if ((plVar24 != plVar9) && (plVar26 != (long *)0xffffffffffffffff)) {
    if ((plVar24 + 1 < plVar9 + 3 && plVar9 + 1 < plVar24 + 3) || (-6 < (long)plVar26)) {
      lVar18 = 1;
      do {
        plVar9[lVar18] = plVar24[lVar18];
        lVar18 = lVar18 + 1;
      } while (lVar18 < (long)uVar8);
    }
    else {
      uVar7 = ~(ulong)plVar26;
      if (-2 < (long)plVar26) {
        uVar7 = 1;
      }
      lVar18 = 8;
      do {
        uVar4 = ((undefined8 *)((long)plVar24 + lVar18))[1];
        *(undefined8 *)((long)plVar9 + lVar18) = *(undefined8 *)((long)plVar24 + lVar18);
        ((undefined8 *)((long)plVar9 + lVar18))[1] = uVar4;
        lVar18 = lVar18 + 0x10;
      } while (lVar18 != (uVar7 >> 1) * 0x10 + 8);
      lVar18 = (uVar7 & 0xfffffffffffffffe) + 1;
      if ((uVar7 & 0xfffffffffffffffe) != uVar7) {
LAB_0011d020:
        plVar9[lVar18] = plVar24[lVar18];
      }
    }
  }
LAB_0011ced0:
  plVar25 = (long *)(uVar8 - (*(long *)((long)(plVar9 + -1) + (long)plVar25) == 0));
  if ((long)*local_50 < (long)uVar8) {
    local_60 = param_2;
    local_58 = plVar9;
    *(undefined8 *)(puVar15 + -8) = 0x11d187;
    __gmpz_realloc(piVar5,uVar8);
    plVar10 = *(long **)(piVar5 + 2);
    plVar21 = *(long **)(local_60 + 8);
    plVar9 = local_58;
  }
  if ((long)plVar14 < (long)plVar25) {
    local_58 = plVar9;
    *(undefined8 *)(puVar15 + -8) = 0x11d0ee;
    __gmpn_copyi(plVar10 + (long)plVar14,plVar9 + (long)plVar14,(long)plVar25 - (long)plVar14);
    plVar9 = local_58;
    if (plVar14 != (long *)0x0) goto LAB_0011d0f7;
LAB_0011d108:
    *plVar10 = *plVar10 + 1;
    if (*plVar10 == 0) {
      if (plVar25 == (long *)0x1) {
LAB_0011d151:
        plVar10[(long)plVar25] = 1;
        uVar23 = ~(uint)plVar25;
        goto LAB_0011cf4c;
      }
      plVar9 = plVar10 + 1;
      *plVar9 = *plVar9 + 1;
      if (*plVar9 == 0) {
        if (plVar25 == (long *)0x2) goto LAB_0011d151;
        plVar9 = plVar10 + 2;
        *plVar9 = *plVar9 + 1;
        if (*plVar9 == 0) {
          plVar9 = plVar10 + 3;
          do {
            if (plVar9 == plVar10 + (long)plVar25) goto LAB_0011d151;
            lVar18 = *plVar9;
            *plVar9 = lVar18 + 1;
            plVar9 = plVar9 + 1;
          } while (lVar18 + 1 == 0);
        }
      }
    }
    uVar23 = -(uint)plVar25;
  }
  else {
    plVar12 = (long *)((long)plVar25 + -1);
    if (plVar12 != (long *)0xffffffffffffffff) {
      uVar8 = plVar9[(long)plVar12] & ~plVar21[(long)plVar12];
      plVar14 = plVar25;
      while (plVar25 = plVar14, uVar8 == 0) {
        plVar25 = (long *)((long)plVar12 + -1);
        if (plVar25 == (long *)0xffffffffffffffff) goto LAB_0011cf3f;
        plVar14 = plVar12;
        plVar12 = plVar25;
        uVar8 = plVar9[(long)plVar25] & ~plVar21[(long)plVar25];
      }
LAB_0011d0f7:
      *(undefined8 *)(puVar15 + -8) = 0x11d108;
      __gmpn_andn_n(plVar10,plVar9,plVar21,plVar14);
      goto LAB_0011d108;
    }
LAB_0011cf3f:
    *plVar10 = 1;
    uVar23 = 0xffffffff;
  }
LAB_0011cf4c:
  local_50[1] = uVar23;
  puVar16 = puVar15;
  goto joined_r0x0011d45a;
code_r0x0011d43b:
  uVar8 = uVar8 - 1;
  if (uVar8 == 0xffffffffffffffff) goto code_r0x0011d445;
  goto LAB_0011d42d;
code_r0x0011d445:
  *plVar10 = 1;
  iVar6 = -1;
LAB_0011d44c:
  local_50[1] = iVar6;
  puVar16 = puVar17;
joined_r0x0011d45a:
  if (local_48 != 0) {
    *(undefined8 *)(puVar16 + -8) = 0x11d465;
    __gmp_tmp_reentrant_free();
  }
LAB_0011cf61:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  *(undefined8 *)(puVar16 + -8) = 0x11d8c8;
  __stack_chk_fail();
}

