
void __gmpn_toom63_mul(mp_ptr pp,mp_srcptr ap,mp_size_t an,mp_srcptr bp,mp_size_t bn,mp_ptr scratch)

{
  uint *puVar1;
  mp_srcptr pmVar2;
  bool bVar3;
  undefined *puVar4;
  int iVar5;
  uint uVar6;
  mp_limb_t mVar7;
  int iVar8;
  mp_limb_t *pmVar9;
  uint uVar10;
  mp_srcptr pmVar11;
  uint *puVar12;
  mp_srcptr pmVar13;
  mp_ptr pmVar14;
  mp_srcptr pmVar15;
  mp_ptr rm;
  mp_ptr pmVar16;
  mp_ptr pmVar17;
  mp_ptr pmVar18;
  mp_ptr pmVar19;
  int iVar20;
  mp_srcptr pmVar21;
  int iVar22;
  uint uVar23;
  int iVar24;
  int iVar25;
  mp_ptr rp;
  int iVar26;
  int iVar27;
  int local_44;
  uint local_38;
  code *local_2c;
  
  if (an < bn << 1) {
    uVar23 = (bn - 1U) / 3;
  }
  else {
    uVar23 = (an - 1U) / 6;
  }
  iVar24 = uVar23 + 1;
  iVar5 = an + iVar24 * -5;
  pmVar17 = pp + iVar24 * 5 + 2;
  pmVar14 = pp + iVar24 * 3;
  iVar25 = bn + iVar24 * -2;
  uVar6 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)(pmVar17,pmVar14,5,ap,iVar24,iVar5,2,pp);
  pmVar15 = bp + iVar24;
  mVar7 = (*(code *)PTR___gmpn_lshift_0009756c)(pp,pmVar15,iVar24,2);
  puVar4 = PTR___gmpn_lshift_0009756c;
  pp[iVar24] = mVar7;
  pmVar21 = pmVar15 + iVar24;
  rp = pp + iVar24 * 6 + 3;
  mVar7 = (*(code *)puVar4)(rp,pmVar21,iVar25,4);
  pp[iVar24 * 6 + 3 + iVar25] = mVar7;
  rm = pp + iVar24 * 4 + 1;
  pmVar18 = pp + iVar24 * 7 + 3;
  iVar22 = iVar25 + 1;
  pmVar19 = scratch + iVar24 * 3 + 1;
  pmVar13 = scratch + iVar24 * 6 + 2;
  iVar20 = iVar24 * 2 + 1;
  if (iVar24 == iVar25) {
    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,rp,bp,iVar24);
    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);
    *pmVar18 = *pmVar18 + iVar8;
    uVar10 = abs_sub_add_n(rm,rp,pp,iVar25 + 1);
    (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar25 + 1);
    (*(code *)PTR___gmpn_mul_n_00097364)(pmVar19,pmVar17,rp,iVar25 + 1);
    iVar26 = iVar25 + 1;
    (*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar19,iVar20,pp,uVar6 ^ uVar10,iVar24,2,4)
    ;
    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp);
    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar24);
    if (iVar8 == 0) goto LAB_0005ba9c;
LAB_0005c014:
    iVar27 = 1;
    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,pmVar13,pmVar15,iVar24);
    pmVar16 = pp + iVar24 * 5 + 1;
    *pmVar18 = iVar8 + 1;
  }
  else {
    iVar8 = iVar25 + 1;
    if (iVar8 == 0) {
      iVar8 = 0;
      if (rp != bp) {
LAB_0005b968:
        pmVar11 = bp + iVar8;
        pmVar9 = rp + iVar8;
        do {
          mVar7 = *pmVar11;
          pmVar11 = pmVar11 + 1;
          *pmVar9 = mVar7;
          pmVar9 = pmVar9 + 1;
        } while (pmVar11 != bp + iVar24);
      }
LAB_0005b98c:
      mVar7 = 0;
    }
    else {
      iVar26 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar8);
      if (iVar26 == 0) {
        iVar8 = iVar25 + 1;
LAB_0005c0cc:
        if (rp == bp) goto LAB_0005b98c;
        if (iVar8 < iVar24) goto LAB_0005b968;
        mVar7 = 0;
      }
      else {
        mVar7 = 1;
        if (iVar8 < iVar24) {
          iVar8 = iVar25 + 2;
          mVar7 = bp[iVar25 + 1];
          rp[iVar25 + 1] = mVar7 + 1;
          if (mVar7 + 1 == 0) {
            pmVar11 = bp + iVar25;
            pmVar16 = rp + iVar25;
            do {
              if (iVar24 == iVar8) {
                mVar7 = 1;
                goto LAB_0005b990;
              }
              mVar7 = pmVar11[2];
              iVar8 = iVar8 + 1;
              pmVar11 = pmVar11 + 1;
              pmVar16[2] = mVar7 + 1;
              pmVar16 = pmVar16 + 1;
            } while (mVar7 + 1 == 0);
          }
          goto LAB_0005c0cc;
        }
      }
    }
LAB_0005b990:
    iVar26 = uVar23 + 2;
    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);
    *pmVar18 = mVar7;
    uVar10 = abs_sub_add_n(rm,rp,pp,iVar26);
    (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26);
    (*(code *)PTR___gmpn_mul_n_00097364)(pmVar19,pmVar17,rp,iVar26);
    (*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar19,iVar20,pp,uVar6 ^ uVar10,iVar24,2,4)
    ;
    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp);
    if (iVar25 == 0) {
      if (bp != pmVar13) {
        iVar8 = 0;
LAB_0005ba74:
        pmVar9 = bp + iVar8;
        pmVar11 = pmVar13 + iVar8;
        do {
          mVar7 = *pmVar9;
          pmVar9 = pmVar9 + 1;
          *pmVar11 = mVar7;
          pmVar11 = pmVar11 + 1;
        } while (bp + iVar24 != pmVar9);
      }
    }
    else {
      iVar27 = (*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar25);
      iVar8 = iVar25;
      if (iVar27 != 0) {
        if (iVar24 <= iVar25) goto LAB_0005c014;
        pmVar11 = bp + iVar25;
        pmVar9 = pmVar13 + iVar25;
        mVar7 = *pmVar11 + 1;
        *pmVar9 = mVar7;
        iVar8 = iVar22;
        while (mVar7 == 0) {
          bVar3 = iVar24 == iVar8;
          iVar8 = iVar8 + 1;
          if (bVar3) goto LAB_0005c014;
          pmVar2 = pmVar11 + 1;
          pmVar9 = pmVar9 + 1;
          pmVar11 = pmVar11 + 1;
          mVar7 = *pmVar2 + 1;
          *pmVar9 = mVar7;
        }
      }
      if ((bp != pmVar13) && (iVar8 < iVar24)) goto LAB_0005ba74;
    }
LAB_0005ba9c:
    mVar7 = (*(code *)PTR___gmpn_add_n_00097334)(rp,pmVar13,pmVar15,iVar24);
    *pmVar18 = mVar7;
    puVar12 = bp + iVar24 * 2 + -1;
    pmVar16 = scratch + iVar24 * 7;
    do {
      puVar1 = pmVar16 + 1;
      uVar23 = uVar23 - 1;
      uVar6 = *puVar12;
      pmVar16 = pmVar16 + -1;
      puVar12 = puVar12 + -1;
      if (*puVar1 != uVar6) {
        pmVar16 = pp + iVar24 * 5 + 1;
        if (uVar6 < *puVar1) {
          iVar27 = 0;
          goto LAB_0005bb0c;
        }
        (*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar15,pmVar13,iVar24);
        *pmVar16 = 0;
        local_38 = ~local_38;
        goto LAB_0005bb30;
      }
    } while (uVar23 != 0xffffffff);
    iVar27 = 0;
    pmVar16 = pp + iVar24 * 5 + 1;
  }
LAB_0005bb0c:
  iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar13,pmVar15,iVar24);
  *pmVar16 = iVar27 - iVar8;
LAB_0005bb30:
  (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26);
  (*(code *)PTR___gmpn_mul_n_00097364)(scratch,pmVar17,rp,iVar26);
  (*(code *)PTR___gmpn_toom_couple_handling_00097370)(scratch,iVar20,pp,local_38,iVar24,0,0);
  uVar23 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp);
  mVar7 = (*(code *)PTR___gmpn_lshift_0009756c)(pp,pmVar15,iVar24,1);
  puVar4 = PTR___gmpn_lshift_0009756c;
  pp[iVar24] = mVar7;
  mVar7 = (*(code *)puVar4)(rp,pmVar21,iVar25,2);
  pp[iVar24 * 6 + 3 + iVar25] = mVar7;
  if (iVar24 == iVar25) {
    iVar22 = (*(code *)PTR___gmpn_add_n_00097334)(rp,rp,bp,iVar24);
    *pmVar18 = *pmVar18 + iVar22;
    goto LAB_0005bc5c;
  }
  local_44 = iVar22;
  if (iVar22 == 0) {
    mVar7 = 0;
    if (rp != bp) {
LAB_0005bc28:
      pmVar13 = bp + local_44;
      pmVar9 = rp + local_44;
      do {
        mVar7 = *pmVar13;
        pmVar13 = pmVar13 + 1;
        *pmVar9 = mVar7;
        pmVar9 = pmVar9 + 1;
      } while (bp + iVar24 != pmVar13);
LAB_0005bc50:
      mVar7 = 0;
    }
  }
  else {
    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar22);
    if (iVar8 != 0) {
      mVar7 = 1;
      if (iVar24 <= iVar22) goto LAB_0005bc58;
      local_44 = iVar25 + 2;
      mVar7 = bp[iVar22];
      rp[iVar22] = mVar7 + 1;
      if (mVar7 + 1 == 0) {
        pmVar13 = bp + iVar25;
        pmVar16 = rp + iVar25;
        do {
          if (iVar24 == local_44) {
            mVar7 = 1;
            goto LAB_0005bc58;
          }
          mVar7 = pmVar13[2];
          local_44 = local_44 + 1;
          pmVar13 = pmVar13 + 1;
          pmVar16[2] = mVar7 + 1;
          pmVar16 = pmVar16 + 1;
        } while (mVar7 + 1 == 0);
      }
    }
    if (rp == bp) goto LAB_0005bc50;
    mVar7 = 0;
    if (local_44 < iVar24) goto LAB_0005bc28;
  }
LAB_0005bc58:
  *pmVar18 = mVar7;
LAB_0005bc5c:
  uVar6 = (*local_2c)(rm,rp,pp,iVar26);
  (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26);
  (*(code *)PTR___gmpn_mul_n_00097364)(pmVar14,pmVar17,rp,iVar26);
  (*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar14,iVar20,pp,uVar23 ^ uVar6,iVar24,1,2);
  (*(code *)PTR___gmpn_mul_n_00097364)(pp,ap,bp,iVar24);
  if (iVar25 < iVar5) {
    (*(code *)PTR___gmpn_mul_000972b4)();
  }
  else {
    (*(code *)PTR___gmpn_mul_000972b4)(pp + iVar24 * 7,pmVar21,iVar25,ap + iVar24 * 5,iVar5);
  }
                    /* WARNING: Could not recover jumptable at 0x0005bd8c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(pp,iVar24,pmVar19,scratch);
  return;
}



void __gmpn_toom63_mul(int param_1,int param_2,int param_3,int param_4,int param_5,int param_6)

{
  uint *puVar1;
  int *piVar2;
  bool bVar3;
  undefined *puVar4;
  uint uVar5;
  undefined4 uVar6;
  undefined4 *puVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  uint uVar11;
  uint *puVar12;
  undefined4 *puVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  int iVar17;
  undefined4 *puVar18;
  int iVar19;
  int iVar20;
  int *piVar21;
  int iVar22;
  int iVar23;
  int *piVar24;
  int iVar25;
  int iVar26;
  uint uVar27;
  int iVar28;
  int iVar29;
  int iVar30;
  int iVar31;
  int *piVar32;
  int local_44;
  uint local_38;
  code *local_2c;
  
  if (param_3 < param_5 << 1) {
    uVar27 = (param_5 - 1U) / 3;
  }
  else {
    uVar27 = (param_3 - 1U) / 6;
  }
  iVar28 = uVar27 + 1;
  iVar30 = iVar28 * 4;
  iVar14 = iVar28 * 0x14;
  param_3 = param_3 + iVar28 * -5;
  iVar20 = param_1 + iVar14 + 8;
  iVar15 = param_1 + iVar28 * 0xc;
  param_5 = param_5 + iVar28 * -2;
  uVar5 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)
                    (iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1);
  iVar16 = param_4 + iVar30;
  uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,2);
  puVar4 = PTR___gmpn_lshift_0009756c;
  *(undefined4 *)(param_1 + iVar30) = uVar6;
  iVar25 = iVar16 + iVar30;
  puVar7 = (undefined4 *)(param_1 + (iVar28 * 6 + 3 + param_5) * 4);
  iVar29 = param_1 + iVar28 * 0x18 + 0xc;
  uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,4);
  *puVar7 = uVar6;
  iVar17 = param_1 + iVar28 * 0x10 + 4;
  piVar21 = (int *)(param_1 + iVar28 * 0x1c + 0xc);
  iVar26 = param_5 + 1;
  iVar22 = param_6 + iVar28 * 0xc + 4;
  iVar8 = param_6 + iVar28 * 0x18 + 8;
  iVar23 = iVar28 * 2 + 1;
  if (iVar28 == param_5) {
    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);
    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);
    *piVar21 = *piVar21 + iVar9;
    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1);
    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1);
    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1);
    iVar31 = param_5 + 1;
    (*(code *)PTR___gmpn_toom_couple_handling_00097370)
              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);
    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)
                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);
    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28);
    if (iVar9 == 0) goto LAB_0005ba9c;
LAB_0005c014:
    iVar10 = 1;
    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);
    piVar32 = (int *)(param_1 + iVar14 + 4);
    *piVar21 = iVar9 + 1;
  }
  else {
    iVar9 = param_5 + 1;
    if (iVar9 == 0) {
      iVar9 = 0;
      if (iVar29 != param_4) {
LAB_0005b968:
        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);
        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);
        do {
          uVar6 = *puVar18;
          puVar18 = puVar18 + 1;
          *puVar13 = uVar6;
          puVar13 = puVar13 + 1;
        } while (puVar18 != (undefined4 *)(param_4 + iVar30));
      }
LAB_0005b98c:
      iVar10 = 0;
    }
    else {
      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);
      if (iVar31 == 0) {
        iVar9 = param_5 + 1;
LAB_0005c0cc:
        if (iVar29 == param_4) goto LAB_0005b98c;
        if (iVar9 < iVar28) goto LAB_0005b968;
        iVar10 = 0;
      }
      else {
        iVar10 = 1;
        if (iVar9 < iVar28) {
          iVar31 = (param_5 + 1) * 4;
          iVar9 = param_5 + 2;
          iVar10 = *(int *)(param_4 + iVar31) + 1;
          *(int *)(iVar29 + iVar31) = iVar10;
          if (iVar10 == 0) {
            iVar10 = param_4 + param_5 * 4;
            iVar31 = iVar29 + param_5 * 4;
            do {
              if (iVar28 == iVar9) {
                iVar10 = 1;
                goto LAB_0005b990;
              }
              piVar32 = (int *)(iVar10 + 8);
              iVar9 = iVar9 + 1;
              iVar10 = iVar10 + 4;
              iVar19 = *piVar32 + 1;
              *(int *)(iVar31 + 8) = iVar19;
              iVar31 = iVar31 + 4;
            } while (iVar19 == 0);
          }
          goto LAB_0005c0cc;
        }
      }
    }
LAB_0005b990:
    iVar31 = uVar27 + 2;
    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);
    *piVar21 = iVar10;
    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);
    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);
    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);
    (*(code *)PTR___gmpn_toom_couple_handling_00097370)
              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);
    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)
                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);
    if (param_5 == 0) {
      if (param_4 != iVar8) {
        iVar9 = 0;
LAB_0005ba74:
        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);
        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);
        do {
          uVar6 = *puVar18;
          puVar18 = puVar18 + 1;
          *puVar13 = uVar6;
          puVar13 = puVar13 + 1;
        } while ((undefined4 *)(param_4 + iVar30) != puVar18);
      }
    }
    else {
      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);
      iVar9 = param_5;
      if (iVar10 != 0) {
        if (iVar28 <= param_5) goto LAB_0005c014;
        piVar32 = (int *)(param_4 + param_5 * 4);
        piVar24 = (int *)(iVar8 + param_5 * 4);
        iVar10 = *piVar32 + 1;
        *piVar24 = iVar10;
        iVar9 = iVar26;
        while (iVar10 == 0) {
          bVar3 = iVar28 == iVar9;
          iVar9 = iVar9 + 1;
          if (bVar3) goto LAB_0005c014;
          piVar2 = piVar32 + 1;
          piVar24 = piVar24 + 1;
          piVar32 = piVar32 + 1;
          iVar10 = *piVar2 + 1;
          *piVar24 = iVar10;
        }
      }
      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;
    }
LAB_0005ba9c:
    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);
    *piVar21 = iVar9;
    puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);
    iVar9 = param_6 + iVar28 * 0x1c;
    do {
      puVar1 = (uint *)(iVar9 + 4);
      uVar27 = uVar27 - 1;
      uVar5 = *puVar12;
      iVar9 = iVar9 + -4;
      puVar12 = puVar12 + -1;
      if (*puVar1 != uVar5) {
        piVar32 = (int *)(param_1 + iVar14 + 4);
        if (uVar5 < *puVar1) {
          iVar10 = 0;
          goto LAB_0005bb0c;
        }
        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);
        *piVar32 = 0;
        local_38 = ~local_38;
        goto LAB_0005bb30;
      }
    } while (uVar27 != 0xffffffff);
    iVar10 = 0;
    piVar32 = (int *)(param_1 + iVar14 + 4);
  }
LAB_0005bb0c:
  iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28);
  *piVar32 = iVar10 - iVar8;
LAB_0005bb30:
  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);
  (*(code *)PTR___gmpn_mul_n_00097364)(param_6,iVar20,iVar29,iVar31);
  (*(code *)PTR___gmpn_toom_couple_handling_00097370)(param_6,iVar23,param_1,local_38,iVar28,0,0);
  uVar27 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)
                     (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);
  uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,1);
  puVar4 = PTR___gmpn_lshift_0009756c;
  *(undefined4 *)(param_1 + iVar30) = uVar6;
  uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,2);
  *puVar7 = uVar6;
  if (iVar28 == param_5) {
    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);
    *piVar21 = *piVar21 + iVar8;
    goto LAB_0005bc5c;
  }
  local_44 = iVar26;
  if (iVar26 == 0) {
    iVar8 = 0;
    if (iVar29 != param_4) {
LAB_0005bc28:
      puVar13 = (undefined4 *)(param_4 + local_44 * 4);
      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);
      do {
        uVar6 = *puVar13;
        puVar13 = puVar13 + 1;
        *puVar7 = uVar6;
        puVar7 = puVar7 + 1;
      } while ((undefined4 *)(param_4 + iVar30) != puVar13);
LAB_0005bc50:
      iVar8 = 0;
    }
  }
  else {
    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);
    if (iVar8 != 0) {
      iVar8 = 1;
      if (iVar28 <= iVar26) goto LAB_0005bc58;
      local_44 = param_5 + 2;
      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;
      *(int *)(iVar29 + iVar26 * 4) = iVar8;
      if (iVar8 == 0) {
        iVar16 = param_4 + param_5 * 4;
        iVar8 = iVar29 + param_5 * 4;
        do {
          if (iVar28 == local_44) {
            iVar8 = 1;
            goto LAB_0005bc58;
          }
          piVar32 = (int *)(iVar16 + 8);
          local_44 = local_44 + 1;
          iVar16 = iVar16 + 4;
          iVar26 = *piVar32 + 1;
          *(int *)(iVar8 + 8) = iVar26;
          iVar8 = iVar8 + 4;
        } while (iVar26 == 0);
      }
    }
    if (iVar29 == param_4) goto LAB_0005bc50;
    iVar8 = 0;
    if (local_44 < iVar28) goto LAB_0005bc28;
  }
LAB_0005bc58:
  *piVar21 = iVar8;
LAB_0005bc5c:
  uVar5 = (*local_2c)(iVar17,iVar29,param_1,iVar31);
  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);
  (*(code *)PTR___gmpn_mul_n_00097364)(iVar15,iVar20,iVar29,iVar31);
  (*(code *)PTR___gmpn_toom_couple_handling_00097370)
            (iVar15,iVar23,param_1,uVar27 ^ uVar5,iVar28,1,2);
  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,param_2,param_4,iVar28);
  if (param_5 < param_3) {
    (*(code *)PTR___gmpn_mul_000972b4)();
  }
  else {
    (*(code *)PTR___gmpn_mul_000972b4)
              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);
  }
                    /* WARNING: Could not recover jumptable at 0x0005bd8c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(param_1,iVar28,iVar22,param_6);
  return;
}


lui gp,0x4
addiu gp,gp,0x38c0
addu gp,gp,t9
addiu sp,sp,-0xa0
lw v0,0xb4(sp)
sw s2,0x80(sp)
lw s2,0xb0(sp)
sw v0,0x48(sp)
sw gp,0x20(sp)
sll v0,s2,0x1
sw s4,0x88(sp)
sw s1,0x7c(sp)
or s4,a3,zero
slt v0,a2,v0
sw ra,0x9c(sp)
sw s8,0x98(sp)
or s1,a0,zero
sw s7,0x94(sp)
sw s6,0x90(sp)
sw s5,0x8c(sp)
sw s3,0x84(sp)
sw s0,0x78(sp)
bne v0,zero,0x0005bd94
_sw a1,0x44(sp)
lui v0,0xaaaa
addiu s0,a2,-0x1
ori v0,v0,0xaaab
multu s0,v0
mfhi s0
srl s0,s0,0x2
addiu s0,s0,0x1
sll s5,s0,0x2
lw t9,-0x7b68(gp)
sll t0,s0,0x1
lw a3,0x44(sp)
addu v0,s5,s0
sw s1,0x1c(sp)
addu s8,t0,s0
sw t0,0x34(sp)
sll v1,v0,0x2
sw s0,0x10(sp)
sll t1,s8,0x2
sw v1,0x64(sp)
addiu v1,v1,0x8
subu v0,a2,v0
sw t1,0x30(sp)
addu a0,s1,v1
li s6,0x2
sw v0,0x38(sp)
addu v1,s1,t1
sw a0,0x3c(sp)
li a2,0x5
sw s6,0x18(sp)
or a1,v1,zero
sw v1,0x2c(sp)
sw v0,0x14(sp)
jalr t9
_subu s2,s2,t0
addu v1,s4,s5
lw gp,0x20(sp)
li a3,0x2
or a1,v1,zero
sw v1,0x40(sp)
or a2,s0,zero
or a0,s1,zero
lw t9,-0x7ad4(gp)
jalr t9
_or s7,v0,zero
sll v1,s8,0x1
lw gp,0x20(sp)
sll s8,s8,0x3
addiu v1,v1,0x3
lw a0,0x40(sp)
addu a2,s1,s5
addu v1,v1,s2
addiu s3,s8,0xc
lw t9,-0x7ad4(gp)
sll v1,v1,0x2
sw v0,0x0(a2)
addu a1,a0,s5
sw a2,0x6c(sp)
addu v0,s1,v1
addu s3,s1,s3
sw a1,0x58(sp)
li a3,0x4
sw v0,0x60(sp)
or a0,s3,zero
jalr t9
_or a2,s2,zero
sll a0,s0,0x3
lw a1,0x60(sp)
sll v1,s0,0x4
subu a0,a0,s0
lw gp,0x20(sp)
addiu v1,v1,0x4
lw t1,0x30(sp)
lw t0,0x34(sp)
sw v0,0x0(a1)
sll v0,a0,0x2
addu v1,s1,v1
addiu a0,v0,0xc
sw v0,0x70(sp)
sw v1,0x30(sp)
addiu t1,t1,0x4
lw v1,0x48(sp)
addu a0,s1,a0
addiu v0,s8,0x8
sw a0,0x4c(sp)
addiu a1,s2,0x1
addu a0,v1,t1
addu v0,v1,v0
sw a1,0x5c(sp)
sw a0,0x50(sp)
addiu a0,t0,0x1
sw v0,0x34(sp)
beq s0,s2,0x0005bf04
_sw a0,0x54(sp)
addiu v0,s2,0x1
bne v0,zero,0x0005be78
_lw t9,-0x7d0c(gp)
beq s3,s4,0x0005b98c
_or v0,zero,zero
sll v0,v0,0x2
addu a1,s4,s5
addu v1,s4,v0
addu v0,s3,v0
lw a0,0x0(v1)
addiu v0,v0,0x4
addiu v1,v1,0x4
bne v1,a1,0x0005b978
_sw a0,-0x4(v0)
or v0,zero,zero
lw a0,0x4c(sp)
addiu s6,s0,0x1
lw v1,-0x7fc0(gp)
or a2,s1,zero
or a3,s6,zero
or a1,s3,zero
addiu t9,v1,-0x4980
sw v0,0x0(a0)
lw a0,0x30(sp)
bal 0x0005b680
_sw t9,0x74(sp)
or a3,s6,zero
lw gp,0x20(sp)
or a0,s1,zero
lw a2,0x30(sp)
xor s7,s7,v0
lw t9,-0x7cdc(gp)
jalr t9
_lw a1,0x2c(sp)
or a3,s6,zero
lw gp,0x20(sp)
or a2,s3,zero
lw a1,0x3c(sp)
lw t9,-0x7cdc(gp)
jalr t9
_lw a0,0x50(sp)
li v0,0x4
lw gp,0x20(sp)
or a3,s7,zero
lw a1,0x54(sp)
or a2,s1,zero
lw a0,0x50(sp)
sw v0,0x18(sp)
li v0,0x2
sw s0,0x10(sp)
lw t9,-0x7cd0(gp)
jalr t9
_sw v0,0x14(sp)
li a2,0x5
lw gp,0x20(sp)
lw v0,0x38(sp)
lw a3,0x44(sp)
lw a1,0x2c(sp)
lw t9,-0x7e60(gp)
lw a0,0x3c(sp)
sw s1,0x18(sp)
sw v0,0x14(sp)
jalr t9
_sw s0,0x10(sp)
lw gp,0x20(sp)
bne s2,zero,0x0005c0e4
_sw v0,0x68(sp)
lw v0,0x34(sp)
beq s4,v0,0x0005ba9c
_lw t9,-0x7d0c(gp)
or v0,zero,zero
lw a0,0x34(sp)
sll v0,v0,0x2
addu a1,s4,s5
addu v1,s4,v0
addu v0,a0,v0
lw a0,0x0(v1)
addiu v0,v0,0x4
addiu v1,v1,0x4
bne a1,v1,0x0005ba84
_sw a0,-0x4(v0)
lw t9,-0x7d0c(gp)
or a0,s3,zero
lw a2,0x40(sp)
or a3,s0,zero
lw a1,0x34(sp)
jalr t9
_addu s8,s8,s5
addiu v1,s5,-0x4
lw a0,0x4c(sp)
li a2,-0x1
lw gp,0x20(sp)
sw v0,0x0(a0)
addu v0,v1,s5
lw a0,0x48(sp)
addiu v1,s0,-0x1
addu v0,s4,v0
addu s8,a0,s8
lw a0,0x4(s8)
addiu v1,v1,-0x1
lw a1,0x0(v0)
addiu s8,s8,-0x4
bne a0,a1,0x0005bdd4
_addiu v0,v0,-0x4
bne v1,a2,0x0005badc
_nop
lw v0,0x64(sp)
or s8,zero,zero
addiu s7,v0,0x4
addu s7,s1,s7
lw t9,-0x7b2c(gp)
or a3,s0,zero
lw a2,0x40(sp)
lw a1,0x34(sp)
jalr t9
_lw a0,0x30(sp)
subu v0,s8,v0
lw gp,0x20(sp)
sw v0,0x0(s7)
lw t9,-0x7cdc(gp)
or a3,s6,zero
lw a2,0x30(sp)
or a0,s1,zero
jalr t9
_lw a1,0x2c(sp)
or a3,s6,zero
lw gp,0x20(sp)
or a2,s3,zero
lw s7,0x48(sp)
lw s8,0x3c(sp)
lw t9,-0x7cdc(gp)
or a0,s7,zero
jalr t9
_or a1,s8,zero
or a0,s7,zero
lw gp,0x20(sp)
or a2,s1,zero
lw a3,0x68(sp)
lw a1,0x54(sp)
sw s0,0x10(sp)
sw zero,0x18(sp)
lw t9,-0x7cd0(gp)
jalr t9
_sw zero,0x14(sp)
li a2,0x5
lw gp,0x20(sp)
or a0,s8,zero
lw v0,0x38(sp)
lw a3,0x44(sp)
lw a1,0x2c(sp)
lw t9,-0x7bc4(gp)
sw s1,0x18(sp)
sw v0,0x14(sp)
jalr t9
_sw s0,0x10(sp)
li a3,0x1
lw gp,0x20(sp)
or a2,s0,zero
lw a1,0x40(sp)
or a0,s1,zero
lw t9,-0x7ad4(gp)
jalr t9
_or s7,v0,zero
li a3,0x2
lw gp,0x20(sp)
or a2,s2,zero
lw v1,0x6c(sp)
or a0,s3,zero
lw a1,0x58(sp)
lw t9,-0x7ad4(gp)
jalr t9
_sw v0,0x0(v1)
lw v1,0x60(sp)
lw gp,0x20(sp)
beq s0,s2,0x0005c04c
_sw v0,0x0(v1)
lw v0,0x5c(sp)
bne v0,zero,0x0005bdf0
_lw t9,-0x7d0c(gp)
beq s3,s4,0x0005bc54
_or v0,zero,zero
lw v0,0x5c(sp)
addu a1,s4,s5
sll v1,v0,0x2
addu v0,s4,v1
addu v1,s3,v1
lw a0,0x0(v0)
addiu v1,v1,0x4
addiu v0,v0,0x4
bne a1,v0,0x0005bc3c
_sw a0,-0x4(v1)
or v0,zero,zero
lw v1,0x4c(sp)
sw v0,0x0(v1)
lw s5,0x30(sp)
or a1,s3,zero
lw t9,0x74(sp)
or a3,s6,zero
or a2,s1,zero
jalr t9
_or a0,s5,zero
or a2,s5,zero
lw gp,0x20(sp)
or a3,s6,zero
lw s5,0x2c(sp)
or a0,s1,zero
xor s7,s7,v0
lw t9,-0x7cdc(gp)
jalr t9
_or a1,s5,zero
or a2,s3,zero
lw gp,0x20(sp)
or a3,s6,zero
lw a1,0x3c(sp)
lw t9,-0x7cdc(gp)
jalr t9
_or a0,s5,zero
li v0,0x2
lw gp,0x20(sp)
or a3,s7,zero
lw a1,0x54(sp)
or a2,s1,zero
sw v0,0x18(sp)
li v0,0x1
or a0,s5,zero
sw s0,0x10(sp)
lw t9,-0x7cd0(gp)
jalr t9
_sw v0,0x14(sp)
or a2,s4,zero
lw gp,0x20(sp)
or a0,s1,zero
lw s3,0x44(sp)
or a3,s0,zero
lw t9,-0x7cdc(gp)
jalr t9
_or a1,s3,zero
lw v1,0x70(sp)
lw gp,0x20(sp)
lw a2,0x38(sp)
addu a0,s1,v1
lw v1,0x64(sp)
slt v0,s2,a2
lw t9,-0x7d8c(gp)
beq v0,zero,0x0005bdb4
_addu a1,s3,v1
lw a3,0x58(sp)
jalr t9
_sw s2,0x10(sp)
lw gp,0x20(sp)
lw v0,0x38(sp)
or a1,s0,zero
lw a3,0x48(sp)
or a0,s1,zero
lw a2,0x50(sp)
addu s2,v0,s2
lw v0,0x34(sp)
lw ra,0x9c(sp)
lw s8,0x98(sp)
lw s7,0x94(sp)
lw s6,0x90(sp)
lw s5,0x8c(sp)
lw s4,0x88(sp)
lw s3,0x84(sp)
lw s1,0x7c(sp)
lw s0,0x78(sp)
lw t9,-0x7c5c(gp)
sw s2,0xb0(sp)
sw v0,0xb4(sp)
lw s2,0x80(sp)
jr t9
_addiu sp,sp,0xa0
lui v0,0xaaaa
addiu s0,s2,-0x1
ori v0,v0,0xaaab
multu s0,v0
mfhi s0
srl s0,s0,0x1
b 0x0005b7fc
_addiu s0,s0,0x1
lw v0,0x38(sp)
or a3,a1,zero
lw a1,0x58(sp)
or a2,s2,zero
jalr t9
_sw v0,0x10(sp)
b 0x0005bd3c
_lw gp,0x20(sp)
lw v0,0x64(sp)
sltu a0,a1,a0
addiu s7,v0,0x4
beq a0,zero,0x0005c078
_addu s7,s1,s7
b 0x0005bb0c
_or s8,zero,zero
or a3,v0,zero
or a2,s3,zero
or a1,s4,zero
or a0,s3,zero
jalr t9
_or s8,v0,zero
beq v0,zero,0x0005c0ac
_slt v0,s8,s0
beq v0,zero,0x0005bc54
_li v0,0x1
lw v0,0x5c(sp)
addiu a1,s2,0x2
sw a1,0x5c(sp)
sll v0,v0,0x2
addu a0,s4,v0
addu v1,s3,v0
lw v0,0x0(a0)
addiu v0,v0,0x1
bne v0,zero,0x0005c0ac
_sw v0,0x0(v1)
sll v1,s2,0x2
addu a0,s4,v1
b 0x0005be68
_addu v1,s3,v1
lw v0,0x8(a0)
addiu a1,a1,0x1
addiu a0,a0,0x4
addiu v0,v0,0x1
bne v0,zero,0x0005c0a8
_sw v0,0x4(v1)
bne s0,a1,0x0005be50
_addiu v1,v1,0x4
b 0x0005bc54
_li v0,0x1
or a3,v0,zero
or a2,s3,zero
or a1,s4,zero
or a0,s3,zero
jalr t9
_or s6,v0,zero
beq v0,zero,0x0005c0c8
_lw gp,0x20(sp)
slt v0,s6,s0
beq v0,zero,0x0005b990
_li v0,0x1
addiu v0,s2,0x1
sll v1,v0,0x2
addiu v0,s2,0x2
addu a0,s4,v1
addu v1,s3,v1
lw a0,0x0(a0)
addiu a0,a0,0x1
bne a0,zero,0x0005c0cc
_sw a0,0x0(v1)
sll a0,s2,0x2
addu a1,s4,a0
b 0x0005bef4
_addu a0,s3,a0
lw v1,0x8(a1)
addiu a0,a0,0x4
addiu v0,v0,0x1
addiu a1,a1,0x4
addiu v1,v1,0x1
bne v1,zero,0x0005c0cc
_sw v1,0x4(a0)
bne s0,v0,0x0005bed8
_nop
b 0x0005b990
_li v0,0x1
lw t9,-0x7d0c(gp)
or a3,s0,zero
or a2,s4,zero
or a1,s3,zero
jalr t9
_or a0,s3,zero
addiu a3,s2,0x1
lw t1,0x4c(sp)
or a2,s1,zero
lw gp,0x20(sp)
or a1,s3,zero
lw a0,0x30(sp)
lw t0,0x0(t1)
lw v1,-0x7fc0(gp)
addu v0,t0,v0
addiu t9,v1,-0x4980
sw v0,0x0(t1)
bal 0x0005b680
_sw t9,0x74(sp)
addiu a3,s2,0x1
lw gp,0x20(sp)
or a0,s1,zero
lw a2,0x30(sp)
xor s7,s7,v0
lw t9,-0x7cdc(gp)
jalr t9
_lw a1,0x2c(sp)
addiu a3,s2,0x1
lw gp,0x20(sp)
or a2,s3,zero
lw a1,0x3c(sp)
lw t9,-0x7cdc(gp)
jalr t9
_lw a0,0x50(sp)
li v0,0x4
lw gp,0x20(sp)
or a3,s7,zero
lw a1,0x54(sp)
or a2,s1,zero
lw a0,0x50(sp)
sw v0,0x18(sp)
sw s6,0x14(sp)
addiu s6,s2,0x1
lw t9,-0x7cd0(gp)
jalr t9
_sw s0,0x10(sp)
li a2,0x5
lw gp,0x20(sp)
lw v0,0x38(sp)
lw a3,0x44(sp)
lw a1,0x2c(sp)
lw t9,-0x7e60(gp)
lw a0,0x3c(sp)
sw s1,0x18(sp)
sw v0,0x14(sp)
jalr t9
_sw s0,0x10(sp)
or a3,s0,zero
lw gp,0x20(sp)
or a1,s4,zero
lw a2,0x58(sp)
lw a0,0x34(sp)
lw t9,-0x7d0c(gp)
jalr t9
_sw v0,0x68(sp)
beq v0,zero,0x0005ba98
_lw gp,0x20(sp)
lw t9,-0x7d0c(gp)
or a3,s0,zero
lw a2,0x40(sp)
or a0,s3,zero
lw a1,0x34(sp)
jalr t9
_li s8,0x1
lw v1,0x64(sp)
addiu v0,v0,0x1
lw gp,0x20(sp)
addiu s7,v1,0x4
lw v1,0x4c(sp)
addu s7,s1,s7
b 0x0005bb0c
_sw v0,0x0(v1)
lw t9,-0x7d0c(gp)
or a0,s3,zero
or a3,s0,zero
or a2,s4,zero
jalr t9
_or a1,s3,zero
lw a0,0x4c(sp)
lw v1,0x0(a0)
addu v0,v1,v0
b 0x0005bc5c
_sw v0,0x0(a0)
lw t9,-0x7b2c(gp)
or a3,s0,zero
lw a2,0x34(sp)
lw a1,0x40(sp)
jalr t9
_lw a0,0x30(sp)
lw v0,0x68(sp)
lw gp,0x20(sp)
sw zero,0x0(s7)
nor v0,zero,v0
b 0x0005bb30
_sw v0,0x68(sp)
sw a1,0x5c(sp)
beq s3,s4,0x0005bc50
_lw v0,0x5c(sp)
slt v0,v0,s0
bne v0,zero,0x0005bc28
_or v0,zero,zero
b 0x0005bc58
_lw v1,0x4c(sp)
addiu v0,s2,0x1
beq s3,s4,0x0005b98c
_slt v1,v0,s0
bne v1,zero,0x0005b968
_nop
b 0x0005b990
_or v0,zero,zero
lw s7,0x34(sp)
or a3,s2,zero
lw t9,-0x7d0c(gp)
or a1,s4,zero
lw a2,0x58(sp)
jalr t9
_or a0,s7,zero
beq v0,zero,0x0005c160
_lw gp,0x20(sp)
slt v0,s2,s0
beq v0,zero,0x0005c014
_lw t9,-0x7d0c(gp)
sll a0,s2,0x2
addu a1,s4,a0
addu a0,s7,a0
lw v0,0x0(a1)
addiu v0,v0,0x1
bne v0,zero,0x0005c180
_sw v0,0x0(a0)
b 0x0005c150
_lw v0,0x5c(sp)
lw v1,0x4(a1)
addiu a0,a0,0x4
addiu a1,a1,0x4
addiu v1,v1,0x1
bne v1,zero,0x0005c164
_sw v1,0x0(a0)
bne s0,v0,0x0005c138
_addiu v0,v0,0x1
b 0x0005c014
_lw t9,-0x7d0c(gp)
or v0,s2,zero
lw v1,0x34(sp)
beq s4,v1,0x0005ba98
_slt v1,v0,s0
bne v1,zero,0x0005ba74
_lw a0,0x34(sp)
b 0x0005ba9c
_lw t9,-0x7d0c(gp)
b 0x0005c164
_lw v0,0x5c(sp)
(translation_unit "void __gmpn_toom63_mul(int param_1,int param_2,int param_3,int param_4,int param_5,int param_6)\n\n{\n  uint *puVar1;\n  int *piVar2;\n  bool bVar3;\n  undefined *puVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  int iVar20;\n  int *piVar21;\n  int iVar22;\n  int iVar23;\n  int *piVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  int iVar31;\n  int *piVar32;\n  int local_44;\n  uint local_38;\n  code *local_2c;\n  \n  if (param_3 < param_5 << 1) {\n    uVar27 = (param_5 - 1U) / 3;\n  }\n  else {\n    uVar27 = (param_3 - 1U) / 6;\n  }\n  iVar28 = uVar27 + 1;\n  iVar30 = iVar28 * 4;\n  iVar14 = iVar28 * 0x14;\n  param_3 = param_3 + iVar28 * -5;\n  iVar20 = param_1 + iVar14 + 8;\n  iVar15 = param_1 + iVar28 * 0xc;\n  param_5 = param_5 + iVar28 * -2;\n  uVar5 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)\n                    (iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1);\n  iVar16 = param_4 + iVar30;\n  uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,2);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  *(undefined4 *)(param_1 + iVar30) = uVar6;\n  iVar25 = iVar16 + iVar30;\n  puVar7 = (undefined4 *)(param_1 + (iVar28 * 6 + 3 + param_5) * 4);\n  iVar29 = param_1 + iVar28 * 0x18 + 0xc;\n  uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,4);\n  *puVar7 = uVar6;\n  iVar17 = param_1 + iVar28 * 0x10 + 4;\n  piVar21 = (int *)(param_1 + iVar28 * 0x1c + 0xc);\n  iVar26 = param_5 + 1;\n  iVar22 = param_6 + iVar28 * 0xc + 4;\n  iVar8 = param_6 + iVar28 * 0x18 + 8;\n  iVar23 = iVar28 * 2 + 1;\n  if (iVar28 == param_5) {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = *piVar21 + iVar9;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1);\n    iVar31 = param_5 + 1;\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28);\n    if (iVar9 == 0) goto LAB_0005ba9c;\nLAB_0005c014:\n    iVar10 = 1;\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n    *piVar21 = iVar9 + 1;\n  }\n  else {\n    iVar9 = param_5 + 1;\n    if (iVar9 == 0) {\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }\n    else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar31 = uVar27 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = iVar10;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    if (param_5 == 0) {\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }\n    else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    *piVar21 = iVar9;\n    puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);\n    iVar9 = param_6 + iVar28 * 0x1c;\n    do {\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar27 != 0xffffffff);\n    iVar10 = 0;\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n  }\nLAB_0005bb0c:\n  iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28);\n  *piVar32 = iVar10 - iVar8;\nLAB_0005bb30:\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_6,iVar20,iVar29,iVar31);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)(param_6,iVar23,param_1,local_38,iVar28,0,0);\n  uVar27 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)\n                     (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n  uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,1);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  *(undefined4 *)(param_1 + iVar30) = uVar6;\n  uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,2);\n  *puVar7 = uVar6;\n  if (iVar28 == param_5) {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    *piVar21 = *piVar21 + iVar8;\n    goto LAB_0005bc5c;\n  }\n  local_44 = iVar26;\n  if (iVar26 == 0) {\n    iVar8 = 0;\n    if (iVar29 != param_4) {\nLAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);\n      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);\n      do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);\nLAB_0005bc50:\n      iVar8 = 0;\n    }\n  }\n  else {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);\n    if (iVar8 != 0) {\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }\n    if (iVar29 == param_4) goto LAB_0005bc50;\n    iVar8 = 0;\n    if (local_44 < iVar28) goto LAB_0005bc28;\n  }\nLAB_0005bc58:\n  *piVar21 = iVar8;\nLAB_0005bc5c:\n  uVar5 = (*local_2c)(iVar17,iVar29,param_1,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(iVar15,iVar20,iVar29,iVar31);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n            (iVar15,iVar23,param_1,uVar27 ^ uVar5,iVar28,1,2);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,param_2,param_4,iVar28);\n  if (param_5 < param_3) {\n    (*(code *)PTR___gmpn_mul_000972b4)();\n  }\n  else {\n    (*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);\n  }\n                    /* WARNING: Could not recover jumptable at 0x0005bd8c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(param_1,iVar28,iVar22,param_6);\n  return;\n}\n\n" (function_definition "void __gmpn_toom63_mul(int param_1,int param_2,int param_3,int param_4,int param_5,int param_6)\n\n{\n  uint *puVar1;\n  int *piVar2;\n  bool bVar3;\n  undefined *puVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  int iVar20;\n  int *piVar21;\n  int iVar22;\n  int iVar23;\n  int *piVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  int iVar31;\n  int *piVar32;\n  int local_44;\n  uint local_38;\n  code *local_2c;\n  \n  if (param_3 < param_5 << 1) {\n    uVar27 = (param_5 - 1U) / 3;\n  }\n  else {\n    uVar27 = (param_3 - 1U) / 6;\n  }\n  iVar28 = uVar27 + 1;\n  iVar30 = iVar28 * 4;\n  iVar14 = iVar28 * 0x14;\n  param_3 = param_3 + iVar28 * -5;\n  iVar20 = param_1 + iVar14 + 8;\n  iVar15 = param_1 + iVar28 * 0xc;\n  param_5 = param_5 + iVar28 * -2;\n  uVar5 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)\n                    (iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1);\n  iVar16 = param_4 + iVar30;\n  uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,2);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  *(undefined4 *)(param_1 + iVar30) = uVar6;\n  iVar25 = iVar16 + iVar30;\n  puVar7 = (undefined4 *)(param_1 + (iVar28 * 6 + 3 + param_5) * 4);\n  iVar29 = param_1 + iVar28 * 0x18 + 0xc;\n  uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,4);\n  *puVar7 = uVar6;\n  iVar17 = param_1 + iVar28 * 0x10 + 4;\n  piVar21 = (int *)(param_1 + iVar28 * 0x1c + 0xc);\n  iVar26 = param_5 + 1;\n  iVar22 = param_6 + iVar28 * 0xc + 4;\n  iVar8 = param_6 + iVar28 * 0x18 + 8;\n  iVar23 = iVar28 * 2 + 1;\n  if (iVar28 == param_5) {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = *piVar21 + iVar9;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1);\n    iVar31 = param_5 + 1;\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28);\n    if (iVar9 == 0) goto LAB_0005ba9c;\nLAB_0005c014:\n    iVar10 = 1;\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n    *piVar21 = iVar9 + 1;\n  }\n  else {\n    iVar9 = param_5 + 1;\n    if (iVar9 == 0) {\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }\n    else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar31 = uVar27 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = iVar10;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    if (param_5 == 0) {\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }\n    else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    *piVar21 = iVar9;\n    puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);\n    iVar9 = param_6 + iVar28 * 0x1c;\n    do {\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar27 != 0xffffffff);\n    iVar10 = 0;\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n  }\nLAB_0005bb0c:\n  iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28);\n  *piVar32 = iVar10 - iVar8;\nLAB_0005bb30:\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_6,iVar20,iVar29,iVar31);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)(param_6,iVar23,param_1,local_38,iVar28,0,0);\n  uVar27 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)\n                     (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n  uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,1);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  *(undefined4 *)(param_1 + iVar30) = uVar6;\n  uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,2);\n  *puVar7 = uVar6;\n  if (iVar28 == param_5) {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    *piVar21 = *piVar21 + iVar8;\n    goto LAB_0005bc5c;\n  }\n  local_44 = iVar26;\n  if (iVar26 == 0) {\n    iVar8 = 0;\n    if (iVar29 != param_4) {\nLAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);\n      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);\n      do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);\nLAB_0005bc50:\n      iVar8 = 0;\n    }\n  }\n  else {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);\n    if (iVar8 != 0) {\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }\n    if (iVar29 == param_4) goto LAB_0005bc50;\n    iVar8 = 0;\n    if (local_44 < iVar28) goto LAB_0005bc28;\n  }\nLAB_0005bc58:\n  *piVar21 = iVar8;\nLAB_0005bc5c:\n  uVar5 = (*local_2c)(iVar17,iVar29,param_1,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(iVar15,iVar20,iVar29,iVar31);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n            (iVar15,iVar23,param_1,uVar27 ^ uVar5,iVar28,1,2);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,param_2,param_4,iVar28);\n  if (param_5 < param_3) {\n    (*(code *)PTR___gmpn_mul_000972b4)();\n  }\n  else {\n    (*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);\n  }\n                    /* WARNING: Could not recover jumptable at 0x0005bd8c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(param_1,iVar28,iVar22,param_6);\n  return;\n}" primitive_type (function_declarator "__gmpn_toom63_mul(int param_1,int param_2,int param_3,int param_4,int param_5,int param_6)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4,int param_5,int param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) ))) (compound_statement "{\n  uint *puVar1;\n  int *piVar2;\n  bool bVar3;\n  undefined *puVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  int iVar20;\n  int *piVar21;\n  int iVar22;\n  int iVar23;\n  int *piVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  int iVar31;\n  int *piVar32;\n  int local_44;\n  uint local_38;\n  code *local_2c;\n  \n  if (param_3 < param_5 << 1) {\n    uVar27 = (param_5 - 1U) / 3;\n  }\n  else {\n    uVar27 = (param_3 - 1U) / 6;\n  }\n  iVar28 = uVar27 + 1;\n  iVar30 = iVar28 * 4;\n  iVar14 = iVar28 * 0x14;\n  param_3 = param_3 + iVar28 * -5;\n  iVar20 = param_1 + iVar14 + 8;\n  iVar15 = param_1 + iVar28 * 0xc;\n  param_5 = param_5 + iVar28 * -2;\n  uVar5 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)\n                    (iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1);\n  iVar16 = param_4 + iVar30;\n  uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,2);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  *(undefined4 *)(param_1 + iVar30) = uVar6;\n  iVar25 = iVar16 + iVar30;\n  puVar7 = (undefined4 *)(param_1 + (iVar28 * 6 + 3 + param_5) * 4);\n  iVar29 = param_1 + iVar28 * 0x18 + 0xc;\n  uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,4);\n  *puVar7 = uVar6;\n  iVar17 = param_1 + iVar28 * 0x10 + 4;\n  piVar21 = (int *)(param_1 + iVar28 * 0x1c + 0xc);\n  iVar26 = param_5 + 1;\n  iVar22 = param_6 + iVar28 * 0xc + 4;\n  iVar8 = param_6 + iVar28 * 0x18 + 8;\n  iVar23 = iVar28 * 2 + 1;\n  if (iVar28 == param_5) {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = *piVar21 + iVar9;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1);\n    iVar31 = param_5 + 1;\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28);\n    if (iVar9 == 0) goto LAB_0005ba9c;\nLAB_0005c014:\n    iVar10 = 1;\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n    *piVar21 = iVar9 + 1;\n  }\n  else {\n    iVar9 = param_5 + 1;\n    if (iVar9 == 0) {\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }\n    else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar31 = uVar27 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = iVar10;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    if (param_5 == 0) {\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }\n    else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    *piVar21 = iVar9;\n    puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);\n    iVar9 = param_6 + iVar28 * 0x1c;\n    do {\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar27 != 0xffffffff);\n    iVar10 = 0;\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n  }\nLAB_0005bb0c:\n  iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28);\n  *piVar32 = iVar10 - iVar8;\nLAB_0005bb30:\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_6,iVar20,iVar29,iVar31);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)(param_6,iVar23,param_1,local_38,iVar28,0,0);\n  uVar27 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)\n                     (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n  uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,1);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  *(undefined4 *)(param_1 + iVar30) = uVar6;\n  uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,2);\n  *puVar7 = uVar6;\n  if (iVar28 == param_5) {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    *piVar21 = *piVar21 + iVar8;\n    goto LAB_0005bc5c;\n  }\n  local_44 = iVar26;\n  if (iVar26 == 0) {\n    iVar8 = 0;\n    if (iVar29 != param_4) {\nLAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);\n      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);\n      do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);\nLAB_0005bc50:\n      iVar8 = 0;\n    }\n  }\n  else {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);\n    if (iVar8 != 0) {\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }\n    if (iVar29 == param_4) goto LAB_0005bc50;\n    iVar8 = 0;\n    if (local_44 < iVar28) goto LAB_0005bc28;\n  }\nLAB_0005bc58:\n  *piVar21 = iVar8;\nLAB_0005bc5c:\n  uVar5 = (*local_2c)(iVar17,iVar29,param_1,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(iVar15,iVar20,iVar29,iVar31);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n            (iVar15,iVar23,param_1,uVar27 ^ uVar5,iVar28,1,2);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,param_2,param_4,iVar28);\n  if (param_5 < param_3) {\n    (*(code *)PTR___gmpn_mul_000972b4)();\n  }\n  else {\n    (*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);\n  }\n                    /* WARNING: Could not recover jumptable at 0x0005bd8c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(param_1,iVar28,iVar22,param_6);\n  return;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "int *piVar32;" primitive_type (pointer_declarator "*piVar32" * identifier) ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "code *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (if_statement "if (param_3 < param_5 << 1) {\n    uVar27 = (param_5 - 1U) / 3;\n  }\n  else {\n    uVar27 = (param_3 - 1U) / 6;\n  }" if (parenthesized_expression "(param_3 < param_5 << 1)" ( (binary_expression "param_3 < param_5 << 1" identifier < (binary_expression "param_5 << 1" identifier << number_literal)) )) (compound_statement "{\n    uVar27 = (param_5 - 1U) / 3;\n  }" { (expression_statement "uVar27 = (param_5 - 1U) / 3;" (assignment_expression "uVar27 = (param_5 - 1U) / 3" identifier = (binary_expression "(param_5 - 1U) / 3" (parenthesized_expression "(param_5 - 1U)" ( (binary_expression "param_5 - 1U" identifier - number_literal) )) / number_literal)) ;) }) (else_clause "else {\n    uVar27 = (param_3 - 1U) / 6;\n  }" else (compound_statement "{\n    uVar27 = (param_3 - 1U) / 6;\n  }" { (expression_statement "uVar27 = (param_3 - 1U) / 6;" (assignment_expression "uVar27 = (param_3 - 1U) / 6" identifier = (binary_expression "(param_3 - 1U) / 6" (parenthesized_expression "(param_3 - 1U)" ( (binary_expression "param_3 - 1U" identifier - number_literal) )) / number_literal)) ;) }))) (expression_statement "iVar28 = uVar27 + 1;" (assignment_expression "iVar28 = uVar27 + 1" identifier = (binary_expression "uVar27 + 1" identifier + number_literal)) ;) (expression_statement "iVar30 = iVar28 * 4;" (assignment_expression "iVar30 = iVar28 * 4" identifier = (binary_expression "iVar28 * 4" identifier * number_literal)) ;) (expression_statement "iVar14 = iVar28 * 0x14;" (assignment_expression "iVar14 = iVar28 * 0x14" identifier = (binary_expression "iVar28 * 0x14" identifier * number_literal)) ;) (expression_statement "param_3 = param_3 + iVar28 * -5;" (assignment_expression "param_3 = param_3 + iVar28 * -5" identifier = (binary_expression "param_3 + iVar28 * -5" identifier + (binary_expression "iVar28 * -5" identifier * number_literal))) ;) (expression_statement "iVar20 = param_1 + iVar14 + 8;" (assignment_expression "iVar20 = param_1 + iVar14 + 8" identifier = (binary_expression "param_1 + iVar14 + 8" (binary_expression "param_1 + iVar14" identifier + identifier) + number_literal)) ;) (expression_statement "iVar15 = param_1 + iVar28 * 0xc;" (assignment_expression "iVar15 = param_1 + iVar28 * 0xc" identifier = (binary_expression "param_1 + iVar28 * 0xc" identifier + (binary_expression "iVar28 * 0xc" identifier * number_literal))) ;) (expression_statement "param_5 = param_5 + iVar28 * -2;" (assignment_expression "param_5 = param_5 + iVar28 * -2" identifier = (binary_expression "param_5 + iVar28 * -2" identifier + (binary_expression "iVar28 * -2" identifier * number_literal))) ;) (expression_statement "uVar5 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)\n                    (iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1);" (assignment_expression "uVar5 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)\n                    (iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1)" identifier = (call_expression "(*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)\n                    (iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)" ( (pointer_expression "*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8" * (cast_expression "(code *)PTR___gmpn_toom_eval_pm2exp_000974d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1)" ( identifier , identifier , number_literal , identifier , identifier , identifier , number_literal , identifier )))) ;) (expression_statement "iVar16 = param_4 + iVar30;" (assignment_expression "iVar16 = param_4 + iVar30" identifier = (binary_expression "param_4 + iVar30" identifier + identifier)) ;) (expression_statement "uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,2);" (assignment_expression "uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,2)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,2)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009756c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009756c" * (cast_expression "(code *)PTR___gmpn_lshift_0009756c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar16,iVar28,2)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "puVar4 = PTR___gmpn_lshift_0009756c;" (assignment_expression "puVar4 = PTR___gmpn_lshift_0009756c" identifier = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + iVar30) = uVar6;" (assignment_expression "*(undefined4 *)(param_1 + iVar30) = uVar6" (pointer_expression "*(undefined4 *)(param_1 + iVar30)" * (cast_expression "(undefined4 *)(param_1 + iVar30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar30)" ( (binary_expression "param_1 + iVar30" identifier + identifier) )))) = identifier) ;) (expression_statement "iVar25 = iVar16 + iVar30;" (assignment_expression "iVar25 = iVar16 + iVar30" identifier = (binary_expression "iVar16 + iVar30" identifier + identifier)) ;) (expression_statement "puVar7 = (undefined4 *)(param_1 + (iVar28 * 6 + 3 + param_5) * 4);" (assignment_expression "puVar7 = (undefined4 *)(param_1 + (iVar28 * 6 + 3 + param_5) * 4)" identifier = (cast_expression "(undefined4 *)(param_1 + (iVar28 * 6 + 3 + param_5) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + (iVar28 * 6 + 3 + param_5) * 4)" ( (binary_expression "param_1 + (iVar28 * 6 + 3 + param_5) * 4" identifier + (binary_expression "(iVar28 * 6 + 3 + param_5) * 4" (parenthesized_expression "(iVar28 * 6 + 3 + param_5)" ( (binary_expression "iVar28 * 6 + 3 + param_5" (binary_expression "iVar28 * 6 + 3" (binary_expression "iVar28 * 6" identifier * number_literal) + number_literal) + identifier) )) * number_literal)) )))) ;) (expression_statement "iVar29 = param_1 + iVar28 * 0x18 + 0xc;" (assignment_expression "iVar29 = param_1 + iVar28 * 0x18 + 0xc" identifier = (binary_expression "param_1 + iVar28 * 0x18 + 0xc" (binary_expression "param_1 + iVar28 * 0x18" identifier + (binary_expression "iVar28 * 0x18" identifier * number_literal)) + number_literal)) ;) (expression_statement "uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,4);" (assignment_expression "uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,4)" identifier = (call_expression "(*(code *)puVar4)(iVar29,iVar25,param_5,4)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar29,iVar25,param_5,4)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "*puVar7 = uVar6;" (assignment_expression "*puVar7 = uVar6" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "iVar17 = param_1 + iVar28 * 0x10 + 4;" (assignment_expression "iVar17 = param_1 + iVar28 * 0x10 + 4" identifier = (binary_expression "param_1 + iVar28 * 0x10 + 4" (binary_expression "param_1 + iVar28 * 0x10" identifier + (binary_expression "iVar28 * 0x10" identifier * number_literal)) + number_literal)) ;) (expression_statement "piVar21 = (int *)(param_1 + iVar28 * 0x1c + 0xc);" (assignment_expression "piVar21 = (int *)(param_1 + iVar28 * 0x1c + 0xc)" identifier = (cast_expression "(int *)(param_1 + iVar28 * 0x1c + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar28 * 0x1c + 0xc)" ( (binary_expression "param_1 + iVar28 * 0x1c + 0xc" (binary_expression "param_1 + iVar28 * 0x1c" identifier + (binary_expression "iVar28 * 0x1c" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "iVar26 = param_5 + 1;" (assignment_expression "iVar26 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "iVar22 = param_6 + iVar28 * 0xc + 4;" (assignment_expression "iVar22 = param_6 + iVar28 * 0xc + 4" identifier = (binary_expression "param_6 + iVar28 * 0xc + 4" (binary_expression "param_6 + iVar28 * 0xc" identifier + (binary_expression "iVar28 * 0xc" identifier * number_literal)) + number_literal)) ;) (expression_statement "iVar8 = param_6 + iVar28 * 0x18 + 8;" (assignment_expression "iVar8 = param_6 + iVar28 * 0x18 + 8" identifier = (binary_expression "param_6 + iVar28 * 0x18 + 8" (binary_expression "param_6 + iVar28 * 0x18" identifier + (binary_expression "iVar28 * 0x18" identifier * number_literal)) + number_literal)) ;) (expression_statement "iVar23 = iVar28 * 2 + 1;" (assignment_expression "iVar23 = iVar28 * 2 + 1" identifier = (binary_expression "iVar28 * 2 + 1" (binary_expression "iVar28 * 2" identifier * number_literal) + number_literal)) ;) (if_statement "if (iVar28 == param_5) {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = *piVar21 + iVar9;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1);\n    iVar31 = param_5 + 1;\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28);\n    if (iVar9 == 0) goto LAB_0005ba9c;\nLAB_0005c014:\n    iVar10 = 1;\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n    *piVar21 = iVar9 + 1;\n  }\n  else {\n    iVar9 = param_5 + 1;\n    if (iVar9 == 0) {\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }\n    else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar31 = uVar27 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = iVar10;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    if (param_5 == 0) {\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }\n    else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    *piVar21 = iVar9;\n    puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);\n    iVar9 = param_6 + iVar28 * 0x1c;\n    do {\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar27 != 0xffffffff);\n    iVar10 = 0;\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n  }" if (parenthesized_expression "(iVar28 == param_5)" ( (binary_expression "iVar28 == param_5" identifier == identifier) )) (compound_statement "{\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = *piVar21 + iVar9;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1);\n    iVar31 = param_5 + 1;\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28);\n    if (iVar9 == 0) goto LAB_0005ba9c;\nLAB_0005c014:\n    iVar10 = 1;\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n    *piVar21 = iVar9 + 1;\n  }" { (expression_statement "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);" (assignment_expression "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar29,iVar29,param_4,iVar28)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "local_2c = (code *)(PTR_LAB_00097080 + -0x4980);" (assignment_expression "local_2c = (code *)(PTR_LAB_00097080 + -0x4980)" identifier = (cast_expression "(code *)(PTR_LAB_00097080 + -0x4980)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00097080 + -0x4980)" ( (binary_expression "PTR_LAB_00097080 + -0x4980" identifier + number_literal) )))) ;) (expression_statement "*piVar21 = *piVar21 + iVar9;" (assignment_expression "*piVar21 = *piVar21 + iVar9" (pointer_expression "*piVar21" * identifier) = (binary_expression "*piVar21 + iVar9" (pointer_expression "*piVar21" * identifier) + identifier)) ;) (expression_statement "uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1);" (assignment_expression "uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1)" identifier = (call_expression "FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1)" identifier (argument_list "(iVar17,iVar29,param_1,param_5 + 1)" ( identifier , identifier , identifier , (binary_expression "param_5 + 1" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar15,iVar17,param_5 + 1)" ( identifier , identifier , identifier , (binary_expression "param_5 + 1" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar22,iVar20,iVar29,param_5 + 1)" ( identifier , identifier , identifier , (binary_expression "param_5 + 1" identifier + number_literal) ))) ;) (expression_statement "iVar31 = param_5 + 1;" (assignment_expression "iVar31 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);" (call_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)" ( (pointer_expression "*(code *)PTR___gmpn_toom_couple_handling_00097370" * (cast_expression "(code *)PTR___gmpn_toom_couple_handling_00097370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4)" ( identifier , identifier , identifier , (binary_expression "uVar5 ^ uVar11" identifier ^ identifier) , identifier , number_literal , number_literal ))) ;) (expression_statement "local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);" (assignment_expression "local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" identifier = (call_expression "(*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_pm1_000971e0)" ( (pointer_expression "*(code *)PTR___gmpn_toom_eval_pm1_000971e0" * (cast_expression "(code *)PTR___gmpn_toom_eval_pm1_000971e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" ( identifier , identifier , number_literal , identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28);" (assignment_expression "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8,param_4,iVar25,iVar28)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar9 == 0) goto LAB_0005ba9c;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0005ba9c;" goto statement_identifier ;)) (labeled_statement "LAB_0005c014:\n    iVar10 = 1;" statement_identifier : (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;)) (expression_statement "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);" (assignment_expression "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar29,iVar8,iVar16,iVar28)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "piVar32 = (int *)(param_1 + iVar14 + 4);" (assignment_expression "piVar32 = (int *)(param_1 + iVar14 + 4)" identifier = (cast_expression "(int *)(param_1 + iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar14 + 4)" ( (binary_expression "param_1 + iVar14 + 4" (binary_expression "param_1 + iVar14" identifier + identifier) + number_literal) )))) ;) (expression_statement "*piVar21 = iVar9 + 1;" (assignment_expression "*piVar21 = iVar9 + 1" (pointer_expression "*piVar21" * identifier) = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n    iVar9 = param_5 + 1;\n    if (iVar9 == 0) {\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }\n    else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar31 = uVar27 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = iVar10;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    if (param_5 == 0) {\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }\n    else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    *piVar21 = iVar9;\n    puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);\n    iVar9 = param_6 + iVar28 * 0x1c;\n    do {\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar27 != 0xffffffff);\n    iVar10 = 0;\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n  }" else (compound_statement "{\n    iVar9 = param_5 + 1;\n    if (iVar9 == 0) {\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }\n    else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar31 = uVar27 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = iVar10;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    if (param_5 == 0) {\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }\n    else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    *piVar21 = iVar9;\n    puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);\n    iVar9 = param_6 + iVar28 * 0x1c;\n    do {\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar27 != 0xffffffff);\n    iVar10 = 0;\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n  }" { (expression_statement "iVar9 = param_5 + 1;" (assignment_expression "iVar9 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (if_statement "if (iVar9 == 0) {\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }\n    else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (if_statement "if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }" if (parenthesized_expression "(iVar29 != param_4)" ( (binary_expression "iVar29 != param_4" identifier != identifier) )) (compound_statement "{\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }" { (labeled_statement "LAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);" statement_identifier : (expression_statement "puVar18 = (undefined4 *)(param_4 + iVar9 * 4);" (assignment_expression "puVar18 = (undefined4 *)(param_4 + iVar9 * 4)" identifier = (cast_expression "(undefined4 *)(param_4 + iVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + iVar9 * 4)" ( (binary_expression "param_4 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) ;)) (expression_statement "puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);" (assignment_expression "puVar13 = (undefined4 *)(iVar29 + iVar9 * 4)" identifier = (cast_expression "(undefined4 *)(iVar29 + iVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + iVar9 * 4)" ( (binary_expression "iVar29 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) ;) (do_statement "do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));" do (compound_statement "{\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        }" { (expression_statement "uVar6 = *puVar18;" (assignment_expression "uVar6 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "puVar18 = puVar18 + 1;" (assignment_expression "puVar18 = puVar18 + 1" identifier = (binary_expression "puVar18 + 1" identifier + number_literal)) ;) (expression_statement "*puVar13 = uVar6;" (assignment_expression "*puVar13 = uVar6" (pointer_expression "*puVar13" * identifier) = identifier) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar18 != (undefined4 *)(param_4 + iVar30))" ( (binary_expression "puVar18 != (undefined4 *)(param_4 + iVar30)" identifier != (cast_expression "(undefined4 *)(param_4 + iVar30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + iVar30)" ( (binary_expression "param_4 + iVar30" identifier + identifier) )))) )) ;) })) (labeled_statement "LAB_0005b98c:\n      iVar10 = 0;" statement_identifier : (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }" else (compound_statement "{\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }" { (expression_statement "iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);" (assignment_expression "iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar29,param_4,iVar29,iVar9)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }" { (expression_statement "iVar9 = param_5 + 1;" (assignment_expression "iVar9 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;" statement_identifier : (if_statement "if (iVar29 == param_4) goto LAB_0005b98c;" if (parenthesized_expression "(iVar29 == param_4)" ( (binary_expression "iVar29 == param_4" identifier == identifier) )) (goto_statement "goto LAB_0005b98c;" goto statement_identifier ;))) (if_statement "if (iVar9 < iVar28) goto LAB_0005b968;" if (parenthesized_expression "(iVar9 < iVar28)" ( (binary_expression "iVar9 < iVar28" identifier < identifier) )) (goto_statement "goto LAB_0005b968;" goto statement_identifier ;)) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }" else (compound_statement "{\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }" { (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (if_statement "if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }" if (parenthesized_expression "(iVar9 < iVar28)" ( (binary_expression "iVar9 < iVar28" identifier < identifier) )) (compound_statement "{\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }" { (expression_statement "iVar31 = (param_5 + 1) * 4;" (assignment_expression "iVar31 = (param_5 + 1) * 4" identifier = (binary_expression "(param_5 + 1) * 4" (parenthesized_expression "(param_5 + 1)" ( (binary_expression "param_5 + 1" identifier + number_literal) )) * number_literal)) ;) (expression_statement "iVar9 = param_5 + 2;" (assignment_expression "iVar9 = param_5 + 2" identifier = (binary_expression "param_5 + 2" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_4 + iVar31) + 1;" (assignment_expression "iVar10 = *(int *)(param_4 + iVar31) + 1" identifier = (binary_expression "*(int *)(param_4 + iVar31) + 1" (pointer_expression "*(int *)(param_4 + iVar31)" * (cast_expression "(int *)(param_4 + iVar31)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + iVar31)" ( (binary_expression "param_4 + iVar31" identifier + identifier) )))) + number_literal)) ;) (expression_statement "*(int *)(iVar29 + iVar31) = iVar10;" (assignment_expression "*(int *)(iVar29 + iVar31) = iVar10" (pointer_expression "*(int *)(iVar29 + iVar31)" * (cast_expression "(int *)(iVar29 + iVar31)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + iVar31)" ( (binary_expression "iVar29 + iVar31" identifier + identifier) )))) = identifier) ;) (if_statement "if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }" { (expression_statement "iVar10 = param_4 + param_5 * 4;" (assignment_expression "iVar10 = param_4 + param_5 * 4" identifier = (binary_expression "param_4 + param_5 * 4" identifier + (binary_expression "param_5 * 4" identifier * number_literal))) ;) (expression_statement "iVar31 = iVar29 + param_5 * 4;" (assignment_expression "iVar31 = iVar29 + param_5 * 4" identifier = (binary_expression "iVar29 + param_5 * 4" identifier + (binary_expression "param_5 * 4" identifier * number_literal))) ;) (do_statement "do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);" do (compound_statement "{\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            }" { (if_statement "if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }" if (parenthesized_expression "(iVar28 == iVar9)" ( (binary_expression "iVar28 == iVar9" identifier == identifier) )) (compound_statement "{\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }" { (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0005b990;" goto statement_identifier ;) })) (expression_statement "piVar32 = (int *)(iVar10 + 8);" (assignment_expression "piVar32 = (int *)(iVar10 + 8)" identifier = (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = iVar10 + 4;" (assignment_expression "iVar10 = iVar10 + 4" identifier = (binary_expression "iVar10 + 4" identifier + number_literal)) ;) (expression_statement "iVar19 = *piVar32 + 1;" (assignment_expression "iVar19 = *piVar32 + 1" identifier = (binary_expression "*piVar32 + 1" (pointer_expression "*piVar32" * identifier) + number_literal)) ;) (expression_statement "*(int *)(iVar31 + 8) = iVar19;" (assignment_expression "*(int *)(iVar31 + 8) = iVar19" (pointer_expression "*(int *)(iVar31 + 8)" * (cast_expression "(int *)(iVar31 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 8)" ( (binary_expression "iVar31 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar31 = iVar31 + 4;" (assignment_expression "iVar31 = iVar31 + 4" identifier = (binary_expression "iVar31 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) ;) })) (goto_statement "goto LAB_0005c0cc;" goto statement_identifier ;) })) }))) }))) (labeled_statement "LAB_0005b990:\n    iVar31 = uVar27 + 2;" statement_identifier : (expression_statement "iVar31 = uVar27 + 2;" (assignment_expression "iVar31 = uVar27 + 2" identifier = (binary_expression "uVar27 + 2" identifier + number_literal)) ;)) (expression_statement "local_2c = (code *)(PTR_LAB_00097080 + -0x4980);" (assignment_expression "local_2c = (code *)(PTR_LAB_00097080 + -0x4980)" identifier = (cast_expression "(code *)(PTR_LAB_00097080 + -0x4980)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00097080 + -0x4980)" ( (binary_expression "PTR_LAB_00097080 + -0x4980" identifier + number_literal) )))) ;) (expression_statement "*piVar21 = iVar10;" (assignment_expression "*piVar21 = iVar10" (pointer_expression "*piVar21" * identifier) = identifier) ;) (expression_statement "uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);" (assignment_expression "uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31)" identifier = (call_expression "FUN_0005b680(iVar17,iVar29,param_1,iVar31)" identifier (argument_list "(iVar17,iVar29,param_1,iVar31)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar15,iVar17,iVar31)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar22,iVar20,iVar29,iVar31)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);" (call_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)" ( (pointer_expression "*(code *)PTR___gmpn_toom_couple_handling_00097370" * (cast_expression "(code *)PTR___gmpn_toom_couple_handling_00097370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4)" ( identifier , identifier , identifier , (binary_expression "uVar5 ^ uVar11" identifier ^ identifier) , identifier , number_literal , number_literal ))) ;) (expression_statement "local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);" (assignment_expression "local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" identifier = (call_expression "(*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_pm1_000971e0)" ( (pointer_expression "*(code *)PTR___gmpn_toom_eval_pm1_000971e0" * (cast_expression "(code *)PTR___gmpn_toom_eval_pm1_000971e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" ( identifier , identifier , number_literal , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (param_5 == 0) {\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }\n    else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }" { (if_statement "if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }" if (parenthesized_expression "(param_4 != iVar8)" ( (binary_expression "param_4 != iVar8" identifier != identifier) )) (compound_statement "{\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);" statement_identifier : (expression_statement "puVar18 = (undefined4 *)(param_4 + iVar9 * 4);" (assignment_expression "puVar18 = (undefined4 *)(param_4 + iVar9 * 4)" identifier = (cast_expression "(undefined4 *)(param_4 + iVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + iVar9 * 4)" ( (binary_expression "param_4 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) ;)) (expression_statement "puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);" (assignment_expression "puVar13 = (undefined4 *)(iVar8 + iVar9 * 4)" identifier = (cast_expression "(undefined4 *)(iVar8 + iVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar9 * 4)" ( (binary_expression "iVar8 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) ;) (do_statement "do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);" do (compound_statement "{\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        }" { (expression_statement "uVar6 = *puVar18;" (assignment_expression "uVar6 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "puVar18 = puVar18 + 1;" (assignment_expression "puVar18 = puVar18 + 1" identifier = (binary_expression "puVar18 + 1" identifier + number_literal)) ;) (expression_statement "*puVar13 = uVar6;" (assignment_expression "*puVar13 = uVar6" (pointer_expression "*puVar13" * identifier) = identifier) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((undefined4 *)(param_4 + iVar30) != puVar18)" ( (binary_expression "(undefined4 *)(param_4 + iVar30) != puVar18" (cast_expression "(undefined4 *)(param_4 + iVar30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + iVar30)" ( (binary_expression "param_4 + iVar30" identifier + identifier) ))) != identifier) )) ;) })) }) (else_clause "else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }" else (compound_statement "{\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }" { (expression_statement "iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);" (assignment_expression "iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8,param_4,iVar25,param_5)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar9 = param_5;" (assignment_expression "iVar9 = param_5" identifier = identifier) ;) (if_statement "if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }" { (if_statement "if (iVar28 <= param_5) goto LAB_0005c014;" if (parenthesized_expression "(iVar28 <= param_5)" ( (binary_expression "iVar28 <= param_5" identifier <= identifier) )) (goto_statement "goto LAB_0005c014;" goto statement_identifier ;)) (expression_statement "piVar32 = (int *)(param_4 + param_5 * 4);" (assignment_expression "piVar32 = (int *)(param_4 + param_5 * 4)" identifier = (cast_expression "(int *)(param_4 + param_5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + param_5 * 4)" ( (binary_expression "param_4 + param_5 * 4" identifier + (binary_expression "param_5 * 4" identifier * number_literal)) )))) ;) (expression_statement "piVar24 = (int *)(iVar8 + param_5 * 4);" (assignment_expression "piVar24 = (int *)(iVar8 + param_5 * 4)" identifier = (cast_expression "(int *)(iVar8 + param_5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + param_5 * 4)" ( (binary_expression "iVar8 + param_5 * 4" identifier + (binary_expression "param_5 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar10 = *piVar32 + 1;" (assignment_expression "iVar10 = *piVar32 + 1" identifier = (binary_expression "*piVar32 + 1" (pointer_expression "*piVar32" * identifier) + number_literal)) ;) (expression_statement "*piVar24 = iVar10;" (assignment_expression "*piVar24 = iVar10" (pointer_expression "*piVar24" * identifier) = identifier) ;) (expression_statement "iVar9 = iVar26;" (assignment_expression "iVar9 = iVar26" identifier = identifier) ;) (while_statement "while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }" while (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }" { (expression_statement "bVar3 = iVar28 == iVar9;" (assignment_expression "bVar3 = iVar28 == iVar9" identifier = (binary_expression "iVar28 == iVar9" identifier == identifier)) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (if_statement "if (bVar3) goto LAB_0005c014;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_0005c014;" goto statement_identifier ;)) (expression_statement "piVar2 = piVar32 + 1;" (assignment_expression "piVar2 = piVar32 + 1" identifier = (binary_expression "piVar32 + 1" identifier + number_literal)) ;) (expression_statement "piVar24 = piVar24 + 1;" (assignment_expression "piVar24 = piVar24 + 1" identifier = (binary_expression "piVar24 + 1" identifier + number_literal)) ;) (expression_statement "piVar32 = piVar32 + 1;" (assignment_expression "piVar32 = piVar32 + 1" identifier = (binary_expression "piVar32 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *piVar2 + 1;" (assignment_expression "iVar10 = *piVar2 + 1" identifier = (binary_expression "*piVar2 + 1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (expression_statement "*piVar24 = iVar10;" (assignment_expression "*piVar24 = iVar10" (pointer_expression "*piVar24" * identifier) = identifier) ;) })) })) (if_statement "if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;" if (parenthesized_expression "((param_4 != iVar8) && (iVar9 < iVar28))" ( (binary_expression "(param_4 != iVar8) && (iVar9 < iVar28)" (parenthesized_expression "(param_4 != iVar8)" ( (binary_expression "param_4 != iVar8" identifier != identifier) )) && (parenthesized_expression "(iVar9 < iVar28)" ( (binary_expression "iVar9 < iVar28" identifier < identifier) ))) )) (goto_statement "goto LAB_0005ba74;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0005ba9c:\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);" statement_identifier : (expression_statement "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);" (assignment_expression "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar29,iVar8,iVar16,iVar28)" ( identifier , identifier , identifier , identifier )))) ;)) (expression_statement "*piVar21 = iVar9;" (assignment_expression "*piVar21 = iVar9" (pointer_expression "*piVar21" * identifier) = identifier) ;) (expression_statement "puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);" (assignment_expression "puVar12 = (uint *)(param_4 + iVar28 * 8 + -4)" identifier = (cast_expression "(uint *)(param_4 + iVar28 * 8 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + iVar28 * 8 + -4)" ( (binary_expression "param_4 + iVar28 * 8 + -4" (binary_expression "param_4 + iVar28 * 8" identifier + (binary_expression "iVar28 * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "iVar9 = param_6 + iVar28 * 0x1c;" (assignment_expression "iVar9 = param_6 + iVar28 * 0x1c" identifier = (binary_expression "param_6 + iVar28 * 0x1c" identifier + (binary_expression "iVar28 * 0x1c" identifier * number_literal))) ;) (do_statement "do {\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar27 != 0xffffffff);" do (compound_statement "{\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    }" { (expression_statement "puVar1 = (uint *)(iVar9 + 4);" (assignment_expression "puVar1 = (uint *)(iVar9 + 4)" identifier = (cast_expression "(uint *)(iVar9 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) ;) (expression_statement "uVar27 = uVar27 - 1;" (assignment_expression "uVar27 = uVar27 - 1" identifier = (binary_expression "uVar27 - 1" identifier - number_literal)) ;) (expression_statement "uVar5 = *puVar12;" (assignment_expression "uVar5 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "iVar9 = iVar9 + -4;" (assignment_expression "iVar9 = iVar9 + -4" identifier = (binary_expression "iVar9 + -4" identifier + number_literal)) ;) (expression_statement "puVar12 = puVar12 + -1;" (assignment_expression "puVar12 = puVar12 + -1" identifier = (binary_expression "puVar12 + -1" identifier + number_literal)) ;) (if_statement "if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }" if (parenthesized_expression "(*puVar1 != uVar5)" ( (binary_expression "*puVar1 != uVar5" (pointer_expression "*puVar1" * identifier) != identifier) )) (compound_statement "{\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }" { (expression_statement "piVar32 = (int *)(param_1 + iVar14 + 4);" (assignment_expression "piVar32 = (int *)(param_1 + iVar14 + 4)" identifier = (cast_expression "(int *)(param_1 + iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar14 + 4)" ( (binary_expression "param_1 + iVar14 + 4" (binary_expression "param_1 + iVar14" identifier + identifier) + number_literal) )))) ;) (if_statement "if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }" if (parenthesized_expression "(uVar5 < *puVar1)" ( (binary_expression "uVar5 < *puVar1" identifier < (pointer_expression "*puVar1" * identifier)) )) (compound_statement "{\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0005bb0c;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);" (call_expression "(*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_sub_n_00097514)" ( (pointer_expression "*(code *)PTR___gmpn_sub_n_00097514" * (cast_expression "(code *)PTR___gmpn_sub_n_00097514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar17,iVar16,iVar8,iVar28)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*piVar32 = 0;" (assignment_expression "*piVar32 = 0" (pointer_expression "*piVar32" * identifier) = number_literal) ;) (expression_statement "local_38 = ~local_38;" (assignment_expression "local_38 = ~local_38" identifier = (unary_expression "~local_38" ~ identifier)) ;) (goto_statement "goto LAB_0005bb30;" goto statement_identifier ;) })) }) while (parenthesized_expression "(uVar27 != 0xffffffff)" ( (binary_expression "uVar27 != 0xffffffff" identifier != number_literal) )) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "piVar32 = (int *)(param_1 + iVar14 + 4);" (assignment_expression "piVar32 = (int *)(param_1 + iVar14 + 4)" identifier = (cast_expression "(int *)(param_1 + iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar14 + 4)" ( (binary_expression "param_1 + iVar14 + 4" (binary_expression "param_1 + iVar14" identifier + identifier) + number_literal) )))) ;) }))) (labeled_statement "LAB_0005bb0c:\n  iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28);" statement_identifier : (expression_statement "iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28)" identifier = (call_expression "(*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_sub_n_00097514)" ( (pointer_expression "*(code *)PTR___gmpn_sub_n_00097514" * (cast_expression "(code *)PTR___gmpn_sub_n_00097514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar17,iVar8,iVar16,iVar28)" ( identifier , identifier , identifier , identifier )))) ;)) (expression_statement "*piVar32 = iVar10 - iVar8;" (assignment_expression "*piVar32 = iVar10 - iVar8" (pointer_expression "*piVar32" * identifier) = (binary_expression "iVar10 - iVar8" identifier - identifier)) ;) (labeled_statement "LAB_0005bb30:\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);" statement_identifier : (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar15,iVar17,iVar31)" ( identifier , identifier , identifier , identifier ))) ;)) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(param_6,iVar20,iVar29,iVar31);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(param_6,iVar20,iVar29,iVar31)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,iVar20,iVar29,iVar31)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom_couple_handling_00097370)(param_6,iVar23,param_1,local_38,iVar28,0,0);" (call_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)(param_6,iVar23,param_1,local_38,iVar28,0,0)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)" ( (pointer_expression "*(code *)PTR___gmpn_toom_couple_handling_00097370" * (cast_expression "(code *)PTR___gmpn_toom_couple_handling_00097370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,iVar23,param_1,local_38,iVar28,0,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "uVar27 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)\n                     (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);" (assignment_expression "uVar27 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)\n                     (iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" identifier = (call_expression "(*(code *)PTR___gmpn_toom_eval_pm2_0009747c)\n                     (iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_pm2_0009747c)" ( (pointer_expression "*(code *)PTR___gmpn_toom_eval_pm2_0009747c" * (cast_expression "(code *)PTR___gmpn_toom_eval_pm2_0009747c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" ( identifier , identifier , number_literal , identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,1);" (assignment_expression "uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,1)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,1)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009756c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009756c" * (cast_expression "(code *)PTR___gmpn_lshift_0009756c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar16,iVar28,1)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "puVar4 = PTR___gmpn_lshift_0009756c;" (assignment_expression "puVar4 = PTR___gmpn_lshift_0009756c" identifier = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + iVar30) = uVar6;" (assignment_expression "*(undefined4 *)(param_1 + iVar30) = uVar6" (pointer_expression "*(undefined4 *)(param_1 + iVar30)" * (cast_expression "(undefined4 *)(param_1 + iVar30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar30)" ( (binary_expression "param_1 + iVar30" identifier + identifier) )))) = identifier) ;) (expression_statement "uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,2);" (assignment_expression "uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,2)" identifier = (call_expression "(*(code *)puVar4)(iVar29,iVar25,param_5,2)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar29,iVar25,param_5,2)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "*puVar7 = uVar6;" (assignment_expression "*puVar7 = uVar6" (pointer_expression "*puVar7" * identifier) = identifier) ;) (if_statement "if (iVar28 == param_5) {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    *piVar21 = *piVar21 + iVar8;\n    goto LAB_0005bc5c;\n  }" if (parenthesized_expression "(iVar28 == param_5)" ( (binary_expression "iVar28 == param_5" identifier == identifier) )) (compound_statement "{\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    *piVar21 = *piVar21 + iVar8;\n    goto LAB_0005bc5c;\n  }" { (expression_statement "iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar29,iVar29,param_4,iVar28)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*piVar21 = *piVar21 + iVar8;" (assignment_expression "*piVar21 = *piVar21 + iVar8" (pointer_expression "*piVar21" * identifier) = (binary_expression "*piVar21 + iVar8" (pointer_expression "*piVar21" * identifier) + identifier)) ;) (goto_statement "goto LAB_0005bc5c;" goto statement_identifier ;) })) (expression_statement "local_44 = iVar26;" (assignment_expression "local_44 = iVar26" identifier = identifier) ;) (if_statement "if (iVar26 == 0) {\n    iVar8 = 0;\n    if (iVar29 != param_4) {\nLAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);\n      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);\n      do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);\nLAB_0005bc50:\n      iVar8 = 0;\n    }\n  }\n  else {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);\n    if (iVar8 != 0) {\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }\n    if (iVar29 == param_4) goto LAB_0005bc50;\n    iVar8 = 0;\n    if (local_44 < iVar28) goto LAB_0005bc28;\n  }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar8 = 0;\n    if (iVar29 != param_4) {\nLAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);\n      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);\n      do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);\nLAB_0005bc50:\n      iVar8 = 0;\n    }\n  }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (iVar29 != param_4) {\nLAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);\n      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);\n      do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);\nLAB_0005bc50:\n      iVar8 = 0;\n    }" if (parenthesized_expression "(iVar29 != param_4)" ( (binary_expression "iVar29 != param_4" identifier != identifier) )) (compound_statement "{\nLAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);\n      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);\n      do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);\nLAB_0005bc50:\n      iVar8 = 0;\n    }" { (labeled_statement "LAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);" statement_identifier : (expression_statement "puVar13 = (undefined4 *)(param_4 + local_44 * 4);" (assignment_expression "puVar13 = (undefined4 *)(param_4 + local_44 * 4)" identifier = (cast_expression "(undefined4 *)(param_4 + local_44 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + local_44 * 4)" ( (binary_expression "param_4 + local_44 * 4" identifier + (binary_expression "local_44 * 4" identifier * number_literal)) )))) ;)) (expression_statement "puVar7 = (undefined4 *)(iVar29 + local_44 * 4);" (assignment_expression "puVar7 = (undefined4 *)(iVar29 + local_44 * 4)" identifier = (cast_expression "(undefined4 *)(iVar29 + local_44 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + local_44 * 4)" ( (binary_expression "iVar29 + local_44 * 4" identifier + (binary_expression "local_44 * 4" identifier * number_literal)) )))) ;) (do_statement "do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);" do (compound_statement "{\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      }" { (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) (expression_statement "*puVar7 = uVar6;" (assignment_expression "*puVar7 = uVar6" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((undefined4 *)(param_4 + iVar30) != puVar13)" ( (binary_expression "(undefined4 *)(param_4 + iVar30) != puVar13" (cast_expression "(undefined4 *)(param_4 + iVar30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + iVar30)" ( (binary_expression "param_4 + iVar30" identifier + identifier) ))) != identifier) )) ;) (labeled_statement "LAB_0005bc50:\n      iVar8 = 0;" statement_identifier : (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;)) })) }) (else_clause "else {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);\n    if (iVar8 != 0) {\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }\n    if (iVar29 == param_4) goto LAB_0005bc50;\n    iVar8 = 0;\n    if (local_44 < iVar28) goto LAB_0005bc28;\n  }" else (compound_statement "{\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);\n    if (iVar8 != 0) {\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }\n    if (iVar29 == param_4) goto LAB_0005bc50;\n    iVar8 = 0;\n    if (local_44 < iVar28) goto LAB_0005bc28;\n  }" { (expression_statement "iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar29,param_4,iVar29,iVar26)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar8 != 0) {\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }" { (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) (if_statement "if (iVar28 <= iVar26) goto LAB_0005bc58;" if (parenthesized_expression "(iVar28 <= iVar26)" ( (binary_expression "iVar28 <= iVar26" identifier <= identifier) )) (goto_statement "goto LAB_0005bc58;" goto statement_identifier ;)) (expression_statement "local_44 = param_5 + 2;" (assignment_expression "local_44 = param_5 + 2" identifier = (binary_expression "param_5 + 2" identifier + number_literal)) ;) (expression_statement "iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;" (assignment_expression "iVar8 = *(int *)(param_4 + iVar26 * 4) + 1" identifier = (binary_expression "*(int *)(param_4 + iVar26 * 4) + 1" (pointer_expression "*(int *)(param_4 + iVar26 * 4)" * (cast_expression "(int *)(param_4 + iVar26 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + iVar26 * 4)" ( (binary_expression "param_4 + iVar26 * 4" identifier + (binary_expression "iVar26 * 4" identifier * number_literal)) )))) + number_literal)) ;) (expression_statement "*(int *)(iVar29 + iVar26 * 4) = iVar8;" (assignment_expression "*(int *)(iVar29 + iVar26 * 4) = iVar8" (pointer_expression "*(int *)(iVar29 + iVar26 * 4)" * (cast_expression "(int *)(iVar29 + iVar26 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + iVar26 * 4)" ( (binary_expression "iVar29 + iVar26 * 4" identifier + (binary_expression "iVar26 * 4" identifier * number_literal)) )))) = identifier) ;) (if_statement "if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }" { (expression_statement "iVar16 = param_4 + param_5 * 4;" (assignment_expression "iVar16 = param_4 + param_5 * 4" identifier = (binary_expression "param_4 + param_5 * 4" identifier + (binary_expression "param_5 * 4" identifier * number_literal))) ;) (expression_statement "iVar8 = iVar29 + param_5 * 4;" (assignment_expression "iVar8 = iVar29 + param_5 * 4" identifier = (binary_expression "iVar29 + param_5 * 4" identifier + (binary_expression "param_5 * 4" identifier * number_literal))) ;) (do_statement "do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);" do (compound_statement "{\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        }" { (if_statement "if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }" if (parenthesized_expression "(iVar28 == local_44)" ( (binary_expression "iVar28 == local_44" identifier == identifier) )) (compound_statement "{\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }" { (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0005bc58;" goto statement_identifier ;) })) (expression_statement "piVar32 = (int *)(iVar16 + 8);" (assignment_expression "piVar32 = (int *)(iVar16 + 8)" identifier = (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) ;) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = iVar16 + 4;" (assignment_expression "iVar16 = iVar16 + 4" identifier = (binary_expression "iVar16 + 4" identifier + number_literal)) ;) (expression_statement "iVar26 = *piVar32 + 1;" (assignment_expression "iVar26 = *piVar32 + 1" identifier = (binary_expression "*piVar32 + 1" (pointer_expression "*piVar32" * identifier) + number_literal)) ;) (expression_statement "*(int *)(iVar8 + 8) = iVar26;" (assignment_expression "*(int *)(iVar8 + 8) = iVar26" (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar8 = iVar8 + 4;" (assignment_expression "iVar8 = iVar8 + 4" identifier = (binary_expression "iVar8 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) ;) })) })) (if_statement "if (iVar29 == param_4) goto LAB_0005bc50;" if (parenthesized_expression "(iVar29 == param_4)" ( (binary_expression "iVar29 == param_4" identifier == identifier) )) (goto_statement "goto LAB_0005bc50;" goto statement_identifier ;)) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (local_44 < iVar28) goto LAB_0005bc28;" if (parenthesized_expression "(local_44 < iVar28)" ( (binary_expression "local_44 < iVar28" identifier < identifier) )) (goto_statement "goto LAB_0005bc28;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0005bc58:\n  *piVar21 = iVar8;" statement_identifier : (expression_statement "*piVar21 = iVar8;" (assignment_expression "*piVar21 = iVar8" (pointer_expression "*piVar21" * identifier) = identifier) ;)) (labeled_statement "LAB_0005bc5c:\n  uVar5 = (*local_2c)(iVar17,iVar29,param_1,iVar31);" statement_identifier : (expression_statement "uVar5 = (*local_2c)(iVar17,iVar29,param_1,iVar31);" (assignment_expression "uVar5 = (*local_2c)(iVar17,iVar29,param_1,iVar31)" identifier = (call_expression "(*local_2c)(iVar17,iVar29,param_1,iVar31)" (parenthesized_expression "(*local_2c)" ( (pointer_expression "*local_2c" * identifier) )) (argument_list "(iVar17,iVar29,param_1,iVar31)" ( identifier , identifier , identifier , identifier )))) ;)) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar15,iVar17,iVar31)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(iVar15,iVar20,iVar29,iVar31);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(iVar15,iVar20,iVar29,iVar31)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar15,iVar20,iVar29,iVar31)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom_couple_handling_00097370)\n            (iVar15,iVar23,param_1,uVar27 ^ uVar5,iVar28,1,2);" (call_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)\n            (iVar15,iVar23,param_1,uVar27 ^ uVar5,iVar28,1,2)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)" ( (pointer_expression "*(code *)PTR___gmpn_toom_couple_handling_00097370" * (cast_expression "(code *)PTR___gmpn_toom_couple_handling_00097370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar15,iVar23,param_1,uVar27 ^ uVar5,iVar28,1,2)" ( identifier , identifier , identifier , (binary_expression "uVar27 ^ uVar5" identifier ^ identifier) , identifier , number_literal , number_literal ))) ;) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,param_2,param_4,iVar28);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,param_2,param_4,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,param_4,iVar28)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (param_5 < param_3) {\n    (*(code *)PTR___gmpn_mul_000972b4)();\n  }\n  else {\n    (*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);\n  }" if (parenthesized_expression "(param_5 < param_3)" ( (binary_expression "param_5 < param_3" identifier < identifier) )) (compound_statement "{\n    (*(code *)PTR___gmpn_mul_000972b4)();\n  }" { (expression_statement "(*(code *)PTR___gmpn_mul_000972b4)();" (call_expression "(*(code *)PTR___gmpn_mul_000972b4)()" (parenthesized_expression "(*(code *)PTR___gmpn_mul_000972b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_000972b4" * (cast_expression "(code *)PTR___gmpn_mul_000972b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n    (*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);\n  }" else (compound_statement "{\n    (*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);\n  }" { (expression_statement "(*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);" (call_expression "(*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_000972b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_000972b4" * (cast_expression "(code *)PTR___gmpn_mul_000972b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3)" ( (binary_expression "param_1 + iVar28 * 0x1c" identifier + (binary_expression "iVar28 * 0x1c" identifier * number_literal)) , identifier , identifier , (binary_expression "param_2 + iVar14" identifier + identifier) , identifier ))) ;) }))) comment comment (expression_statement "(*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(param_1,iVar28,iVar22,param_6);" (call_expression "(*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(param_1,iVar28,iVar22,param_6)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)" ( (pointer_expression "*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4" * (cast_expression "(code *)PTR___gmpn_toom_interpolate_8pts_000973e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar28,iVar22,param_6)" ( identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void __gmpn_toom63_mul(mp_ptr pp,mp_srcptr ap,mp_size_t an,mp_srcptr bp,mp_size_t bn,mp_ptr scratch)\n\n{\n  uint *puVar1;\n  mp_srcptr pmVar2;\n  bool bVar3;\n  undefined *puVar4;\n  int iVar5;\n  uint uVar6;\n  mp_limb_t mVar7;\n  int iVar8;\n  mp_limb_t *pmVar9;\n  uint uVar10;\n  mp_srcptr pmVar11;\n  uint *puVar12;\n  mp_srcptr pmVar13;\n  mp_ptr pmVar14;\n  mp_srcptr pmVar15;\n  mp_ptr rm;\n  mp_ptr pmVar16;\n  mp_ptr pmVar17;\n  mp_ptr pmVar18;\n  mp_ptr pmVar19;\n  int iVar20;\n  mp_srcptr pmVar21;\n  int iVar22;\n  uint uVar23;\n  int iVar24;\n  int iVar25;\n  mp_ptr rp;\n  int iVar26;\n  int iVar27;\n  int local_44;\n  uint local_38;\n  code *local_2c;\n  \n  if (an < bn << 1) {\n    uVar23 = (bn - 1U) / 3;\n  }\n  else {\n    uVar23 = (an - 1U) / 6;\n  }\n  iVar24 = uVar23 + 1;\n  iVar5 = an + iVar24 * -5;\n  pmVar17 = pp + iVar24 * 5 + 2;\n  pmVar14 = pp + iVar24 * 3;\n  iVar25 = bn + iVar24 * -2;\n  uVar6 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)(pmVar17,pmVar14,5,ap,iVar24,iVar5,2,pp);\n  pmVar15 = bp + iVar24;\n  mVar7 = (*(code *)PTR___gmpn_lshift_0009756c)(pp,pmVar15,iVar24,2);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  pp[iVar24] = mVar7;\n  pmVar21 = pmVar15 + iVar24;\n  rp = pp + iVar24 * 6 + 3;\n  mVar7 = (*(code *)puVar4)(rp,pmVar21,iVar25,4);\n  pp[iVar24 * 6 + 3 + iVar25] = mVar7;\n  rm = pp + iVar24 * 4 + 1;\n  pmVar18 = pp + iVar24 * 7 + 3;\n  iVar22 = iVar25 + 1;\n  pmVar19 = scratch + iVar24 * 3 + 1;\n  pmVar13 = scratch + iVar24 * 6 + 2;\n  iVar20 = iVar24 * 2 + 1;\n  if (iVar24 == iVar25) {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,rp,bp,iVar24);\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *pmVar18 = *pmVar18 + iVar8;\n    uVar10 = abs_sub_add_n(rm,rp,pp,iVar25 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar25 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pmVar19,pmVar17,rp,iVar25 + 1);\n    iVar26 = iVar25 + 1;\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar19,iVar20,pp,uVar6 ^ uVar10,iVar24,2,4)\n    ;\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp);\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar24);\n    if (iVar8 == 0) goto LAB_0005ba9c;\nLAB_0005c014:\n    iVar27 = 1;\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,pmVar13,pmVar15,iVar24);\n    pmVar16 = pp + iVar24 * 5 + 1;\n    *pmVar18 = iVar8 + 1;\n  }\n  else {\n    iVar8 = iVar25 + 1;\n    if (iVar8 == 0) {\n      iVar8 = 0;\n      if (rp != bp) {\nLAB_0005b968:\n        pmVar11 = bp + iVar8;\n        pmVar9 = rp + iVar8;\n        do {\n          mVar7 = *pmVar11;\n          pmVar11 = pmVar11 + 1;\n          *pmVar9 = mVar7;\n          pmVar9 = pmVar9 + 1;\n        } while (pmVar11 != bp + iVar24);\n      }\nLAB_0005b98c:\n      mVar7 = 0;\n    }\n    else {\n      iVar26 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar8);\n      if (iVar26 == 0) {\n        iVar8 = iVar25 + 1;\nLAB_0005c0cc:\n        if (rp == bp) goto LAB_0005b98c;\n        if (iVar8 < iVar24) goto LAB_0005b968;\n        mVar7 = 0;\n      }\n      else {\n        mVar7 = 1;\n        if (iVar8 < iVar24) {\n          iVar8 = iVar25 + 2;\n          mVar7 = bp[iVar25 + 1];\n          rp[iVar25 + 1] = mVar7 + 1;\n          if (mVar7 + 1 == 0) {\n            pmVar11 = bp + iVar25;\n            pmVar16 = rp + iVar25;\n            do {\n              if (iVar24 == iVar8) {\n                mVar7 = 1;\n                goto LAB_0005b990;\n              }\n              mVar7 = pmVar11[2];\n              iVar8 = iVar8 + 1;\n              pmVar11 = pmVar11 + 1;\n              pmVar16[2] = mVar7 + 1;\n              pmVar16 = pmVar16 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar26 = uVar23 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *pmVar18 = mVar7;\n    uVar10 = abs_sub_add_n(rm,rp,pp,iVar26);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pmVar19,pmVar17,rp,iVar26);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar19,iVar20,pp,uVar6 ^ uVar10,iVar24,2,4)\n    ;\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp);\n    if (iVar25 == 0) {\n      if (bp != pmVar13) {\n        iVar8 = 0;\nLAB_0005ba74:\n        pmVar9 = bp + iVar8;\n        pmVar11 = pmVar13 + iVar8;\n        do {\n          mVar7 = *pmVar9;\n          pmVar9 = pmVar9 + 1;\n          *pmVar11 = mVar7;\n          pmVar11 = pmVar11 + 1;\n        } while (bp + iVar24 != pmVar9);\n      }\n    }\n    else {\n      iVar27 = (*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar25);\n      iVar8 = iVar25;\n      if (iVar27 != 0) {\n        if (iVar24 <= iVar25) goto LAB_0005c014;\n        pmVar11 = bp + iVar25;\n        pmVar9 = pmVar13 + iVar25;\n        mVar7 = *pmVar11 + 1;\n        *pmVar9 = mVar7;\n        iVar8 = iVar22;\n        while (mVar7 == 0) {\n          bVar3 = iVar24 == iVar8;\n          iVar8 = iVar8 + 1;\n          if (bVar3) goto LAB_0005c014;\n          pmVar2 = pmVar11 + 1;\n          pmVar9 = pmVar9 + 1;\n          pmVar11 = pmVar11 + 1;\n          mVar7 = *pmVar2 + 1;\n          *pmVar9 = mVar7;\n        }\n      }\n      if ((bp != pmVar13) && (iVar8 < iVar24)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    mVar7 = (*(code *)PTR___gmpn_add_n_00097334)(rp,pmVar13,pmVar15,iVar24);\n    *pmVar18 = mVar7;\n    puVar12 = bp + iVar24 * 2 + -1;\n    pmVar16 = scratch + iVar24 * 7;\n    do {\n      puVar1 = pmVar16 + 1;\n      uVar23 = uVar23 - 1;\n      uVar6 = *puVar12;\n      pmVar16 = pmVar16 + -1;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar6) {\n        pmVar16 = pp + iVar24 * 5 + 1;\n        if (uVar6 < *puVar1) {\n          iVar27 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar15,pmVar13,iVar24);\n        *pmVar16 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar23 != 0xffffffff);\n    iVar27 = 0;\n    pmVar16 = pp + iVar24 * 5 + 1;\n  }\nLAB_0005bb0c:\n  iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar13,pmVar15,iVar24);\n  *pmVar16 = iVar27 - iVar8;\nLAB_0005bb30:\n  (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26);\n  (*(code *)PTR___gmpn_mul_n_00097364)(scratch,pmVar17,rp,iVar26);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)(scratch,iVar20,pp,local_38,iVar24,0,0);\n  uVar23 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp);\n  mVar7 = (*(code *)PTR___gmpn_lshift_0009756c)(pp,pmVar15,iVar24,1);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  pp[iVar24] = mVar7;\n  mVar7 = (*(code *)puVar4)(rp,pmVar21,iVar25,2);\n  pp[iVar24 * 6 + 3 + iVar25] = mVar7;\n  if (iVar24 == iVar25) {\n    iVar22 = (*(code *)PTR___gmpn_add_n_00097334)(rp,rp,bp,iVar24);\n    *pmVar18 = *pmVar18 + iVar22;\n    goto LAB_0005bc5c;\n  }\n  local_44 = iVar22;\n  if (iVar22 == 0) {\n    mVar7 = 0;\n    if (rp != bp) {\nLAB_0005bc28:\n      pmVar13 = bp + local_44;\n      pmVar9 = rp + local_44;\n      do {\n        mVar7 = *pmVar13;\n        pmVar13 = pmVar13 + 1;\n        *pmVar9 = mVar7;\n        pmVar9 = pmVar9 + 1;\n      } while (bp + iVar24 != pmVar13);\nLAB_0005bc50:\n      mVar7 = 0;\n    }\n  }\n  else {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar22);\n    if (iVar8 != 0) {\n      mVar7 = 1;\n      if (iVar24 <= iVar22) goto LAB_0005bc58;\n      local_44 = iVar25 + 2;\n      mVar7 = bp[iVar22];\n      rp[iVar22] = mVar7 + 1;\n      if (mVar7 + 1 == 0) {\n        pmVar13 = bp + iVar25;\n        pmVar16 = rp + iVar25;\n        do {\n          if (iVar24 == local_44) {\n            mVar7 = 1;\n            goto LAB_0005bc58;\n          }\n          mVar7 = pmVar13[2];\n          local_44 = local_44 + 1;\n          pmVar13 = pmVar13 + 1;\n          pmVar16[2] = mVar7 + 1;\n          pmVar16 = pmVar16 + 1;\n        } while (mVar7 + 1 == 0);\n      }\n    }\n    if (rp == bp) goto LAB_0005bc50;\n    mVar7 = 0;\n    if (local_44 < iVar24) goto LAB_0005bc28;\n  }\nLAB_0005bc58:\n  *pmVar18 = mVar7;\nLAB_0005bc5c:\n  uVar6 = (*local_2c)(rm,rp,pp,iVar26);\n  (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26);\n  (*(code *)PTR___gmpn_mul_n_00097364)(pmVar14,pmVar17,rp,iVar26);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar14,iVar20,pp,uVar23 ^ uVar6,iVar24,1,2);\n  (*(code *)PTR___gmpn_mul_n_00097364)(pp,ap,bp,iVar24);\n  if (iVar25 < iVar5) {\n    (*(code *)PTR___gmpn_mul_000972b4)();\n  }\n  else {\n    (*(code *)PTR___gmpn_mul_000972b4)(pp + iVar24 * 7,pmVar21,iVar25,ap + iVar24 * 5,iVar5);\n  }\n                    /* WARNING: Could not recover jumptable at 0x0005bd8c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(pp,iVar24,pmVar19,scratch);\n  return;\n}\n\n" (function_definition "void __gmpn_toom63_mul(mp_ptr pp,mp_srcptr ap,mp_size_t an,mp_srcptr bp,mp_size_t bn,mp_ptr scratch)\n\n{\n  uint *puVar1;\n  mp_srcptr pmVar2;\n  bool bVar3;\n  undefined *puVar4;\n  int iVar5;\n  uint uVar6;\n  mp_limb_t mVar7;\n  int iVar8;\n  mp_limb_t *pmVar9;\n  uint uVar10;\n  mp_srcptr pmVar11;\n  uint *puVar12;\n  mp_srcptr pmVar13;\n  mp_ptr pmVar14;\n  mp_srcptr pmVar15;\n  mp_ptr rm;\n  mp_ptr pmVar16;\n  mp_ptr pmVar17;\n  mp_ptr pmVar18;\n  mp_ptr pmVar19;\n  int iVar20;\n  mp_srcptr pmVar21;\n  int iVar22;\n  uint uVar23;\n  int iVar24;\n  int iVar25;\n  mp_ptr rp;\n  int iVar26;\n  int iVar27;\n  int local_44;\n  uint local_38;\n  code *local_2c;\n  \n  if (an < bn << 1) {\n    uVar23 = (bn - 1U) / 3;\n  }\n  else {\n    uVar23 = (an - 1U) / 6;\n  }\n  iVar24 = uVar23 + 1;\n  iVar5 = an + iVar24 * -5;\n  pmVar17 = pp + iVar24 * 5 + 2;\n  pmVar14 = pp + iVar24 * 3;\n  iVar25 = bn + iVar24 * -2;\n  uVar6 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)(pmVar17,pmVar14,5,ap,iVar24,iVar5,2,pp);\n  pmVar15 = bp + iVar24;\n  mVar7 = (*(code *)PTR___gmpn_lshift_0009756c)(pp,pmVar15,iVar24,2);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  pp[iVar24] = mVar7;\n  pmVar21 = pmVar15 + iVar24;\n  rp = pp + iVar24 * 6 + 3;\n  mVar7 = (*(code *)puVar4)(rp,pmVar21,iVar25,4);\n  pp[iVar24 * 6 + 3 + iVar25] = mVar7;\n  rm = pp + iVar24 * 4 + 1;\n  pmVar18 = pp + iVar24 * 7 + 3;\n  iVar22 = iVar25 + 1;\n  pmVar19 = scratch + iVar24 * 3 + 1;\n  pmVar13 = scratch + iVar24 * 6 + 2;\n  iVar20 = iVar24 * 2 + 1;\n  if (iVar24 == iVar25) {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,rp,bp,iVar24);\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *pmVar18 = *pmVar18 + iVar8;\n    uVar10 = abs_sub_add_n(rm,rp,pp,iVar25 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar25 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pmVar19,pmVar17,rp,iVar25 + 1);\n    iVar26 = iVar25 + 1;\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar19,iVar20,pp,uVar6 ^ uVar10,iVar24,2,4)\n    ;\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp);\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar24);\n    if (iVar8 == 0) goto LAB_0005ba9c;\nLAB_0005c014:\n    iVar27 = 1;\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,pmVar13,pmVar15,iVar24);\n    pmVar16 = pp + iVar24 * 5 + 1;\n    *pmVar18 = iVar8 + 1;\n  }\n  else {\n    iVar8 = iVar25 + 1;\n    if (iVar8 == 0) {\n      iVar8 = 0;\n      if (rp != bp) {\nLAB_0005b968:\n        pmVar11 = bp + iVar8;\n        pmVar9 = rp + iVar8;\n        do {\n          mVar7 = *pmVar11;\n          pmVar11 = pmVar11 + 1;\n          *pmVar9 = mVar7;\n          pmVar9 = pmVar9 + 1;\n        } while (pmVar11 != bp + iVar24);\n      }\nLAB_0005b98c:\n      mVar7 = 0;\n    }\n    else {\n      iVar26 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar8);\n      if (iVar26 == 0) {\n        iVar8 = iVar25 + 1;\nLAB_0005c0cc:\n        if (rp == bp) goto LAB_0005b98c;\n        if (iVar8 < iVar24) goto LAB_0005b968;\n        mVar7 = 0;\n      }\n      else {\n        mVar7 = 1;\n        if (iVar8 < iVar24) {\n          iVar8 = iVar25 + 2;\n          mVar7 = bp[iVar25 + 1];\n          rp[iVar25 + 1] = mVar7 + 1;\n          if (mVar7 + 1 == 0) {\n            pmVar11 = bp + iVar25;\n            pmVar16 = rp + iVar25;\n            do {\n              if (iVar24 == iVar8) {\n                mVar7 = 1;\n                goto LAB_0005b990;\n              }\n              mVar7 = pmVar11[2];\n              iVar8 = iVar8 + 1;\n              pmVar11 = pmVar11 + 1;\n              pmVar16[2] = mVar7 + 1;\n              pmVar16 = pmVar16 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar26 = uVar23 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *pmVar18 = mVar7;\n    uVar10 = abs_sub_add_n(rm,rp,pp,iVar26);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pmVar19,pmVar17,rp,iVar26);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar19,iVar20,pp,uVar6 ^ uVar10,iVar24,2,4)\n    ;\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp);\n    if (iVar25 == 0) {\n      if (bp != pmVar13) {\n        iVar8 = 0;\nLAB_0005ba74:\n        pmVar9 = bp + iVar8;\n        pmVar11 = pmVar13 + iVar8;\n        do {\n          mVar7 = *pmVar9;\n          pmVar9 = pmVar9 + 1;\n          *pmVar11 = mVar7;\n          pmVar11 = pmVar11 + 1;\n        } while (bp + iVar24 != pmVar9);\n      }\n    }\n    else {\n      iVar27 = (*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar25);\n      iVar8 = iVar25;\n      if (iVar27 != 0) {\n        if (iVar24 <= iVar25) goto LAB_0005c014;\n        pmVar11 = bp + iVar25;\n        pmVar9 = pmVar13 + iVar25;\n        mVar7 = *pmVar11 + 1;\n        *pmVar9 = mVar7;\n        iVar8 = iVar22;\n        while (mVar7 == 0) {\n          bVar3 = iVar24 == iVar8;\n          iVar8 = iVar8 + 1;\n          if (bVar3) goto LAB_0005c014;\n          pmVar2 = pmVar11 + 1;\n          pmVar9 = pmVar9 + 1;\n          pmVar11 = pmVar11 + 1;\n          mVar7 = *pmVar2 + 1;\n          *pmVar9 = mVar7;\n        }\n      }\n      if ((bp != pmVar13) && (iVar8 < iVar24)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    mVar7 = (*(code *)PTR___gmpn_add_n_00097334)(rp,pmVar13,pmVar15,iVar24);\n    *pmVar18 = mVar7;\n    puVar12 = bp + iVar24 * 2 + -1;\n    pmVar16 = scratch + iVar24 * 7;\n    do {\n      puVar1 = pmVar16 + 1;\n      uVar23 = uVar23 - 1;\n      uVar6 = *puVar12;\n      pmVar16 = pmVar16 + -1;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar6) {\n        pmVar16 = pp + iVar24 * 5 + 1;\n        if (uVar6 < *puVar1) {\n          iVar27 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar15,pmVar13,iVar24);\n        *pmVar16 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar23 != 0xffffffff);\n    iVar27 = 0;\n    pmVar16 = pp + iVar24 * 5 + 1;\n  }\nLAB_0005bb0c:\n  iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar13,pmVar15,iVar24);\n  *pmVar16 = iVar27 - iVar8;\nLAB_0005bb30:\n  (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26);\n  (*(code *)PTR___gmpn_mul_n_00097364)(scratch,pmVar17,rp,iVar26);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)(scratch,iVar20,pp,local_38,iVar24,0,0);\n  uVar23 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp);\n  mVar7 = (*(code *)PTR___gmpn_lshift_0009756c)(pp,pmVar15,iVar24,1);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  pp[iVar24] = mVar7;\n  mVar7 = (*(code *)puVar4)(rp,pmVar21,iVar25,2);\n  pp[iVar24 * 6 + 3 + iVar25] = mVar7;\n  if (iVar24 == iVar25) {\n    iVar22 = (*(code *)PTR___gmpn_add_n_00097334)(rp,rp,bp,iVar24);\n    *pmVar18 = *pmVar18 + iVar22;\n    goto LAB_0005bc5c;\n  }\n  local_44 = iVar22;\n  if (iVar22 == 0) {\n    mVar7 = 0;\n    if (rp != bp) {\nLAB_0005bc28:\n      pmVar13 = bp + local_44;\n      pmVar9 = rp + local_44;\n      do {\n        mVar7 = *pmVar13;\n        pmVar13 = pmVar13 + 1;\n        *pmVar9 = mVar7;\n        pmVar9 = pmVar9 + 1;\n      } while (bp + iVar24 != pmVar13);\nLAB_0005bc50:\n      mVar7 = 0;\n    }\n  }\n  else {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar22);\n    if (iVar8 != 0) {\n      mVar7 = 1;\n      if (iVar24 <= iVar22) goto LAB_0005bc58;\n      local_44 = iVar25 + 2;\n      mVar7 = bp[iVar22];\n      rp[iVar22] = mVar7 + 1;\n      if (mVar7 + 1 == 0) {\n        pmVar13 = bp + iVar25;\n        pmVar16 = rp + iVar25;\n        do {\n          if (iVar24 == local_44) {\n            mVar7 = 1;\n            goto LAB_0005bc58;\n          }\n          mVar7 = pmVar13[2];\n          local_44 = local_44 + 1;\n          pmVar13 = pmVar13 + 1;\n          pmVar16[2] = mVar7 + 1;\n          pmVar16 = pmVar16 + 1;\n        } while (mVar7 + 1 == 0);\n      }\n    }\n    if (rp == bp) goto LAB_0005bc50;\n    mVar7 = 0;\n    if (local_44 < iVar24) goto LAB_0005bc28;\n  }\nLAB_0005bc58:\n  *pmVar18 = mVar7;\nLAB_0005bc5c:\n  uVar6 = (*local_2c)(rm,rp,pp,iVar26);\n  (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26);\n  (*(code *)PTR___gmpn_mul_n_00097364)(pmVar14,pmVar17,rp,iVar26);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar14,iVar20,pp,uVar23 ^ uVar6,iVar24,1,2);\n  (*(code *)PTR___gmpn_mul_n_00097364)(pp,ap,bp,iVar24);\n  if (iVar25 < iVar5) {\n    (*(code *)PTR___gmpn_mul_000972b4)();\n  }\n  else {\n    (*(code *)PTR___gmpn_mul_000972b4)(pp + iVar24 * 7,pmVar21,iVar25,ap + iVar24 * 5,iVar5);\n  }\n                    /* WARNING: Could not recover jumptable at 0x0005bd8c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(pp,iVar24,pmVar19,scratch);\n  return;\n}" primitive_type (function_declarator "__gmpn_toom63_mul(mp_ptr pp,mp_srcptr ap,mp_size_t an,mp_srcptr bp,mp_size_t bn,mp_ptr scratch)" identifier (parameter_list "(mp_ptr pp,mp_srcptr ap,mp_size_t an,mp_srcptr bp,mp_size_t bn,mp_ptr scratch)" ( (parameter_declaration "mp_ptr pp" type_identifier identifier) , (parameter_declaration "mp_srcptr ap" type_identifier identifier) , (parameter_declaration "mp_size_t an" type_identifier identifier) , (parameter_declaration "mp_srcptr bp" type_identifier identifier) , (parameter_declaration "mp_size_t bn" type_identifier identifier) , (parameter_declaration "mp_ptr scratch" type_identifier identifier) ))) (compound_statement "{\n  uint *puVar1;\n  mp_srcptr pmVar2;\n  bool bVar3;\n  undefined *puVar4;\n  int iVar5;\n  uint uVar6;\n  mp_limb_t mVar7;\n  int iVar8;\n  mp_limb_t *pmVar9;\n  uint uVar10;\n  mp_srcptr pmVar11;\n  uint *puVar12;\n  mp_srcptr pmVar13;\n  mp_ptr pmVar14;\n  mp_srcptr pmVar15;\n  mp_ptr rm;\n  mp_ptr pmVar16;\n  mp_ptr pmVar17;\n  mp_ptr pmVar18;\n  mp_ptr pmVar19;\n  int iVar20;\n  mp_srcptr pmVar21;\n  int iVar22;\n  uint uVar23;\n  int iVar24;\n  int iVar25;\n  mp_ptr rp;\n  int iVar26;\n  int iVar27;\n  int local_44;\n  uint local_38;\n  code *local_2c;\n  \n  if (an < bn << 1) {\n    uVar23 = (bn - 1U) / 3;\n  }\n  else {\n    uVar23 = (an - 1U) / 6;\n  }\n  iVar24 = uVar23 + 1;\n  iVar5 = an + iVar24 * -5;\n  pmVar17 = pp + iVar24 * 5 + 2;\n  pmVar14 = pp + iVar24 * 3;\n  iVar25 = bn + iVar24 * -2;\n  uVar6 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)(pmVar17,pmVar14,5,ap,iVar24,iVar5,2,pp);\n  pmVar15 = bp + iVar24;\n  mVar7 = (*(code *)PTR___gmpn_lshift_0009756c)(pp,pmVar15,iVar24,2);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  pp[iVar24] = mVar7;\n  pmVar21 = pmVar15 + iVar24;\n  rp = pp + iVar24 * 6 + 3;\n  mVar7 = (*(code *)puVar4)(rp,pmVar21,iVar25,4);\n  pp[iVar24 * 6 + 3 + iVar25] = mVar7;\n  rm = pp + iVar24 * 4 + 1;\n  pmVar18 = pp + iVar24 * 7 + 3;\n  iVar22 = iVar25 + 1;\n  pmVar19 = scratch + iVar24 * 3 + 1;\n  pmVar13 = scratch + iVar24 * 6 + 2;\n  iVar20 = iVar24 * 2 + 1;\n  if (iVar24 == iVar25) {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,rp,bp,iVar24);\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *pmVar18 = *pmVar18 + iVar8;\n    uVar10 = abs_sub_add_n(rm,rp,pp,iVar25 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar25 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pmVar19,pmVar17,rp,iVar25 + 1);\n    iVar26 = iVar25 + 1;\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar19,iVar20,pp,uVar6 ^ uVar10,iVar24,2,4)\n    ;\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp);\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar24);\n    if (iVar8 == 0) goto LAB_0005ba9c;\nLAB_0005c014:\n    iVar27 = 1;\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,pmVar13,pmVar15,iVar24);\n    pmVar16 = pp + iVar24 * 5 + 1;\n    *pmVar18 = iVar8 + 1;\n  }\n  else {\n    iVar8 = iVar25 + 1;\n    if (iVar8 == 0) {\n      iVar8 = 0;\n      if (rp != bp) {\nLAB_0005b968:\n        pmVar11 = bp + iVar8;\n        pmVar9 = rp + iVar8;\n        do {\n          mVar7 = *pmVar11;\n          pmVar11 = pmVar11 + 1;\n          *pmVar9 = mVar7;\n          pmVar9 = pmVar9 + 1;\n        } while (pmVar11 != bp + iVar24);\n      }\nLAB_0005b98c:\n      mVar7 = 0;\n    }\n    else {\n      iVar26 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar8);\n      if (iVar26 == 0) {\n        iVar8 = iVar25 + 1;\nLAB_0005c0cc:\n        if (rp == bp) goto LAB_0005b98c;\n        if (iVar8 < iVar24) goto LAB_0005b968;\n        mVar7 = 0;\n      }\n      else {\n        mVar7 = 1;\n        if (iVar8 < iVar24) {\n          iVar8 = iVar25 + 2;\n          mVar7 = bp[iVar25 + 1];\n          rp[iVar25 + 1] = mVar7 + 1;\n          if (mVar7 + 1 == 0) {\n            pmVar11 = bp + iVar25;\n            pmVar16 = rp + iVar25;\n            do {\n              if (iVar24 == iVar8) {\n                mVar7 = 1;\n                goto LAB_0005b990;\n              }\n              mVar7 = pmVar11[2];\n              iVar8 = iVar8 + 1;\n              pmVar11 = pmVar11 + 1;\n              pmVar16[2] = mVar7 + 1;\n              pmVar16 = pmVar16 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar26 = uVar23 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *pmVar18 = mVar7;\n    uVar10 = abs_sub_add_n(rm,rp,pp,iVar26);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pmVar19,pmVar17,rp,iVar26);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar19,iVar20,pp,uVar6 ^ uVar10,iVar24,2,4)\n    ;\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp);\n    if (iVar25 == 0) {\n      if (bp != pmVar13) {\n        iVar8 = 0;\nLAB_0005ba74:\n        pmVar9 = bp + iVar8;\n        pmVar11 = pmVar13 + iVar8;\n        do {\n          mVar7 = *pmVar9;\n          pmVar9 = pmVar9 + 1;\n          *pmVar11 = mVar7;\n          pmVar11 = pmVar11 + 1;\n        } while (bp + iVar24 != pmVar9);\n      }\n    }\n    else {\n      iVar27 = (*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar25);\n      iVar8 = iVar25;\n      if (iVar27 != 0) {\n        if (iVar24 <= iVar25) goto LAB_0005c014;\n        pmVar11 = bp + iVar25;\n        pmVar9 = pmVar13 + iVar25;\n        mVar7 = *pmVar11 + 1;\n        *pmVar9 = mVar7;\n        iVar8 = iVar22;\n        while (mVar7 == 0) {\n          bVar3 = iVar24 == iVar8;\n          iVar8 = iVar8 + 1;\n          if (bVar3) goto LAB_0005c014;\n          pmVar2 = pmVar11 + 1;\n          pmVar9 = pmVar9 + 1;\n          pmVar11 = pmVar11 + 1;\n          mVar7 = *pmVar2 + 1;\n          *pmVar9 = mVar7;\n        }\n      }\n      if ((bp != pmVar13) && (iVar8 < iVar24)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    mVar7 = (*(code *)PTR___gmpn_add_n_00097334)(rp,pmVar13,pmVar15,iVar24);\n    *pmVar18 = mVar7;\n    puVar12 = bp + iVar24 * 2 + -1;\n    pmVar16 = scratch + iVar24 * 7;\n    do {\n      puVar1 = pmVar16 + 1;\n      uVar23 = uVar23 - 1;\n      uVar6 = *puVar12;\n      pmVar16 = pmVar16 + -1;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar6) {\n        pmVar16 = pp + iVar24 * 5 + 1;\n        if (uVar6 < *puVar1) {\n          iVar27 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar15,pmVar13,iVar24);\n        *pmVar16 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar23 != 0xffffffff);\n    iVar27 = 0;\n    pmVar16 = pp + iVar24 * 5 + 1;\n  }\nLAB_0005bb0c:\n  iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar13,pmVar15,iVar24);\n  *pmVar16 = iVar27 - iVar8;\nLAB_0005bb30:\n  (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26);\n  (*(code *)PTR___gmpn_mul_n_00097364)(scratch,pmVar17,rp,iVar26);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)(scratch,iVar20,pp,local_38,iVar24,0,0);\n  uVar23 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp);\n  mVar7 = (*(code *)PTR___gmpn_lshift_0009756c)(pp,pmVar15,iVar24,1);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  pp[iVar24] = mVar7;\n  mVar7 = (*(code *)puVar4)(rp,pmVar21,iVar25,2);\n  pp[iVar24 * 6 + 3 + iVar25] = mVar7;\n  if (iVar24 == iVar25) {\n    iVar22 = (*(code *)PTR___gmpn_add_n_00097334)(rp,rp,bp,iVar24);\n    *pmVar18 = *pmVar18 + iVar22;\n    goto LAB_0005bc5c;\n  }\n  local_44 = iVar22;\n  if (iVar22 == 0) {\n    mVar7 = 0;\n    if (rp != bp) {\nLAB_0005bc28:\n      pmVar13 = bp + local_44;\n      pmVar9 = rp + local_44;\n      do {\n        mVar7 = *pmVar13;\n        pmVar13 = pmVar13 + 1;\n        *pmVar9 = mVar7;\n        pmVar9 = pmVar9 + 1;\n      } while (bp + iVar24 != pmVar13);\nLAB_0005bc50:\n      mVar7 = 0;\n    }\n  }\n  else {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar22);\n    if (iVar8 != 0) {\n      mVar7 = 1;\n      if (iVar24 <= iVar22) goto LAB_0005bc58;\n      local_44 = iVar25 + 2;\n      mVar7 = bp[iVar22];\n      rp[iVar22] = mVar7 + 1;\n      if (mVar7 + 1 == 0) {\n        pmVar13 = bp + iVar25;\n        pmVar16 = rp + iVar25;\n        do {\n          if (iVar24 == local_44) {\n            mVar7 = 1;\n            goto LAB_0005bc58;\n          }\n          mVar7 = pmVar13[2];\n          local_44 = local_44 + 1;\n          pmVar13 = pmVar13 + 1;\n          pmVar16[2] = mVar7 + 1;\n          pmVar16 = pmVar16 + 1;\n        } while (mVar7 + 1 == 0);\n      }\n    }\n    if (rp == bp) goto LAB_0005bc50;\n    mVar7 = 0;\n    if (local_44 < iVar24) goto LAB_0005bc28;\n  }\nLAB_0005bc58:\n  *pmVar18 = mVar7;\nLAB_0005bc5c:\n  uVar6 = (*local_2c)(rm,rp,pp,iVar26);\n  (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26);\n  (*(code *)PTR___gmpn_mul_n_00097364)(pmVar14,pmVar17,rp,iVar26);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar14,iVar20,pp,uVar23 ^ uVar6,iVar24,1,2);\n  (*(code *)PTR___gmpn_mul_n_00097364)(pp,ap,bp,iVar24);\n  if (iVar25 < iVar5) {\n    (*(code *)PTR___gmpn_mul_000972b4)();\n  }\n  else {\n    (*(code *)PTR___gmpn_mul_000972b4)(pp + iVar24 * 7,pmVar21,iVar25,ap + iVar24 * 5,iVar5);\n  }\n                    /* WARNING: Could not recover jumptable at 0x0005bd8c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(pp,iVar24,pmVar19,scratch);\n  return;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "mp_srcptr pmVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "mp_limb_t mVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "mp_limb_t *pmVar9;" type_identifier (pointer_declarator "*pmVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "mp_srcptr pmVar11;" type_identifier identifier ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "mp_srcptr pmVar13;" type_identifier identifier ;) (declaration "mp_ptr pmVar14;" type_identifier identifier ;) (declaration "mp_srcptr pmVar15;" type_identifier identifier ;) (declaration "mp_ptr rm;" type_identifier identifier ;) (declaration "mp_ptr pmVar16;" type_identifier identifier ;) (declaration "mp_ptr pmVar17;" type_identifier identifier ;) (declaration "mp_ptr pmVar18;" type_identifier identifier ;) (declaration "mp_ptr pmVar19;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "mp_srcptr pmVar21;" type_identifier identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "mp_ptr rp;" type_identifier identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "code *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (if_statement "if (an < bn << 1) {\n    uVar23 = (bn - 1U) / 3;\n  }\n  else {\n    uVar23 = (an - 1U) / 6;\n  }" if (parenthesized_expression "(an < bn << 1)" ( (binary_expression "an < bn << 1" identifier < (binary_expression "bn << 1" identifier << number_literal)) )) (compound_statement "{\n    uVar23 = (bn - 1U) / 3;\n  }" { (expression_statement "uVar23 = (bn - 1U) / 3;" (assignment_expression "uVar23 = (bn - 1U) / 3" identifier = (binary_expression "(bn - 1U) / 3" (parenthesized_expression "(bn - 1U)" ( (binary_expression "bn - 1U" identifier - number_literal) )) / number_literal)) ;) }) (else_clause "else {\n    uVar23 = (an - 1U) / 6;\n  }" else (compound_statement "{\n    uVar23 = (an - 1U) / 6;\n  }" { (expression_statement "uVar23 = (an - 1U) / 6;" (assignment_expression "uVar23 = (an - 1U) / 6" identifier = (binary_expression "(an - 1U) / 6" (parenthesized_expression "(an - 1U)" ( (binary_expression "an - 1U" identifier - number_literal) )) / number_literal)) ;) }))) (expression_statement "iVar24 = uVar23 + 1;" (assignment_expression "iVar24 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = an + iVar24 * -5;" (assignment_expression "iVar5 = an + iVar24 * -5" identifier = (binary_expression "an + iVar24 * -5" identifier + (binary_expression "iVar24 * -5" identifier * number_literal))) ;) (expression_statement "pmVar17 = pp + iVar24 * 5 + 2;" (assignment_expression "pmVar17 = pp + iVar24 * 5 + 2" identifier = (binary_expression "pp + iVar24 * 5 + 2" (binary_expression "pp + iVar24 * 5" identifier + (binary_expression "iVar24 * 5" identifier * number_literal)) + number_literal)) ;) (expression_statement "pmVar14 = pp + iVar24 * 3;" (assignment_expression "pmVar14 = pp + iVar24 * 3" identifier = (binary_expression "pp + iVar24 * 3" identifier + (binary_expression "iVar24 * 3" identifier * number_literal))) ;) (expression_statement "iVar25 = bn + iVar24 * -2;" (assignment_expression "iVar25 = bn + iVar24 * -2" identifier = (binary_expression "bn + iVar24 * -2" identifier + (binary_expression "iVar24 * -2" identifier * number_literal))) ;) (expression_statement "uVar6 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)(pmVar17,pmVar14,5,ap,iVar24,iVar5,2,pp);" (assignment_expression "uVar6 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)(pmVar17,pmVar14,5,ap,iVar24,iVar5,2,pp)" identifier = (call_expression "(*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)(pmVar17,pmVar14,5,ap,iVar24,iVar5,2,pp)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)" ( (pointer_expression "*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8" * (cast_expression "(code *)PTR___gmpn_toom_eval_pm2exp_000974d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar17,pmVar14,5,ap,iVar24,iVar5,2,pp)" ( identifier , identifier , number_literal , identifier , identifier , identifier , number_literal , identifier )))) ;) (expression_statement "pmVar15 = bp + iVar24;" (assignment_expression "pmVar15 = bp + iVar24" identifier = (binary_expression "bp + iVar24" identifier + identifier)) ;) (expression_statement "mVar7 = (*(code *)PTR___gmpn_lshift_0009756c)(pp,pmVar15,iVar24,2);" (assignment_expression "mVar7 = (*(code *)PTR___gmpn_lshift_0009756c)(pp,pmVar15,iVar24,2)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009756c)(pp,pmVar15,iVar24,2)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009756c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009756c" * (cast_expression "(code *)PTR___gmpn_lshift_0009756c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp,pmVar15,iVar24,2)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "puVar4 = PTR___gmpn_lshift_0009756c;" (assignment_expression "puVar4 = PTR___gmpn_lshift_0009756c" identifier = identifier) ;) (expression_statement "pp[iVar24] = mVar7;" (assignment_expression "pp[iVar24] = mVar7" (subscript_expression "pp[iVar24]" identifier [ identifier ]) = identifier) ;) (expression_statement "pmVar21 = pmVar15 + iVar24;" (assignment_expression "pmVar21 = pmVar15 + iVar24" identifier = (binary_expression "pmVar15 + iVar24" identifier + identifier)) ;) (expression_statement "rp = pp + iVar24 * 6 + 3;" (assignment_expression "rp = pp + iVar24 * 6 + 3" identifier = (binary_expression "pp + iVar24 * 6 + 3" (binary_expression "pp + iVar24 * 6" identifier + (binary_expression "iVar24 * 6" identifier * number_literal)) + number_literal)) ;) (expression_statement "mVar7 = (*(code *)puVar4)(rp,pmVar21,iVar25,4);" (assignment_expression "mVar7 = (*(code *)puVar4)(rp,pmVar21,iVar25,4)" identifier = (call_expression "(*(code *)puVar4)(rp,pmVar21,iVar25,4)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(rp,pmVar21,iVar25,4)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "pp[iVar24 * 6 + 3 + iVar25] = mVar7;" (assignment_expression "pp[iVar24 * 6 + 3 + iVar25] = mVar7" (subscript_expression "pp[iVar24 * 6 + 3 + iVar25]" identifier [ (binary_expression "iVar24 * 6 + 3 + iVar25" (binary_expression "iVar24 * 6 + 3" (binary_expression "iVar24 * 6" identifier * number_literal) + number_literal) + identifier) ]) = identifier) ;) (expression_statement "rm = pp + iVar24 * 4 + 1;" (assignment_expression "rm = pp + iVar24 * 4 + 1" identifier = (binary_expression "pp + iVar24 * 4 + 1" (binary_expression "pp + iVar24 * 4" identifier + (binary_expression "iVar24 * 4" identifier * number_literal)) + number_literal)) ;) (expression_statement "pmVar18 = pp + iVar24 * 7 + 3;" (assignment_expression "pmVar18 = pp + iVar24 * 7 + 3" identifier = (binary_expression "pp + iVar24 * 7 + 3" (binary_expression "pp + iVar24 * 7" identifier + (binary_expression "iVar24 * 7" identifier * number_literal)) + number_literal)) ;) (expression_statement "iVar22 = iVar25 + 1;" (assignment_expression "iVar22 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "pmVar19 = scratch + iVar24 * 3 + 1;" (assignment_expression "pmVar19 = scratch + iVar24 * 3 + 1" identifier = (binary_expression "scratch + iVar24 * 3 + 1" (binary_expression "scratch + iVar24 * 3" identifier + (binary_expression "iVar24 * 3" identifier * number_literal)) + number_literal)) ;) (expression_statement "pmVar13 = scratch + iVar24 * 6 + 2;" (assignment_expression "pmVar13 = scratch + iVar24 * 6 + 2" identifier = (binary_expression "scratch + iVar24 * 6 + 2" (binary_expression "scratch + iVar24 * 6" identifier + (binary_expression "iVar24 * 6" identifier * number_literal)) + number_literal)) ;) (expression_statement "iVar20 = iVar24 * 2 + 1;" (assignment_expression "iVar20 = iVar24 * 2 + 1" identifier = (binary_expression "iVar24 * 2 + 1" (binary_expression "iVar24 * 2" identifier * number_literal) + number_literal)) ;) (if_statement "if (iVar24 == iVar25) {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,rp,bp,iVar24);\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *pmVar18 = *pmVar18 + iVar8;\n    uVar10 = abs_sub_add_n(rm,rp,pp,iVar25 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar25 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pmVar19,pmVar17,rp,iVar25 + 1);\n    iVar26 = iVar25 + 1;\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar19,iVar20,pp,uVar6 ^ uVar10,iVar24,2,4)\n    ;\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp);\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar24);\n    if (iVar8 == 0) goto LAB_0005ba9c;\nLAB_0005c014:\n    iVar27 = 1;\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,pmVar13,pmVar15,iVar24);\n    pmVar16 = pp + iVar24 * 5 + 1;\n    *pmVar18 = iVar8 + 1;\n  }\n  else {\n    iVar8 = iVar25 + 1;\n    if (iVar8 == 0) {\n      iVar8 = 0;\n      if (rp != bp) {\nLAB_0005b968:\n        pmVar11 = bp + iVar8;\n        pmVar9 = rp + iVar8;\n        do {\n          mVar7 = *pmVar11;\n          pmVar11 = pmVar11 + 1;\n          *pmVar9 = mVar7;\n          pmVar9 = pmVar9 + 1;\n        } while (pmVar11 != bp + iVar24);\n      }\nLAB_0005b98c:\n      mVar7 = 0;\n    }\n    else {\n      iVar26 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar8);\n      if (iVar26 == 0) {\n        iVar8 = iVar25 + 1;\nLAB_0005c0cc:\n        if (rp == bp) goto LAB_0005b98c;\n        if (iVar8 < iVar24) goto LAB_0005b968;\n        mVar7 = 0;\n      }\n      else {\n        mVar7 = 1;\n        if (iVar8 < iVar24) {\n          iVar8 = iVar25 + 2;\n          mVar7 = bp[iVar25 + 1];\n          rp[iVar25 + 1] = mVar7 + 1;\n          if (mVar7 + 1 == 0) {\n            pmVar11 = bp + iVar25;\n            pmVar16 = rp + iVar25;\n            do {\n              if (iVar24 == iVar8) {\n                mVar7 = 1;\n                goto LAB_0005b990;\n              }\n              mVar7 = pmVar11[2];\n              iVar8 = iVar8 + 1;\n              pmVar11 = pmVar11 + 1;\n              pmVar16[2] = mVar7 + 1;\n              pmVar16 = pmVar16 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar26 = uVar23 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *pmVar18 = mVar7;\n    uVar10 = abs_sub_add_n(rm,rp,pp,iVar26);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pmVar19,pmVar17,rp,iVar26);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar19,iVar20,pp,uVar6 ^ uVar10,iVar24,2,4)\n    ;\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp);\n    if (iVar25 == 0) {\n      if (bp != pmVar13) {\n        iVar8 = 0;\nLAB_0005ba74:\n        pmVar9 = bp + iVar8;\n        pmVar11 = pmVar13 + iVar8;\n        do {\n          mVar7 = *pmVar9;\n          pmVar9 = pmVar9 + 1;\n          *pmVar11 = mVar7;\n          pmVar11 = pmVar11 + 1;\n        } while (bp + iVar24 != pmVar9);\n      }\n    }\n    else {\n      iVar27 = (*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar25);\n      iVar8 = iVar25;\n      if (iVar27 != 0) {\n        if (iVar24 <= iVar25) goto LAB_0005c014;\n        pmVar11 = bp + iVar25;\n        pmVar9 = pmVar13 + iVar25;\n        mVar7 = *pmVar11 + 1;\n        *pmVar9 = mVar7;\n        iVar8 = iVar22;\n        while (mVar7 == 0) {\n          bVar3 = iVar24 == iVar8;\n          iVar8 = iVar8 + 1;\n          if (bVar3) goto LAB_0005c014;\n          pmVar2 = pmVar11 + 1;\n          pmVar9 = pmVar9 + 1;\n          pmVar11 = pmVar11 + 1;\n          mVar7 = *pmVar2 + 1;\n          *pmVar9 = mVar7;\n        }\n      }\n      if ((bp != pmVar13) && (iVar8 < iVar24)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    mVar7 = (*(code *)PTR___gmpn_add_n_00097334)(rp,pmVar13,pmVar15,iVar24);\n    *pmVar18 = mVar7;\n    puVar12 = bp + iVar24 * 2 + -1;\n    pmVar16 = scratch + iVar24 * 7;\n    do {\n      puVar1 = pmVar16 + 1;\n      uVar23 = uVar23 - 1;\n      uVar6 = *puVar12;\n      pmVar16 = pmVar16 + -1;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar6) {\n        pmVar16 = pp + iVar24 * 5 + 1;\n        if (uVar6 < *puVar1) {\n          iVar27 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar15,pmVar13,iVar24);\n        *pmVar16 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar23 != 0xffffffff);\n    iVar27 = 0;\n    pmVar16 = pp + iVar24 * 5 + 1;\n  }" if (parenthesized_expression "(iVar24 == iVar25)" ( (binary_expression "iVar24 == iVar25" identifier == identifier) )) (compound_statement "{\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,rp,bp,iVar24);\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *pmVar18 = *pmVar18 + iVar8;\n    uVar10 = abs_sub_add_n(rm,rp,pp,iVar25 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar25 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pmVar19,pmVar17,rp,iVar25 + 1);\n    iVar26 = iVar25 + 1;\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar19,iVar20,pp,uVar6 ^ uVar10,iVar24,2,4)\n    ;\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp);\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar24);\n    if (iVar8 == 0) goto LAB_0005ba9c;\nLAB_0005c014:\n    iVar27 = 1;\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,pmVar13,pmVar15,iVar24);\n    pmVar16 = pp + iVar24 * 5 + 1;\n    *pmVar18 = iVar8 + 1;\n  }" { (expression_statement "iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,rp,bp,iVar24);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,rp,bp,iVar24)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(rp,rp,bp,iVar24)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(rp,rp,bp,iVar24)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "local_2c = (code *)(PTR_LAB_00097080 + -0x4980);" (assignment_expression "local_2c = (code *)(PTR_LAB_00097080 + -0x4980)" identifier = (cast_expression "(code *)(PTR_LAB_00097080 + -0x4980)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00097080 + -0x4980)" ( (binary_expression "PTR_LAB_00097080 + -0x4980" identifier + number_literal) )))) ;) (expression_statement "*pmVar18 = *pmVar18 + iVar8;" (assignment_expression "*pmVar18 = *pmVar18 + iVar8" (pointer_expression "*pmVar18" * identifier) = (binary_expression "*pmVar18 + iVar8" (pointer_expression "*pmVar18" * identifier) + identifier)) ;) (expression_statement "uVar10 = abs_sub_add_n(rm,rp,pp,iVar25 + 1);" (assignment_expression "uVar10 = abs_sub_add_n(rm,rp,pp,iVar25 + 1)" identifier = (call_expression "abs_sub_add_n(rm,rp,pp,iVar25 + 1)" identifier (argument_list "(rm,rp,pp,iVar25 + 1)" ( identifier , identifier , identifier , (binary_expression "iVar25 + 1" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar25 + 1);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar25 + 1)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp,pmVar14,rm,iVar25 + 1)" ( identifier , identifier , identifier , (binary_expression "iVar25 + 1" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(pmVar19,pmVar17,rp,iVar25 + 1);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(pmVar19,pmVar17,rp,iVar25 + 1)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar19,pmVar17,rp,iVar25 + 1)" ( identifier , identifier , identifier , (binary_expression "iVar25 + 1" identifier + number_literal) ))) ;) (expression_statement "iVar26 = iVar25 + 1;" (assignment_expression "iVar26 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar19,iVar20,pp,uVar6 ^ uVar10,iVar24,2,4)\n    ;" (call_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar19,iVar20,pp,uVar6 ^ uVar10,iVar24,2,4)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)" ( (pointer_expression "*(code *)PTR___gmpn_toom_couple_handling_00097370" * (cast_expression "(code *)PTR___gmpn_toom_couple_handling_00097370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar19,iVar20,pp,uVar6 ^ uVar10,iVar24,2,4)" ( identifier , identifier , identifier , (binary_expression "uVar6 ^ uVar10" identifier ^ identifier) , identifier , number_literal , number_literal ))) ;) (expression_statement "local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp);" (assignment_expression "local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp)" identifier = (call_expression "(*(code *)PTR___gmpn_toom_eval_pm1_000971e0)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_pm1_000971e0)" ( (pointer_expression "*(code *)PTR___gmpn_toom_eval_pm1_000971e0" * (cast_expression "(code *)PTR___gmpn_toom_eval_pm1_000971e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp)" ( identifier , identifier , number_literal , identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar24);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar24)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar24)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar13,bp,pmVar21,iVar24)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar8 == 0) goto LAB_0005ba9c;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0005ba9c;" goto statement_identifier ;)) (labeled_statement "LAB_0005c014:\n    iVar27 = 1;" statement_identifier : (expression_statement "iVar27 = 1;" (assignment_expression "iVar27 = 1" identifier = number_literal) ;)) (expression_statement "iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,pmVar13,pmVar15,iVar24);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,pmVar13,pmVar15,iVar24)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(rp,pmVar13,pmVar15,iVar24)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(rp,pmVar13,pmVar15,iVar24)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "pmVar16 = pp + iVar24 * 5 + 1;" (assignment_expression "pmVar16 = pp + iVar24 * 5 + 1" identifier = (binary_expression "pp + iVar24 * 5 + 1" (binary_expression "pp + iVar24 * 5" identifier + (binary_expression "iVar24 * 5" identifier * number_literal)) + number_literal)) ;) (expression_statement "*pmVar18 = iVar8 + 1;" (assignment_expression "*pmVar18 = iVar8 + 1" (pointer_expression "*pmVar18" * identifier) = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n    iVar8 = iVar25 + 1;\n    if (iVar8 == 0) {\n      iVar8 = 0;\n      if (rp != bp) {\nLAB_0005b968:\n        pmVar11 = bp + iVar8;\n        pmVar9 = rp + iVar8;\n        do {\n          mVar7 = *pmVar11;\n          pmVar11 = pmVar11 + 1;\n          *pmVar9 = mVar7;\n          pmVar9 = pmVar9 + 1;\n        } while (pmVar11 != bp + iVar24);\n      }\nLAB_0005b98c:\n      mVar7 = 0;\n    }\n    else {\n      iVar26 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar8);\n      if (iVar26 == 0) {\n        iVar8 = iVar25 + 1;\nLAB_0005c0cc:\n        if (rp == bp) goto LAB_0005b98c;\n        if (iVar8 < iVar24) goto LAB_0005b968;\n        mVar7 = 0;\n      }\n      else {\n        mVar7 = 1;\n        if (iVar8 < iVar24) {\n          iVar8 = iVar25 + 2;\n          mVar7 = bp[iVar25 + 1];\n          rp[iVar25 + 1] = mVar7 + 1;\n          if (mVar7 + 1 == 0) {\n            pmVar11 = bp + iVar25;\n            pmVar16 = rp + iVar25;\n            do {\n              if (iVar24 == iVar8) {\n                mVar7 = 1;\n                goto LAB_0005b990;\n              }\n              mVar7 = pmVar11[2];\n              iVar8 = iVar8 + 1;\n              pmVar11 = pmVar11 + 1;\n              pmVar16[2] = mVar7 + 1;\n              pmVar16 = pmVar16 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar26 = uVar23 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *pmVar18 = mVar7;\n    uVar10 = abs_sub_add_n(rm,rp,pp,iVar26);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pmVar19,pmVar17,rp,iVar26);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar19,iVar20,pp,uVar6 ^ uVar10,iVar24,2,4)\n    ;\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp);\n    if (iVar25 == 0) {\n      if (bp != pmVar13) {\n        iVar8 = 0;\nLAB_0005ba74:\n        pmVar9 = bp + iVar8;\n        pmVar11 = pmVar13 + iVar8;\n        do {\n          mVar7 = *pmVar9;\n          pmVar9 = pmVar9 + 1;\n          *pmVar11 = mVar7;\n          pmVar11 = pmVar11 + 1;\n        } while (bp + iVar24 != pmVar9);\n      }\n    }\n    else {\n      iVar27 = (*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar25);\n      iVar8 = iVar25;\n      if (iVar27 != 0) {\n        if (iVar24 <= iVar25) goto LAB_0005c014;\n        pmVar11 = bp + iVar25;\n        pmVar9 = pmVar13 + iVar25;\n        mVar7 = *pmVar11 + 1;\n        *pmVar9 = mVar7;\n        iVar8 = iVar22;\n        while (mVar7 == 0) {\n          bVar3 = iVar24 == iVar8;\n          iVar8 = iVar8 + 1;\n          if (bVar3) goto LAB_0005c014;\n          pmVar2 = pmVar11 + 1;\n          pmVar9 = pmVar9 + 1;\n          pmVar11 = pmVar11 + 1;\n          mVar7 = *pmVar2 + 1;\n          *pmVar9 = mVar7;\n        }\n      }\n      if ((bp != pmVar13) && (iVar8 < iVar24)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    mVar7 = (*(code *)PTR___gmpn_add_n_00097334)(rp,pmVar13,pmVar15,iVar24);\n    *pmVar18 = mVar7;\n    puVar12 = bp + iVar24 * 2 + -1;\n    pmVar16 = scratch + iVar24 * 7;\n    do {\n      puVar1 = pmVar16 + 1;\n      uVar23 = uVar23 - 1;\n      uVar6 = *puVar12;\n      pmVar16 = pmVar16 + -1;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar6) {\n        pmVar16 = pp + iVar24 * 5 + 1;\n        if (uVar6 < *puVar1) {\n          iVar27 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar15,pmVar13,iVar24);\n        *pmVar16 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar23 != 0xffffffff);\n    iVar27 = 0;\n    pmVar16 = pp + iVar24 * 5 + 1;\n  }" else (compound_statement "{\n    iVar8 = iVar25 + 1;\n    if (iVar8 == 0) {\n      iVar8 = 0;\n      if (rp != bp) {\nLAB_0005b968:\n        pmVar11 = bp + iVar8;\n        pmVar9 = rp + iVar8;\n        do {\n          mVar7 = *pmVar11;\n          pmVar11 = pmVar11 + 1;\n          *pmVar9 = mVar7;\n          pmVar9 = pmVar9 + 1;\n        } while (pmVar11 != bp + iVar24);\n      }\nLAB_0005b98c:\n      mVar7 = 0;\n    }\n    else {\n      iVar26 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar8);\n      if (iVar26 == 0) {\n        iVar8 = iVar25 + 1;\nLAB_0005c0cc:\n        if (rp == bp) goto LAB_0005b98c;\n        if (iVar8 < iVar24) goto LAB_0005b968;\n        mVar7 = 0;\n      }\n      else {\n        mVar7 = 1;\n        if (iVar8 < iVar24) {\n          iVar8 = iVar25 + 2;\n          mVar7 = bp[iVar25 + 1];\n          rp[iVar25 + 1] = mVar7 + 1;\n          if (mVar7 + 1 == 0) {\n            pmVar11 = bp + iVar25;\n            pmVar16 = rp + iVar25;\n            do {\n              if (iVar24 == iVar8) {\n                mVar7 = 1;\n                goto LAB_0005b990;\n              }\n              mVar7 = pmVar11[2];\n              iVar8 = iVar8 + 1;\n              pmVar11 = pmVar11 + 1;\n              pmVar16[2] = mVar7 + 1;\n              pmVar16 = pmVar16 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar26 = uVar23 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *pmVar18 = mVar7;\n    uVar10 = abs_sub_add_n(rm,rp,pp,iVar26);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26);\n    (*(code *)PTR___gmpn_mul_n_00097364)(pmVar19,pmVar17,rp,iVar26);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar19,iVar20,pp,uVar6 ^ uVar10,iVar24,2,4)\n    ;\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp);\n    if (iVar25 == 0) {\n      if (bp != pmVar13) {\n        iVar8 = 0;\nLAB_0005ba74:\n        pmVar9 = bp + iVar8;\n        pmVar11 = pmVar13 + iVar8;\n        do {\n          mVar7 = *pmVar9;\n          pmVar9 = pmVar9 + 1;\n          *pmVar11 = mVar7;\n          pmVar11 = pmVar11 + 1;\n        } while (bp + iVar24 != pmVar9);\n      }\n    }\n    else {\n      iVar27 = (*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar25);\n      iVar8 = iVar25;\n      if (iVar27 != 0) {\n        if (iVar24 <= iVar25) goto LAB_0005c014;\n        pmVar11 = bp + iVar25;\n        pmVar9 = pmVar13 + iVar25;\n        mVar7 = *pmVar11 + 1;\n        *pmVar9 = mVar7;\n        iVar8 = iVar22;\n        while (mVar7 == 0) {\n          bVar3 = iVar24 == iVar8;\n          iVar8 = iVar8 + 1;\n          if (bVar3) goto LAB_0005c014;\n          pmVar2 = pmVar11 + 1;\n          pmVar9 = pmVar9 + 1;\n          pmVar11 = pmVar11 + 1;\n          mVar7 = *pmVar2 + 1;\n          *pmVar9 = mVar7;\n        }\n      }\n      if ((bp != pmVar13) && (iVar8 < iVar24)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    mVar7 = (*(code *)PTR___gmpn_add_n_00097334)(rp,pmVar13,pmVar15,iVar24);\n    *pmVar18 = mVar7;\n    puVar12 = bp + iVar24 * 2 + -1;\n    pmVar16 = scratch + iVar24 * 7;\n    do {\n      puVar1 = pmVar16 + 1;\n      uVar23 = uVar23 - 1;\n      uVar6 = *puVar12;\n      pmVar16 = pmVar16 + -1;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar6) {\n        pmVar16 = pp + iVar24 * 5 + 1;\n        if (uVar6 < *puVar1) {\n          iVar27 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar15,pmVar13,iVar24);\n        *pmVar16 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar23 != 0xffffffff);\n    iVar27 = 0;\n    pmVar16 = pp + iVar24 * 5 + 1;\n  }" { (expression_statement "iVar8 = iVar25 + 1;" (assignment_expression "iVar8 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (if_statement "if (iVar8 == 0) {\n      iVar8 = 0;\n      if (rp != bp) {\nLAB_0005b968:\n        pmVar11 = bp + iVar8;\n        pmVar9 = rp + iVar8;\n        do {\n          mVar7 = *pmVar11;\n          pmVar11 = pmVar11 + 1;\n          *pmVar9 = mVar7;\n          pmVar9 = pmVar9 + 1;\n        } while (pmVar11 != bp + iVar24);\n      }\nLAB_0005b98c:\n      mVar7 = 0;\n    }\n    else {\n      iVar26 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar8);\n      if (iVar26 == 0) {\n        iVar8 = iVar25 + 1;\nLAB_0005c0cc:\n        if (rp == bp) goto LAB_0005b98c;\n        if (iVar8 < iVar24) goto LAB_0005b968;\n        mVar7 = 0;\n      }\n      else {\n        mVar7 = 1;\n        if (iVar8 < iVar24) {\n          iVar8 = iVar25 + 2;\n          mVar7 = bp[iVar25 + 1];\n          rp[iVar25 + 1] = mVar7 + 1;\n          if (mVar7 + 1 == 0) {\n            pmVar11 = bp + iVar25;\n            pmVar16 = rp + iVar25;\n            do {\n              if (iVar24 == iVar8) {\n                mVar7 = 1;\n                goto LAB_0005b990;\n              }\n              mVar7 = pmVar11[2];\n              iVar8 = iVar8 + 1;\n              pmVar11 = pmVar11 + 1;\n              pmVar16[2] = mVar7 + 1;\n              pmVar16 = pmVar16 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar8 = 0;\n      if (rp != bp) {\nLAB_0005b968:\n        pmVar11 = bp + iVar8;\n        pmVar9 = rp + iVar8;\n        do {\n          mVar7 = *pmVar11;\n          pmVar11 = pmVar11 + 1;\n          *pmVar9 = mVar7;\n          pmVar9 = pmVar9 + 1;\n        } while (pmVar11 != bp + iVar24);\n      }\nLAB_0005b98c:\n      mVar7 = 0;\n    }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (rp != bp) {\nLAB_0005b968:\n        pmVar11 = bp + iVar8;\n        pmVar9 = rp + iVar8;\n        do {\n          mVar7 = *pmVar11;\n          pmVar11 = pmVar11 + 1;\n          *pmVar9 = mVar7;\n          pmVar9 = pmVar9 + 1;\n        } while (pmVar11 != bp + iVar24);\n      }" if (parenthesized_expression "(rp != bp)" ( (binary_expression "rp != bp" identifier != identifier) )) (compound_statement "{\nLAB_0005b968:\n        pmVar11 = bp + iVar8;\n        pmVar9 = rp + iVar8;\n        do {\n          mVar7 = *pmVar11;\n          pmVar11 = pmVar11 + 1;\n          *pmVar9 = mVar7;\n          pmVar9 = pmVar9 + 1;\n        } while (pmVar11 != bp + iVar24);\n      }" { (labeled_statement "LAB_0005b968:\n        pmVar11 = bp + iVar8;" statement_identifier : (expression_statement "pmVar11 = bp + iVar8;" (assignment_expression "pmVar11 = bp + iVar8" identifier = (binary_expression "bp + iVar8" identifier + identifier)) ;)) (expression_statement "pmVar9 = rp + iVar8;" (assignment_expression "pmVar9 = rp + iVar8" identifier = (binary_expression "rp + iVar8" identifier + identifier)) ;) (do_statement "do {\n          mVar7 = *pmVar11;\n          pmVar11 = pmVar11 + 1;\n          *pmVar9 = mVar7;\n          pmVar9 = pmVar9 + 1;\n        } while (pmVar11 != bp + iVar24);" do (compound_statement "{\n          mVar7 = *pmVar11;\n          pmVar11 = pmVar11 + 1;\n          *pmVar9 = mVar7;\n          pmVar9 = pmVar9 + 1;\n        }" { (expression_statement "mVar7 = *pmVar11;" (assignment_expression "mVar7 = *pmVar11" identifier = (pointer_expression "*pmVar11" * identifier)) ;) (expression_statement "pmVar11 = pmVar11 + 1;" (assignment_expression "pmVar11 = pmVar11 + 1" identifier = (binary_expression "pmVar11 + 1" identifier + number_literal)) ;) (expression_statement "*pmVar9 = mVar7;" (assignment_expression "*pmVar9 = mVar7" (pointer_expression "*pmVar9" * identifier) = identifier) ;) (expression_statement "pmVar9 = pmVar9 + 1;" (assignment_expression "pmVar9 = pmVar9 + 1" identifier = (binary_expression "pmVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pmVar11 != bp + iVar24)" ( (binary_expression "pmVar11 != bp + iVar24" identifier != (binary_expression "bp + iVar24" identifier + identifier)) )) ;) })) (labeled_statement "LAB_0005b98c:\n      mVar7 = 0;" statement_identifier : (expression_statement "mVar7 = 0;" (assignment_expression "mVar7 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n      iVar26 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar8);\n      if (iVar26 == 0) {\n        iVar8 = iVar25 + 1;\nLAB_0005c0cc:\n        if (rp == bp) goto LAB_0005b98c;\n        if (iVar8 < iVar24) goto LAB_0005b968;\n        mVar7 = 0;\n      }\n      else {\n        mVar7 = 1;\n        if (iVar8 < iVar24) {\n          iVar8 = iVar25 + 2;\n          mVar7 = bp[iVar25 + 1];\n          rp[iVar25 + 1] = mVar7 + 1;\n          if (mVar7 + 1 == 0) {\n            pmVar11 = bp + iVar25;\n            pmVar16 = rp + iVar25;\n            do {\n              if (iVar24 == iVar8) {\n                mVar7 = 1;\n                goto LAB_0005b990;\n              }\n              mVar7 = pmVar11[2];\n              iVar8 = iVar8 + 1;\n              pmVar11 = pmVar11 + 1;\n              pmVar16[2] = mVar7 + 1;\n              pmVar16 = pmVar16 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }" else (compound_statement "{\n      iVar26 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar8);\n      if (iVar26 == 0) {\n        iVar8 = iVar25 + 1;\nLAB_0005c0cc:\n        if (rp == bp) goto LAB_0005b98c;\n        if (iVar8 < iVar24) goto LAB_0005b968;\n        mVar7 = 0;\n      }\n      else {\n        mVar7 = 1;\n        if (iVar8 < iVar24) {\n          iVar8 = iVar25 + 2;\n          mVar7 = bp[iVar25 + 1];\n          rp[iVar25 + 1] = mVar7 + 1;\n          if (mVar7 + 1 == 0) {\n            pmVar11 = bp + iVar25;\n            pmVar16 = rp + iVar25;\n            do {\n              if (iVar24 == iVar8) {\n                mVar7 = 1;\n                goto LAB_0005b990;\n              }\n              mVar7 = pmVar11[2];\n              iVar8 = iVar8 + 1;\n              pmVar11 = pmVar11 + 1;\n              pmVar16[2] = mVar7 + 1;\n              pmVar16 = pmVar16 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }" { (expression_statement "iVar26 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar8);" (assignment_expression "iVar26 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar8)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar8)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(rp,bp,rp,iVar8)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar26 == 0) {\n        iVar8 = iVar25 + 1;\nLAB_0005c0cc:\n        if (rp == bp) goto LAB_0005b98c;\n        if (iVar8 < iVar24) goto LAB_0005b968;\n        mVar7 = 0;\n      }\n      else {\n        mVar7 = 1;\n        if (iVar8 < iVar24) {\n          iVar8 = iVar25 + 2;\n          mVar7 = bp[iVar25 + 1];\n          rp[iVar25 + 1] = mVar7 + 1;\n          if (mVar7 + 1 == 0) {\n            pmVar11 = bp + iVar25;\n            pmVar16 = rp + iVar25;\n            do {\n              if (iVar24 == iVar8) {\n                mVar7 = 1;\n                goto LAB_0005b990;\n              }\n              mVar7 = pmVar11[2];\n              iVar8 = iVar8 + 1;\n              pmVar11 = pmVar11 + 1;\n              pmVar16[2] = mVar7 + 1;\n              pmVar16 = pmVar16 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar8 = iVar25 + 1;\nLAB_0005c0cc:\n        if (rp == bp) goto LAB_0005b98c;\n        if (iVar8 < iVar24) goto LAB_0005b968;\n        mVar7 = 0;\n      }" { (expression_statement "iVar8 = iVar25 + 1;" (assignment_expression "iVar8 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_0005c0cc:\n        if (rp == bp) goto LAB_0005b98c;" statement_identifier : (if_statement "if (rp == bp) goto LAB_0005b98c;" if (parenthesized_expression "(rp == bp)" ( (binary_expression "rp == bp" identifier == identifier) )) (goto_statement "goto LAB_0005b98c;" goto statement_identifier ;))) (if_statement "if (iVar8 < iVar24) goto LAB_0005b968;" if (parenthesized_expression "(iVar8 < iVar24)" ( (binary_expression "iVar8 < iVar24" identifier < identifier) )) (goto_statement "goto LAB_0005b968;" goto statement_identifier ;)) (expression_statement "mVar7 = 0;" (assignment_expression "mVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        mVar7 = 1;\n        if (iVar8 < iVar24) {\n          iVar8 = iVar25 + 2;\n          mVar7 = bp[iVar25 + 1];\n          rp[iVar25 + 1] = mVar7 + 1;\n          if (mVar7 + 1 == 0) {\n            pmVar11 = bp + iVar25;\n            pmVar16 = rp + iVar25;\n            do {\n              if (iVar24 == iVar8) {\n                mVar7 = 1;\n                goto LAB_0005b990;\n              }\n              mVar7 = pmVar11[2];\n              iVar8 = iVar8 + 1;\n              pmVar11 = pmVar11 + 1;\n              pmVar16[2] = mVar7 + 1;\n              pmVar16 = pmVar16 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }" else (compound_statement "{\n        mVar7 = 1;\n        if (iVar8 < iVar24) {\n          iVar8 = iVar25 + 2;\n          mVar7 = bp[iVar25 + 1];\n          rp[iVar25 + 1] = mVar7 + 1;\n          if (mVar7 + 1 == 0) {\n            pmVar11 = bp + iVar25;\n            pmVar16 = rp + iVar25;\n            do {\n              if (iVar24 == iVar8) {\n                mVar7 = 1;\n                goto LAB_0005b990;\n              }\n              mVar7 = pmVar11[2];\n              iVar8 = iVar8 + 1;\n              pmVar11 = pmVar11 + 1;\n              pmVar16[2] = mVar7 + 1;\n              pmVar16 = pmVar16 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }" { (expression_statement "mVar7 = 1;" (assignment_expression "mVar7 = 1" identifier = number_literal) ;) (if_statement "if (iVar8 < iVar24) {\n          iVar8 = iVar25 + 2;\n          mVar7 = bp[iVar25 + 1];\n          rp[iVar25 + 1] = mVar7 + 1;\n          if (mVar7 + 1 == 0) {\n            pmVar11 = bp + iVar25;\n            pmVar16 = rp + iVar25;\n            do {\n              if (iVar24 == iVar8) {\n                mVar7 = 1;\n                goto LAB_0005b990;\n              }\n              mVar7 = pmVar11[2];\n              iVar8 = iVar8 + 1;\n              pmVar11 = pmVar11 + 1;\n              pmVar16[2] = mVar7 + 1;\n              pmVar16 = pmVar16 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n          goto LAB_0005c0cc;\n        }" if (parenthesized_expression "(iVar8 < iVar24)" ( (binary_expression "iVar8 < iVar24" identifier < identifier) )) (compound_statement "{\n          iVar8 = iVar25 + 2;\n          mVar7 = bp[iVar25 + 1];\n          rp[iVar25 + 1] = mVar7 + 1;\n          if (mVar7 + 1 == 0) {\n            pmVar11 = bp + iVar25;\n            pmVar16 = rp + iVar25;\n            do {\n              if (iVar24 == iVar8) {\n                mVar7 = 1;\n                goto LAB_0005b990;\n              }\n              mVar7 = pmVar11[2];\n              iVar8 = iVar8 + 1;\n              pmVar11 = pmVar11 + 1;\n              pmVar16[2] = mVar7 + 1;\n              pmVar16 = pmVar16 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n          goto LAB_0005c0cc;\n        }" { (expression_statement "iVar8 = iVar25 + 2;" (assignment_expression "iVar8 = iVar25 + 2" identifier = (binary_expression "iVar25 + 2" identifier + number_literal)) ;) (expression_statement "mVar7 = bp[iVar25 + 1];" (assignment_expression "mVar7 = bp[iVar25 + 1]" identifier = (subscript_expression "bp[iVar25 + 1]" identifier [ (binary_expression "iVar25 + 1" identifier + number_literal) ])) ;) (expression_statement "rp[iVar25 + 1] = mVar7 + 1;" (assignment_expression "rp[iVar25 + 1] = mVar7 + 1" (subscript_expression "rp[iVar25 + 1]" identifier [ (binary_expression "iVar25 + 1" identifier + number_literal) ]) = (binary_expression "mVar7 + 1" identifier + number_literal)) ;) (if_statement "if (mVar7 + 1 == 0) {\n            pmVar11 = bp + iVar25;\n            pmVar16 = rp + iVar25;\n            do {\n              if (iVar24 == iVar8) {\n                mVar7 = 1;\n                goto LAB_0005b990;\n              }\n              mVar7 = pmVar11[2];\n              iVar8 = iVar8 + 1;\n              pmVar11 = pmVar11 + 1;\n              pmVar16[2] = mVar7 + 1;\n              pmVar16 = pmVar16 + 1;\n            } while (mVar7 + 1 == 0);\n          }" if (parenthesized_expression "(mVar7 + 1 == 0)" ( (binary_expression "mVar7 + 1 == 0" (binary_expression "mVar7 + 1" identifier + number_literal) == number_literal) )) (compound_statement "{\n            pmVar11 = bp + iVar25;\n            pmVar16 = rp + iVar25;\n            do {\n              if (iVar24 == iVar8) {\n                mVar7 = 1;\n                goto LAB_0005b990;\n              }\n              mVar7 = pmVar11[2];\n              iVar8 = iVar8 + 1;\n              pmVar11 = pmVar11 + 1;\n              pmVar16[2] = mVar7 + 1;\n              pmVar16 = pmVar16 + 1;\n            } while (mVar7 + 1 == 0);\n          }" { (expression_statement "pmVar11 = bp + iVar25;" (assignment_expression "pmVar11 = bp + iVar25" identifier = (binary_expression "bp + iVar25" identifier + identifier)) ;) (expression_statement "pmVar16 = rp + iVar25;" (assignment_expression "pmVar16 = rp + iVar25" identifier = (binary_expression "rp + iVar25" identifier + identifier)) ;) (do_statement "do {\n              if (iVar24 == iVar8) {\n                mVar7 = 1;\n                goto LAB_0005b990;\n              }\n              mVar7 = pmVar11[2];\n              iVar8 = iVar8 + 1;\n              pmVar11 = pmVar11 + 1;\n              pmVar16[2] = mVar7 + 1;\n              pmVar16 = pmVar16 + 1;\n            } while (mVar7 + 1 == 0);" do (compound_statement "{\n              if (iVar24 == iVar8) {\n                mVar7 = 1;\n                goto LAB_0005b990;\n              }\n              mVar7 = pmVar11[2];\n              iVar8 = iVar8 + 1;\n              pmVar11 = pmVar11 + 1;\n              pmVar16[2] = mVar7 + 1;\n              pmVar16 = pmVar16 + 1;\n            }" { (if_statement "if (iVar24 == iVar8) {\n                mVar7 = 1;\n                goto LAB_0005b990;\n              }" if (parenthesized_expression "(iVar24 == iVar8)" ( (binary_expression "iVar24 == iVar8" identifier == identifier) )) (compound_statement "{\n                mVar7 = 1;\n                goto LAB_0005b990;\n              }" { (expression_statement "mVar7 = 1;" (assignment_expression "mVar7 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0005b990;" goto statement_identifier ;) })) (expression_statement "mVar7 = pmVar11[2];" (assignment_expression "mVar7 = pmVar11[2]" identifier = (subscript_expression "pmVar11[2]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "pmVar11 = pmVar11 + 1;" (assignment_expression "pmVar11 = pmVar11 + 1" identifier = (binary_expression "pmVar11 + 1" identifier + number_literal)) ;) (expression_statement "pmVar16[2] = mVar7 + 1;" (assignment_expression "pmVar16[2] = mVar7 + 1" (subscript_expression "pmVar16[2]" identifier [ number_literal ]) = (binary_expression "mVar7 + 1" identifier + number_literal)) ;) (expression_statement "pmVar16 = pmVar16 + 1;" (assignment_expression "pmVar16 = pmVar16 + 1" identifier = (binary_expression "pmVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(mVar7 + 1 == 0)" ( (binary_expression "mVar7 + 1 == 0" (binary_expression "mVar7 + 1" identifier + number_literal) == number_literal) )) ;) })) (goto_statement "goto LAB_0005c0cc;" goto statement_identifier ;) })) }))) }))) (labeled_statement "LAB_0005b990:\n    iVar26 = uVar23 + 2;" statement_identifier : (expression_statement "iVar26 = uVar23 + 2;" (assignment_expression "iVar26 = uVar23 + 2" identifier = (binary_expression "uVar23 + 2" identifier + number_literal)) ;)) (expression_statement "local_2c = (code *)(PTR_LAB_00097080 + -0x4980);" (assignment_expression "local_2c = (code *)(PTR_LAB_00097080 + -0x4980)" identifier = (cast_expression "(code *)(PTR_LAB_00097080 + -0x4980)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00097080 + -0x4980)" ( (binary_expression "PTR_LAB_00097080 + -0x4980" identifier + number_literal) )))) ;) (expression_statement "*pmVar18 = mVar7;" (assignment_expression "*pmVar18 = mVar7" (pointer_expression "*pmVar18" * identifier) = identifier) ;) (expression_statement "uVar10 = abs_sub_add_n(rm,rp,pp,iVar26);" (assignment_expression "uVar10 = abs_sub_add_n(rm,rp,pp,iVar26)" identifier = (call_expression "abs_sub_add_n(rm,rp,pp,iVar26)" identifier (argument_list "(rm,rp,pp,iVar26)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp,pmVar14,rm,iVar26)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(pmVar19,pmVar17,rp,iVar26);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(pmVar19,pmVar17,rp,iVar26)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar19,pmVar17,rp,iVar26)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar19,iVar20,pp,uVar6 ^ uVar10,iVar24,2,4)\n    ;" (call_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar19,iVar20,pp,uVar6 ^ uVar10,iVar24,2,4)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)" ( (pointer_expression "*(code *)PTR___gmpn_toom_couple_handling_00097370" * (cast_expression "(code *)PTR___gmpn_toom_couple_handling_00097370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar19,iVar20,pp,uVar6 ^ uVar10,iVar24,2,4)" ( identifier , identifier , identifier , (binary_expression "uVar6 ^ uVar10" identifier ^ identifier) , identifier , number_literal , number_literal ))) ;) (expression_statement "local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp);" (assignment_expression "local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp)" identifier = (call_expression "(*(code *)PTR___gmpn_toom_eval_pm1_000971e0)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_pm1_000971e0)" ( (pointer_expression "*(code *)PTR___gmpn_toom_eval_pm1_000971e0" * (cast_expression "(code *)PTR___gmpn_toom_eval_pm1_000971e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp)" ( identifier , identifier , number_literal , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar25 == 0) {\n      if (bp != pmVar13) {\n        iVar8 = 0;\nLAB_0005ba74:\n        pmVar9 = bp + iVar8;\n        pmVar11 = pmVar13 + iVar8;\n        do {\n          mVar7 = *pmVar9;\n          pmVar9 = pmVar9 + 1;\n          *pmVar11 = mVar7;\n          pmVar11 = pmVar11 + 1;\n        } while (bp + iVar24 != pmVar9);\n      }\n    }\n    else {\n      iVar27 = (*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar25);\n      iVar8 = iVar25;\n      if (iVar27 != 0) {\n        if (iVar24 <= iVar25) goto LAB_0005c014;\n        pmVar11 = bp + iVar25;\n        pmVar9 = pmVar13 + iVar25;\n        mVar7 = *pmVar11 + 1;\n        *pmVar9 = mVar7;\n        iVar8 = iVar22;\n        while (mVar7 == 0) {\n          bVar3 = iVar24 == iVar8;\n          iVar8 = iVar8 + 1;\n          if (bVar3) goto LAB_0005c014;\n          pmVar2 = pmVar11 + 1;\n          pmVar9 = pmVar9 + 1;\n          pmVar11 = pmVar11 + 1;\n          mVar7 = *pmVar2 + 1;\n          *pmVar9 = mVar7;\n        }\n      }\n      if ((bp != pmVar13) && (iVar8 < iVar24)) goto LAB_0005ba74;\n    }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n      if (bp != pmVar13) {\n        iVar8 = 0;\nLAB_0005ba74:\n        pmVar9 = bp + iVar8;\n        pmVar11 = pmVar13 + iVar8;\n        do {\n          mVar7 = *pmVar9;\n          pmVar9 = pmVar9 + 1;\n          *pmVar11 = mVar7;\n          pmVar11 = pmVar11 + 1;\n        } while (bp + iVar24 != pmVar9);\n      }\n    }" { (if_statement "if (bp != pmVar13) {\n        iVar8 = 0;\nLAB_0005ba74:\n        pmVar9 = bp + iVar8;\n        pmVar11 = pmVar13 + iVar8;\n        do {\n          mVar7 = *pmVar9;\n          pmVar9 = pmVar9 + 1;\n          *pmVar11 = mVar7;\n          pmVar11 = pmVar11 + 1;\n        } while (bp + iVar24 != pmVar9);\n      }" if (parenthesized_expression "(bp != pmVar13)" ( (binary_expression "bp != pmVar13" identifier != identifier) )) (compound_statement "{\n        iVar8 = 0;\nLAB_0005ba74:\n        pmVar9 = bp + iVar8;\n        pmVar11 = pmVar13 + iVar8;\n        do {\n          mVar7 = *pmVar9;\n          pmVar9 = pmVar9 + 1;\n          *pmVar11 = mVar7;\n          pmVar11 = pmVar11 + 1;\n        } while (bp + iVar24 != pmVar9);\n      }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0005ba74:\n        pmVar9 = bp + iVar8;" statement_identifier : (expression_statement "pmVar9 = bp + iVar8;" (assignment_expression "pmVar9 = bp + iVar8" identifier = (binary_expression "bp + iVar8" identifier + identifier)) ;)) (expression_statement "pmVar11 = pmVar13 + iVar8;" (assignment_expression "pmVar11 = pmVar13 + iVar8" identifier = (binary_expression "pmVar13 + iVar8" identifier + identifier)) ;) (do_statement "do {\n          mVar7 = *pmVar9;\n          pmVar9 = pmVar9 + 1;\n          *pmVar11 = mVar7;\n          pmVar11 = pmVar11 + 1;\n        } while (bp + iVar24 != pmVar9);" do (compound_statement "{\n          mVar7 = *pmVar9;\n          pmVar9 = pmVar9 + 1;\n          *pmVar11 = mVar7;\n          pmVar11 = pmVar11 + 1;\n        }" { (expression_statement "mVar7 = *pmVar9;" (assignment_expression "mVar7 = *pmVar9" identifier = (pointer_expression "*pmVar9" * identifier)) ;) (expression_statement "pmVar9 = pmVar9 + 1;" (assignment_expression "pmVar9 = pmVar9 + 1" identifier = (binary_expression "pmVar9 + 1" identifier + number_literal)) ;) (expression_statement "*pmVar11 = mVar7;" (assignment_expression "*pmVar11 = mVar7" (pointer_expression "*pmVar11" * identifier) = identifier) ;) (expression_statement "pmVar11 = pmVar11 + 1;" (assignment_expression "pmVar11 = pmVar11 + 1" identifier = (binary_expression "pmVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bp + iVar24 != pmVar9)" ( (binary_expression "bp + iVar24 != pmVar9" (binary_expression "bp + iVar24" identifier + identifier) != identifier) )) ;) })) }) (else_clause "else {\n      iVar27 = (*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar25);\n      iVar8 = iVar25;\n      if (iVar27 != 0) {\n        if (iVar24 <= iVar25) goto LAB_0005c014;\n        pmVar11 = bp + iVar25;\n        pmVar9 = pmVar13 + iVar25;\n        mVar7 = *pmVar11 + 1;\n        *pmVar9 = mVar7;\n        iVar8 = iVar22;\n        while (mVar7 == 0) {\n          bVar3 = iVar24 == iVar8;\n          iVar8 = iVar8 + 1;\n          if (bVar3) goto LAB_0005c014;\n          pmVar2 = pmVar11 + 1;\n          pmVar9 = pmVar9 + 1;\n          pmVar11 = pmVar11 + 1;\n          mVar7 = *pmVar2 + 1;\n          *pmVar9 = mVar7;\n        }\n      }\n      if ((bp != pmVar13) && (iVar8 < iVar24)) goto LAB_0005ba74;\n    }" else (compound_statement "{\n      iVar27 = (*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar25);\n      iVar8 = iVar25;\n      if (iVar27 != 0) {\n        if (iVar24 <= iVar25) goto LAB_0005c014;\n        pmVar11 = bp + iVar25;\n        pmVar9 = pmVar13 + iVar25;\n        mVar7 = *pmVar11 + 1;\n        *pmVar9 = mVar7;\n        iVar8 = iVar22;\n        while (mVar7 == 0) {\n          bVar3 = iVar24 == iVar8;\n          iVar8 = iVar8 + 1;\n          if (bVar3) goto LAB_0005c014;\n          pmVar2 = pmVar11 + 1;\n          pmVar9 = pmVar9 + 1;\n          pmVar11 = pmVar11 + 1;\n          mVar7 = *pmVar2 + 1;\n          *pmVar9 = mVar7;\n        }\n      }\n      if ((bp != pmVar13) && (iVar8 < iVar24)) goto LAB_0005ba74;\n    }" { (expression_statement "iVar27 = (*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar25);" (assignment_expression "iVar27 = (*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar25)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(pmVar13,bp,pmVar21,iVar25)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar13,bp,pmVar21,iVar25)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar8 = iVar25;" (assignment_expression "iVar8 = iVar25" identifier = identifier) ;) (if_statement "if (iVar27 != 0) {\n        if (iVar24 <= iVar25) goto LAB_0005c014;\n        pmVar11 = bp + iVar25;\n        pmVar9 = pmVar13 + iVar25;\n        mVar7 = *pmVar11 + 1;\n        *pmVar9 = mVar7;\n        iVar8 = iVar22;\n        while (mVar7 == 0) {\n          bVar3 = iVar24 == iVar8;\n          iVar8 = iVar8 + 1;\n          if (bVar3) goto LAB_0005c014;\n          pmVar2 = pmVar11 + 1;\n          pmVar9 = pmVar9 + 1;\n          pmVar11 = pmVar11 + 1;\n          mVar7 = *pmVar2 + 1;\n          *pmVar9 = mVar7;\n        }\n      }" if (parenthesized_expression "(iVar27 != 0)" ( (binary_expression "iVar27 != 0" identifier != number_literal) )) (compound_statement "{\n        if (iVar24 <= iVar25) goto LAB_0005c014;\n        pmVar11 = bp + iVar25;\n        pmVar9 = pmVar13 + iVar25;\n        mVar7 = *pmVar11 + 1;\n        *pmVar9 = mVar7;\n        iVar8 = iVar22;\n        while (mVar7 == 0) {\n          bVar3 = iVar24 == iVar8;\n          iVar8 = iVar8 + 1;\n          if (bVar3) goto LAB_0005c014;\n          pmVar2 = pmVar11 + 1;\n          pmVar9 = pmVar9 + 1;\n          pmVar11 = pmVar11 + 1;\n          mVar7 = *pmVar2 + 1;\n          *pmVar9 = mVar7;\n        }\n      }" { (if_statement "if (iVar24 <= iVar25) goto LAB_0005c014;" if (parenthesized_expression "(iVar24 <= iVar25)" ( (binary_expression "iVar24 <= iVar25" identifier <= identifier) )) (goto_statement "goto LAB_0005c014;" goto statement_identifier ;)) (expression_statement "pmVar11 = bp + iVar25;" (assignment_expression "pmVar11 = bp + iVar25" identifier = (binary_expression "bp + iVar25" identifier + identifier)) ;) (expression_statement "pmVar9 = pmVar13 + iVar25;" (assignment_expression "pmVar9 = pmVar13 + iVar25" identifier = (binary_expression "pmVar13 + iVar25" identifier + identifier)) ;) (expression_statement "mVar7 = *pmVar11 + 1;" (assignment_expression "mVar7 = *pmVar11 + 1" identifier = (binary_expression "*pmVar11 + 1" (pointer_expression "*pmVar11" * identifier) + number_literal)) ;) (expression_statement "*pmVar9 = mVar7;" (assignment_expression "*pmVar9 = mVar7" (pointer_expression "*pmVar9" * identifier) = identifier) ;) (expression_statement "iVar8 = iVar22;" (assignment_expression "iVar8 = iVar22" identifier = identifier) ;) (while_statement "while (mVar7 == 0) {\n          bVar3 = iVar24 == iVar8;\n          iVar8 = iVar8 + 1;\n          if (bVar3) goto LAB_0005c014;\n          pmVar2 = pmVar11 + 1;\n          pmVar9 = pmVar9 + 1;\n          pmVar11 = pmVar11 + 1;\n          mVar7 = *pmVar2 + 1;\n          *pmVar9 = mVar7;\n        }" while (parenthesized_expression "(mVar7 == 0)" ( (binary_expression "mVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          bVar3 = iVar24 == iVar8;\n          iVar8 = iVar8 + 1;\n          if (bVar3) goto LAB_0005c014;\n          pmVar2 = pmVar11 + 1;\n          pmVar9 = pmVar9 + 1;\n          pmVar11 = pmVar11 + 1;\n          mVar7 = *pmVar2 + 1;\n          *pmVar9 = mVar7;\n        }" { (expression_statement "bVar3 = iVar24 == iVar8;" (assignment_expression "bVar3 = iVar24 == iVar8" identifier = (binary_expression "iVar24 == iVar8" identifier == identifier)) ;) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (if_statement "if (bVar3) goto LAB_0005c014;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_0005c014;" goto statement_identifier ;)) (expression_statement "pmVar2 = pmVar11 + 1;" (assignment_expression "pmVar2 = pmVar11 + 1" identifier = (binary_expression "pmVar11 + 1" identifier + number_literal)) ;) (expression_statement "pmVar9 = pmVar9 + 1;" (assignment_expression "pmVar9 = pmVar9 + 1" identifier = (binary_expression "pmVar9 + 1" identifier + number_literal)) ;) (expression_statement "pmVar11 = pmVar11 + 1;" (assignment_expression "pmVar11 = pmVar11 + 1" identifier = (binary_expression "pmVar11 + 1" identifier + number_literal)) ;) (expression_statement "mVar7 = *pmVar2 + 1;" (assignment_expression "mVar7 = *pmVar2 + 1" identifier = (binary_expression "*pmVar2 + 1" (pointer_expression "*pmVar2" * identifier) + number_literal)) ;) (expression_statement "*pmVar9 = mVar7;" (assignment_expression "*pmVar9 = mVar7" (pointer_expression "*pmVar9" * identifier) = identifier) ;) })) })) (if_statement "if ((bp != pmVar13) && (iVar8 < iVar24)) goto LAB_0005ba74;" if (parenthesized_expression "((bp != pmVar13) && (iVar8 < iVar24))" ( (binary_expression "(bp != pmVar13) && (iVar8 < iVar24)" (parenthesized_expression "(bp != pmVar13)" ( (binary_expression "bp != pmVar13" identifier != identifier) )) && (parenthesized_expression "(iVar8 < iVar24)" ( (binary_expression "iVar8 < iVar24" identifier < identifier) ))) )) (goto_statement "goto LAB_0005ba74;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0005ba9c:\n    mVar7 = (*(code *)PTR___gmpn_add_n_00097334)(rp,pmVar13,pmVar15,iVar24);" statement_identifier : (expression_statement "mVar7 = (*(code *)PTR___gmpn_add_n_00097334)(rp,pmVar13,pmVar15,iVar24);" (assignment_expression "mVar7 = (*(code *)PTR___gmpn_add_n_00097334)(rp,pmVar13,pmVar15,iVar24)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(rp,pmVar13,pmVar15,iVar24)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(rp,pmVar13,pmVar15,iVar24)" ( identifier , identifier , identifier , identifier )))) ;)) (expression_statement "*pmVar18 = mVar7;" (assignment_expression "*pmVar18 = mVar7" (pointer_expression "*pmVar18" * identifier) = identifier) ;) (expression_statement "puVar12 = bp + iVar24 * 2 + -1;" (assignment_expression "puVar12 = bp + iVar24 * 2 + -1" identifier = (binary_expression "bp + iVar24 * 2 + -1" (binary_expression "bp + iVar24 * 2" identifier + (binary_expression "iVar24 * 2" identifier * number_literal)) + number_literal)) ;) (expression_statement "pmVar16 = scratch + iVar24 * 7;" (assignment_expression "pmVar16 = scratch + iVar24 * 7" identifier = (binary_expression "scratch + iVar24 * 7" identifier + (binary_expression "iVar24 * 7" identifier * number_literal))) ;) (do_statement "do {\n      puVar1 = pmVar16 + 1;\n      uVar23 = uVar23 - 1;\n      uVar6 = *puVar12;\n      pmVar16 = pmVar16 + -1;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar6) {\n        pmVar16 = pp + iVar24 * 5 + 1;\n        if (uVar6 < *puVar1) {\n          iVar27 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar15,pmVar13,iVar24);\n        *pmVar16 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar23 != 0xffffffff);" do (compound_statement "{\n      puVar1 = pmVar16 + 1;\n      uVar23 = uVar23 - 1;\n      uVar6 = *puVar12;\n      pmVar16 = pmVar16 + -1;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar6) {\n        pmVar16 = pp + iVar24 * 5 + 1;\n        if (uVar6 < *puVar1) {\n          iVar27 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar15,pmVar13,iVar24);\n        *pmVar16 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    }" { (expression_statement "puVar1 = pmVar16 + 1;" (assignment_expression "puVar1 = pmVar16 + 1" identifier = (binary_expression "pmVar16 + 1" identifier + number_literal)) ;) (expression_statement "uVar23 = uVar23 - 1;" (assignment_expression "uVar23 = uVar23 - 1" identifier = (binary_expression "uVar23 - 1" identifier - number_literal)) ;) (expression_statement "uVar6 = *puVar12;" (assignment_expression "uVar6 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "pmVar16 = pmVar16 + -1;" (assignment_expression "pmVar16 = pmVar16 + -1" identifier = (binary_expression "pmVar16 + -1" identifier + number_literal)) ;) (expression_statement "puVar12 = puVar12 + -1;" (assignment_expression "puVar12 = puVar12 + -1" identifier = (binary_expression "puVar12 + -1" identifier + number_literal)) ;) (if_statement "if (*puVar1 != uVar6) {\n        pmVar16 = pp + iVar24 * 5 + 1;\n        if (uVar6 < *puVar1) {\n          iVar27 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar15,pmVar13,iVar24);\n        *pmVar16 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }" if (parenthesized_expression "(*puVar1 != uVar6)" ( (binary_expression "*puVar1 != uVar6" (pointer_expression "*puVar1" * identifier) != identifier) )) (compound_statement "{\n        pmVar16 = pp + iVar24 * 5 + 1;\n        if (uVar6 < *puVar1) {\n          iVar27 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar15,pmVar13,iVar24);\n        *pmVar16 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }" { (expression_statement "pmVar16 = pp + iVar24 * 5 + 1;" (assignment_expression "pmVar16 = pp + iVar24 * 5 + 1" identifier = (binary_expression "pp + iVar24 * 5 + 1" (binary_expression "pp + iVar24 * 5" identifier + (binary_expression "iVar24 * 5" identifier * number_literal)) + number_literal)) ;) (if_statement "if (uVar6 < *puVar1) {\n          iVar27 = 0;\n          goto LAB_0005bb0c;\n        }" if (parenthesized_expression "(uVar6 < *puVar1)" ( (binary_expression "uVar6 < *puVar1" identifier < (pointer_expression "*puVar1" * identifier)) )) (compound_statement "{\n          iVar27 = 0;\n          goto LAB_0005bb0c;\n        }" { (expression_statement "iVar27 = 0;" (assignment_expression "iVar27 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0005bb0c;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar15,pmVar13,iVar24);" (call_expression "(*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar15,pmVar13,iVar24)" (parenthesized_expression "(*(code *)PTR___gmpn_sub_n_00097514)" ( (pointer_expression "*(code *)PTR___gmpn_sub_n_00097514" * (cast_expression "(code *)PTR___gmpn_sub_n_00097514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(rm,pmVar15,pmVar13,iVar24)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*pmVar16 = 0;" (assignment_expression "*pmVar16 = 0" (pointer_expression "*pmVar16" * identifier) = number_literal) ;) (expression_statement "local_38 = ~local_38;" (assignment_expression "local_38 = ~local_38" identifier = (unary_expression "~local_38" ~ identifier)) ;) (goto_statement "goto LAB_0005bb30;" goto statement_identifier ;) })) }) while (parenthesized_expression "(uVar23 != 0xffffffff)" ( (binary_expression "uVar23 != 0xffffffff" identifier != number_literal) )) ;) (expression_statement "iVar27 = 0;" (assignment_expression "iVar27 = 0" identifier = number_literal) ;) (expression_statement "pmVar16 = pp + iVar24 * 5 + 1;" (assignment_expression "pmVar16 = pp + iVar24 * 5 + 1" identifier = (binary_expression "pp + iVar24 * 5 + 1" (binary_expression "pp + iVar24 * 5" identifier + (binary_expression "iVar24 * 5" identifier * number_literal)) + number_literal)) ;) }))) (labeled_statement "LAB_0005bb0c:\n  iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar13,pmVar15,iVar24);" statement_identifier : (expression_statement "iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar13,pmVar15,iVar24);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar13,pmVar15,iVar24)" identifier = (call_expression "(*(code *)PTR___gmpn_sub_n_00097514)(rm,pmVar13,pmVar15,iVar24)" (parenthesized_expression "(*(code *)PTR___gmpn_sub_n_00097514)" ( (pointer_expression "*(code *)PTR___gmpn_sub_n_00097514" * (cast_expression "(code *)PTR___gmpn_sub_n_00097514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(rm,pmVar13,pmVar15,iVar24)" ( identifier , identifier , identifier , identifier )))) ;)) (expression_statement "*pmVar16 = iVar27 - iVar8;" (assignment_expression "*pmVar16 = iVar27 - iVar8" (pointer_expression "*pmVar16" * identifier) = (binary_expression "iVar27 - iVar8" identifier - identifier)) ;) (labeled_statement "LAB_0005bb30:\n  (*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26);" statement_identifier : (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp,pmVar14,rm,iVar26)" ( identifier , identifier , identifier , identifier ))) ;)) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(scratch,pmVar17,rp,iVar26);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(scratch,pmVar17,rp,iVar26)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(scratch,pmVar17,rp,iVar26)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom_couple_handling_00097370)(scratch,iVar20,pp,local_38,iVar24,0,0);" (call_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)(scratch,iVar20,pp,local_38,iVar24,0,0)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)" ( (pointer_expression "*(code *)PTR___gmpn_toom_couple_handling_00097370" * (cast_expression "(code *)PTR___gmpn_toom_couple_handling_00097370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(scratch,iVar20,pp,local_38,iVar24,0,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "uVar23 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp);" (assignment_expression "uVar23 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp)" identifier = (call_expression "(*(code *)PTR___gmpn_toom_eval_pm2_0009747c)(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_pm2_0009747c)" ( (pointer_expression "*(code *)PTR___gmpn_toom_eval_pm2_0009747c" * (cast_expression "(code *)PTR___gmpn_toom_eval_pm2_0009747c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar17,pmVar14,5,ap,iVar24,iVar5,pp)" ( identifier , identifier , number_literal , identifier , identifier , identifier , identifier )))) ;) (expression_statement "mVar7 = (*(code *)PTR___gmpn_lshift_0009756c)(pp,pmVar15,iVar24,1);" (assignment_expression "mVar7 = (*(code *)PTR___gmpn_lshift_0009756c)(pp,pmVar15,iVar24,1)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009756c)(pp,pmVar15,iVar24,1)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009756c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009756c" * (cast_expression "(code *)PTR___gmpn_lshift_0009756c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp,pmVar15,iVar24,1)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "puVar4 = PTR___gmpn_lshift_0009756c;" (assignment_expression "puVar4 = PTR___gmpn_lshift_0009756c" identifier = identifier) ;) (expression_statement "pp[iVar24] = mVar7;" (assignment_expression "pp[iVar24] = mVar7" (subscript_expression "pp[iVar24]" identifier [ identifier ]) = identifier) ;) (expression_statement "mVar7 = (*(code *)puVar4)(rp,pmVar21,iVar25,2);" (assignment_expression "mVar7 = (*(code *)puVar4)(rp,pmVar21,iVar25,2)" identifier = (call_expression "(*(code *)puVar4)(rp,pmVar21,iVar25,2)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(rp,pmVar21,iVar25,2)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "pp[iVar24 * 6 + 3 + iVar25] = mVar7;" (assignment_expression "pp[iVar24 * 6 + 3 + iVar25] = mVar7" (subscript_expression "pp[iVar24 * 6 + 3 + iVar25]" identifier [ (binary_expression "iVar24 * 6 + 3 + iVar25" (binary_expression "iVar24 * 6 + 3" (binary_expression "iVar24 * 6" identifier * number_literal) + number_literal) + identifier) ]) = identifier) ;) (if_statement "if (iVar24 == iVar25) {\n    iVar22 = (*(code *)PTR___gmpn_add_n_00097334)(rp,rp,bp,iVar24);\n    *pmVar18 = *pmVar18 + iVar22;\n    goto LAB_0005bc5c;\n  }" if (parenthesized_expression "(iVar24 == iVar25)" ( (binary_expression "iVar24 == iVar25" identifier == identifier) )) (compound_statement "{\n    iVar22 = (*(code *)PTR___gmpn_add_n_00097334)(rp,rp,bp,iVar24);\n    *pmVar18 = *pmVar18 + iVar22;\n    goto LAB_0005bc5c;\n  }" { (expression_statement "iVar22 = (*(code *)PTR___gmpn_add_n_00097334)(rp,rp,bp,iVar24);" (assignment_expression "iVar22 = (*(code *)PTR___gmpn_add_n_00097334)(rp,rp,bp,iVar24)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(rp,rp,bp,iVar24)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(rp,rp,bp,iVar24)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*pmVar18 = *pmVar18 + iVar22;" (assignment_expression "*pmVar18 = *pmVar18 + iVar22" (pointer_expression "*pmVar18" * identifier) = (binary_expression "*pmVar18 + iVar22" (pointer_expression "*pmVar18" * identifier) + identifier)) ;) (goto_statement "goto LAB_0005bc5c;" goto statement_identifier ;) })) (expression_statement "local_44 = iVar22;" (assignment_expression "local_44 = iVar22" identifier = identifier) ;) (if_statement "if (iVar22 == 0) {\n    mVar7 = 0;\n    if (rp != bp) {\nLAB_0005bc28:\n      pmVar13 = bp + local_44;\n      pmVar9 = rp + local_44;\n      do {\n        mVar7 = *pmVar13;\n        pmVar13 = pmVar13 + 1;\n        *pmVar9 = mVar7;\n        pmVar9 = pmVar9 + 1;\n      } while (bp + iVar24 != pmVar13);\nLAB_0005bc50:\n      mVar7 = 0;\n    }\n  }\n  else {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar22);\n    if (iVar8 != 0) {\n      mVar7 = 1;\n      if (iVar24 <= iVar22) goto LAB_0005bc58;\n      local_44 = iVar25 + 2;\n      mVar7 = bp[iVar22];\n      rp[iVar22] = mVar7 + 1;\n      if (mVar7 + 1 == 0) {\n        pmVar13 = bp + iVar25;\n        pmVar16 = rp + iVar25;\n        do {\n          if (iVar24 == local_44) {\n            mVar7 = 1;\n            goto LAB_0005bc58;\n          }\n          mVar7 = pmVar13[2];\n          local_44 = local_44 + 1;\n          pmVar13 = pmVar13 + 1;\n          pmVar16[2] = mVar7 + 1;\n          pmVar16 = pmVar16 + 1;\n        } while (mVar7 + 1 == 0);\n      }\n    }\n    if (rp == bp) goto LAB_0005bc50;\n    mVar7 = 0;\n    if (local_44 < iVar24) goto LAB_0005bc28;\n  }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n    mVar7 = 0;\n    if (rp != bp) {\nLAB_0005bc28:\n      pmVar13 = bp + local_44;\n      pmVar9 = rp + local_44;\n      do {\n        mVar7 = *pmVar13;\n        pmVar13 = pmVar13 + 1;\n        *pmVar9 = mVar7;\n        pmVar9 = pmVar9 + 1;\n      } while (bp + iVar24 != pmVar13);\nLAB_0005bc50:\n      mVar7 = 0;\n    }\n  }" { (expression_statement "mVar7 = 0;" (assignment_expression "mVar7 = 0" identifier = number_literal) ;) (if_statement "if (rp != bp) {\nLAB_0005bc28:\n      pmVar13 = bp + local_44;\n      pmVar9 = rp + local_44;\n      do {\n        mVar7 = *pmVar13;\n        pmVar13 = pmVar13 + 1;\n        *pmVar9 = mVar7;\n        pmVar9 = pmVar9 + 1;\n      } while (bp + iVar24 != pmVar13);\nLAB_0005bc50:\n      mVar7 = 0;\n    }" if (parenthesized_expression "(rp != bp)" ( (binary_expression "rp != bp" identifier != identifier) )) (compound_statement "{\nLAB_0005bc28:\n      pmVar13 = bp + local_44;\n      pmVar9 = rp + local_44;\n      do {\n        mVar7 = *pmVar13;\n        pmVar13 = pmVar13 + 1;\n        *pmVar9 = mVar7;\n        pmVar9 = pmVar9 + 1;\n      } while (bp + iVar24 != pmVar13);\nLAB_0005bc50:\n      mVar7 = 0;\n    }" { (labeled_statement "LAB_0005bc28:\n      pmVar13 = bp + local_44;" statement_identifier : (expression_statement "pmVar13 = bp + local_44;" (assignment_expression "pmVar13 = bp + local_44" identifier = (binary_expression "bp + local_44" identifier + identifier)) ;)) (expression_statement "pmVar9 = rp + local_44;" (assignment_expression "pmVar9 = rp + local_44" identifier = (binary_expression "rp + local_44" identifier + identifier)) ;) (do_statement "do {\n        mVar7 = *pmVar13;\n        pmVar13 = pmVar13 + 1;\n        *pmVar9 = mVar7;\n        pmVar9 = pmVar9 + 1;\n      } while (bp + iVar24 != pmVar13);" do (compound_statement "{\n        mVar7 = *pmVar13;\n        pmVar13 = pmVar13 + 1;\n        *pmVar9 = mVar7;\n        pmVar9 = pmVar9 + 1;\n      }" { (expression_statement "mVar7 = *pmVar13;" (assignment_expression "mVar7 = *pmVar13" identifier = (pointer_expression "*pmVar13" * identifier)) ;) (expression_statement "pmVar13 = pmVar13 + 1;" (assignment_expression "pmVar13 = pmVar13 + 1" identifier = (binary_expression "pmVar13 + 1" identifier + number_literal)) ;) (expression_statement "*pmVar9 = mVar7;" (assignment_expression "*pmVar9 = mVar7" (pointer_expression "*pmVar9" * identifier) = identifier) ;) (expression_statement "pmVar9 = pmVar9 + 1;" (assignment_expression "pmVar9 = pmVar9 + 1" identifier = (binary_expression "pmVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bp + iVar24 != pmVar13)" ( (binary_expression "bp + iVar24 != pmVar13" (binary_expression "bp + iVar24" identifier + identifier) != identifier) )) ;) (labeled_statement "LAB_0005bc50:\n      mVar7 = 0;" statement_identifier : (expression_statement "mVar7 = 0;" (assignment_expression "mVar7 = 0" identifier = number_literal) ;)) })) }) (else_clause "else {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar22);\n    if (iVar8 != 0) {\n      mVar7 = 1;\n      if (iVar24 <= iVar22) goto LAB_0005bc58;\n      local_44 = iVar25 + 2;\n      mVar7 = bp[iVar22];\n      rp[iVar22] = mVar7 + 1;\n      if (mVar7 + 1 == 0) {\n        pmVar13 = bp + iVar25;\n        pmVar16 = rp + iVar25;\n        do {\n          if (iVar24 == local_44) {\n            mVar7 = 1;\n            goto LAB_0005bc58;\n          }\n          mVar7 = pmVar13[2];\n          local_44 = local_44 + 1;\n          pmVar13 = pmVar13 + 1;\n          pmVar16[2] = mVar7 + 1;\n          pmVar16 = pmVar16 + 1;\n        } while (mVar7 + 1 == 0);\n      }\n    }\n    if (rp == bp) goto LAB_0005bc50;\n    mVar7 = 0;\n    if (local_44 < iVar24) goto LAB_0005bc28;\n  }" else (compound_statement "{\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar22);\n    if (iVar8 != 0) {\n      mVar7 = 1;\n      if (iVar24 <= iVar22) goto LAB_0005bc58;\n      local_44 = iVar25 + 2;\n      mVar7 = bp[iVar22];\n      rp[iVar22] = mVar7 + 1;\n      if (mVar7 + 1 == 0) {\n        pmVar13 = bp + iVar25;\n        pmVar16 = rp + iVar25;\n        do {\n          if (iVar24 == local_44) {\n            mVar7 = 1;\n            goto LAB_0005bc58;\n          }\n          mVar7 = pmVar13[2];\n          local_44 = local_44 + 1;\n          pmVar13 = pmVar13 + 1;\n          pmVar16[2] = mVar7 + 1;\n          pmVar16 = pmVar16 + 1;\n        } while (mVar7 + 1 == 0);\n      }\n    }\n    if (rp == bp) goto LAB_0005bc50;\n    mVar7 = 0;\n    if (local_44 < iVar24) goto LAB_0005bc28;\n  }" { (expression_statement "iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar22);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar22)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(rp,bp,rp,iVar22)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(rp,bp,rp,iVar22)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar8 != 0) {\n      mVar7 = 1;\n      if (iVar24 <= iVar22) goto LAB_0005bc58;\n      local_44 = iVar25 + 2;\n      mVar7 = bp[iVar22];\n      rp[iVar22] = mVar7 + 1;\n      if (mVar7 + 1 == 0) {\n        pmVar13 = bp + iVar25;\n        pmVar16 = rp + iVar25;\n        do {\n          if (iVar24 == local_44) {\n            mVar7 = 1;\n            goto LAB_0005bc58;\n          }\n          mVar7 = pmVar13[2];\n          local_44 = local_44 + 1;\n          pmVar13 = pmVar13 + 1;\n          pmVar16[2] = mVar7 + 1;\n          pmVar16 = pmVar16 + 1;\n        } while (mVar7 + 1 == 0);\n      }\n    }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      mVar7 = 1;\n      if (iVar24 <= iVar22) goto LAB_0005bc58;\n      local_44 = iVar25 + 2;\n      mVar7 = bp[iVar22];\n      rp[iVar22] = mVar7 + 1;\n      if (mVar7 + 1 == 0) {\n        pmVar13 = bp + iVar25;\n        pmVar16 = rp + iVar25;\n        do {\n          if (iVar24 == local_44) {\n            mVar7 = 1;\n            goto LAB_0005bc58;\n          }\n          mVar7 = pmVar13[2];\n          local_44 = local_44 + 1;\n          pmVar13 = pmVar13 + 1;\n          pmVar16[2] = mVar7 + 1;\n          pmVar16 = pmVar16 + 1;\n        } while (mVar7 + 1 == 0);\n      }\n    }" { (expression_statement "mVar7 = 1;" (assignment_expression "mVar7 = 1" identifier = number_literal) ;) (if_statement "if (iVar24 <= iVar22) goto LAB_0005bc58;" if (parenthesized_expression "(iVar24 <= iVar22)" ( (binary_expression "iVar24 <= iVar22" identifier <= identifier) )) (goto_statement "goto LAB_0005bc58;" goto statement_identifier ;)) (expression_statement "local_44 = iVar25 + 2;" (assignment_expression "local_44 = iVar25 + 2" identifier = (binary_expression "iVar25 + 2" identifier + number_literal)) ;) (expression_statement "mVar7 = bp[iVar22];" (assignment_expression "mVar7 = bp[iVar22]" identifier = (subscript_expression "bp[iVar22]" identifier [ identifier ])) ;) (expression_statement "rp[iVar22] = mVar7 + 1;" (assignment_expression "rp[iVar22] = mVar7 + 1" (subscript_expression "rp[iVar22]" identifier [ identifier ]) = (binary_expression "mVar7 + 1" identifier + number_literal)) ;) (if_statement "if (mVar7 + 1 == 0) {\n        pmVar13 = bp + iVar25;\n        pmVar16 = rp + iVar25;\n        do {\n          if (iVar24 == local_44) {\n            mVar7 = 1;\n            goto LAB_0005bc58;\n          }\n          mVar7 = pmVar13[2];\n          local_44 = local_44 + 1;\n          pmVar13 = pmVar13 + 1;\n          pmVar16[2] = mVar7 + 1;\n          pmVar16 = pmVar16 + 1;\n        } while (mVar7 + 1 == 0);\n      }" if (parenthesized_expression "(mVar7 + 1 == 0)" ( (binary_expression "mVar7 + 1 == 0" (binary_expression "mVar7 + 1" identifier + number_literal) == number_literal) )) (compound_statement "{\n        pmVar13 = bp + iVar25;\n        pmVar16 = rp + iVar25;\n        do {\n          if (iVar24 == local_44) {\n            mVar7 = 1;\n            goto LAB_0005bc58;\n          }\n          mVar7 = pmVar13[2];\n          local_44 = local_44 + 1;\n          pmVar13 = pmVar13 + 1;\n          pmVar16[2] = mVar7 + 1;\n          pmVar16 = pmVar16 + 1;\n        } while (mVar7 + 1 == 0);\n      }" { (expression_statement "pmVar13 = bp + iVar25;" (assignment_expression "pmVar13 = bp + iVar25" identifier = (binary_expression "bp + iVar25" identifier + identifier)) ;) (expression_statement "pmVar16 = rp + iVar25;" (assignment_expression "pmVar16 = rp + iVar25" identifier = (binary_expression "rp + iVar25" identifier + identifier)) ;) (do_statement "do {\n          if (iVar24 == local_44) {\n            mVar7 = 1;\n            goto LAB_0005bc58;\n          }\n          mVar7 = pmVar13[2];\n          local_44 = local_44 + 1;\n          pmVar13 = pmVar13 + 1;\n          pmVar16[2] = mVar7 + 1;\n          pmVar16 = pmVar16 + 1;\n        } while (mVar7 + 1 == 0);" do (compound_statement "{\n          if (iVar24 == local_44) {\n            mVar7 = 1;\n            goto LAB_0005bc58;\n          }\n          mVar7 = pmVar13[2];\n          local_44 = local_44 + 1;\n          pmVar13 = pmVar13 + 1;\n          pmVar16[2] = mVar7 + 1;\n          pmVar16 = pmVar16 + 1;\n        }" { (if_statement "if (iVar24 == local_44) {\n            mVar7 = 1;\n            goto LAB_0005bc58;\n          }" if (parenthesized_expression "(iVar24 == local_44)" ( (binary_expression "iVar24 == local_44" identifier == identifier) )) (compound_statement "{\n            mVar7 = 1;\n            goto LAB_0005bc58;\n          }" { (expression_statement "mVar7 = 1;" (assignment_expression "mVar7 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0005bc58;" goto statement_identifier ;) })) (expression_statement "mVar7 = pmVar13[2];" (assignment_expression "mVar7 = pmVar13[2]" identifier = (subscript_expression "pmVar13[2]" identifier [ number_literal ])) ;) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "pmVar13 = pmVar13 + 1;" (assignment_expression "pmVar13 = pmVar13 + 1" identifier = (binary_expression "pmVar13 + 1" identifier + number_literal)) ;) (expression_statement "pmVar16[2] = mVar7 + 1;" (assignment_expression "pmVar16[2] = mVar7 + 1" (subscript_expression "pmVar16[2]" identifier [ number_literal ]) = (binary_expression "mVar7 + 1" identifier + number_literal)) ;) (expression_statement "pmVar16 = pmVar16 + 1;" (assignment_expression "pmVar16 = pmVar16 + 1" identifier = (binary_expression "pmVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(mVar7 + 1 == 0)" ( (binary_expression "mVar7 + 1 == 0" (binary_expression "mVar7 + 1" identifier + number_literal) == number_literal) )) ;) })) })) (if_statement "if (rp == bp) goto LAB_0005bc50;" if (parenthesized_expression "(rp == bp)" ( (binary_expression "rp == bp" identifier == identifier) )) (goto_statement "goto LAB_0005bc50;" goto statement_identifier ;)) (expression_statement "mVar7 = 0;" (assignment_expression "mVar7 = 0" identifier = number_literal) ;) (if_statement "if (local_44 < iVar24) goto LAB_0005bc28;" if (parenthesized_expression "(local_44 < iVar24)" ( (binary_expression "local_44 < iVar24" identifier < identifier) )) (goto_statement "goto LAB_0005bc28;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0005bc58:\n  *pmVar18 = mVar7;" statement_identifier : (expression_statement "*pmVar18 = mVar7;" (assignment_expression "*pmVar18 = mVar7" (pointer_expression "*pmVar18" * identifier) = identifier) ;)) (labeled_statement "LAB_0005bc5c:\n  uVar6 = (*local_2c)(rm,rp,pp,iVar26);" statement_identifier : (expression_statement "uVar6 = (*local_2c)(rm,rp,pp,iVar26);" (assignment_expression "uVar6 = (*local_2c)(rm,rp,pp,iVar26)" identifier = (call_expression "(*local_2c)(rm,rp,pp,iVar26)" (parenthesized_expression "(*local_2c)" ( (pointer_expression "*local_2c" * identifier) )) (argument_list "(rm,rp,pp,iVar26)" ( identifier , identifier , identifier , identifier )))) ;)) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(pp,pmVar14,rm,iVar26)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp,pmVar14,rm,iVar26)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(pmVar14,pmVar17,rp,iVar26);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(pmVar14,pmVar17,rp,iVar26)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar14,pmVar17,rp,iVar26)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar14,iVar20,pp,uVar23 ^ uVar6,iVar24,1,2);" (call_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)(pmVar14,iVar20,pp,uVar23 ^ uVar6,iVar24,1,2)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)" ( (pointer_expression "*(code *)PTR___gmpn_toom_couple_handling_00097370" * (cast_expression "(code *)PTR___gmpn_toom_couple_handling_00097370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar14,iVar20,pp,uVar23 ^ uVar6,iVar24,1,2)" ( identifier , identifier , identifier , (binary_expression "uVar23 ^ uVar6" identifier ^ identifier) , identifier , number_literal , number_literal ))) ;) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(pp,ap,bp,iVar24);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(pp,ap,bp,iVar24)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp,ap,bp,iVar24)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (iVar25 < iVar5) {\n    (*(code *)PTR___gmpn_mul_000972b4)();\n  }\n  else {\n    (*(code *)PTR___gmpn_mul_000972b4)(pp + iVar24 * 7,pmVar21,iVar25,ap + iVar24 * 5,iVar5);\n  }" if (parenthesized_expression "(iVar25 < iVar5)" ( (binary_expression "iVar25 < iVar5" identifier < identifier) )) (compound_statement "{\n    (*(code *)PTR___gmpn_mul_000972b4)();\n  }" { (expression_statement "(*(code *)PTR___gmpn_mul_000972b4)();" (call_expression "(*(code *)PTR___gmpn_mul_000972b4)()" (parenthesized_expression "(*(code *)PTR___gmpn_mul_000972b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_000972b4" * (cast_expression "(code *)PTR___gmpn_mul_000972b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n    (*(code *)PTR___gmpn_mul_000972b4)(pp + iVar24 * 7,pmVar21,iVar25,ap + iVar24 * 5,iVar5);\n  }" else (compound_statement "{\n    (*(code *)PTR___gmpn_mul_000972b4)(pp + iVar24 * 7,pmVar21,iVar25,ap + iVar24 * 5,iVar5);\n  }" { (expression_statement "(*(code *)PTR___gmpn_mul_000972b4)(pp + iVar24 * 7,pmVar21,iVar25,ap + iVar24 * 5,iVar5);" (call_expression "(*(code *)PTR___gmpn_mul_000972b4)(pp + iVar24 * 7,pmVar21,iVar25,ap + iVar24 * 5,iVar5)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_000972b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_000972b4" * (cast_expression "(code *)PTR___gmpn_mul_000972b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp + iVar24 * 7,pmVar21,iVar25,ap + iVar24 * 5,iVar5)" ( (binary_expression "pp + iVar24 * 7" identifier + (binary_expression "iVar24 * 7" identifier * number_literal)) , identifier , identifier , (binary_expression "ap + iVar24 * 5" identifier + (binary_expression "iVar24 * 5" identifier * number_literal)) , identifier ))) ;) }))) comment comment (expression_statement "(*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(pp,iVar24,pmVar19,scratch);" (call_expression "(*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(pp,iVar24,pmVar19,scratch)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)" ( (pointer_expression "*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4" * (cast_expression "(code *)PTR___gmpn_toom_interpolate_8pts_000973e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp,iVar24,pmVar19,scratch)" ( identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void __gmpn_toom63_mul(int param_1,int param_2,int param_3,int param_4,int param_5,int param_6)\n\n{\n  uint *puVar1;\n  int *piVar2;\n  bool bVar3;\n  undefined *puVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  int iVar20;\n  int *piVar21;\n  int iVar22;\n  int iVar23;\n  int *piVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  int iVar31;\n  int *piVar32;\n  int local_44;\n  uint local_38;\n  code *local_2c;\n  \n  if (param_3 < param_5 << 1) {\n    uVar27 = (param_5 - 1U) / 3;\n  }\n  else {\n    uVar27 = (param_3 - 1U) / 6;\n  }\n  iVar28 = uVar27 + 1;\n  iVar30 = iVar28 * 4;\n  iVar14 = iVar28 * 0x14;\n  param_3 = param_3 + iVar28 * -5;\n  iVar20 = param_1 + iVar14 + 8;\n  iVar15 = param_1 + iVar28 * 0xc;\n  param_5 = param_5 + iVar28 * -2;\n  uVar5 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)\n                    (iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1);\n  iVar16 = param_4 + iVar30;\n  uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,2);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  *(undefined4 *)(param_1 + iVar30) = uVar6;\n  iVar25 = iVar16 + iVar30;\n  puVar7 = (undefined4 *)(param_1 + (iVar28 * 6 + 3 + param_5) * 4);\n  iVar29 = param_1 + iVar28 * 0x18 + 0xc;\n  uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,4);\n  *puVar7 = uVar6;\n  iVar17 = param_1 + iVar28 * 0x10 + 4;\n  piVar21 = (int *)(param_1 + iVar28 * 0x1c + 0xc);\n  iVar26 = param_5 + 1;\n  iVar22 = param_6 + iVar28 * 0xc + 4;\n  iVar8 = param_6 + iVar28 * 0x18 + 8;\n  iVar23 = iVar28 * 2 + 1;\n  if (iVar28 == param_5) {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = *piVar21 + iVar9;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1);\n    iVar31 = param_5 + 1;\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28);\n    if (iVar9 == 0) goto LAB_0005ba9c;\nLAB_0005c014:\n    iVar10 = 1;\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n    *piVar21 = iVar9 + 1;\n  }\n  else {\n    iVar9 = param_5 + 1;\n    if (iVar9 == 0) {\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }\n    else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar31 = uVar27 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = iVar10;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    if (param_5 == 0) {\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }\n    else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    *piVar21 = iVar9;\n    puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);\n    iVar9 = param_6 + iVar28 * 0x1c;\n    do {\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar27 != 0xffffffff);\n    iVar10 = 0;\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n  }\nLAB_0005bb0c:\n  iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28);\n  *piVar32 = iVar10 - iVar8;\nLAB_0005bb30:\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_6,iVar20,iVar29,iVar31);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)(param_6,iVar23,param_1,local_38,iVar28,0,0);\n  uVar27 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)\n                     (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n  uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,1);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  *(undefined4 *)(param_1 + iVar30) = uVar6;\n  uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,2);\n  *puVar7 = uVar6;\n  if (iVar28 == param_5) {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    *piVar21 = *piVar21 + iVar8;\n    goto LAB_0005bc5c;\n  }\n  local_44 = iVar26;\n  if (iVar26 == 0) {\n    iVar8 = 0;\n    if (iVar29 != param_4) {\nLAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);\n      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);\n      do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);\nLAB_0005bc50:\n      iVar8 = 0;\n    }\n  }\n  else {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);\n    if (iVar8 != 0) {\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }\n    if (iVar29 == param_4) goto LAB_0005bc50;\n    iVar8 = 0;\n    if (local_44 < iVar28) goto LAB_0005bc28;\n  }\nLAB_0005bc58:\n  *piVar21 = iVar8;\nLAB_0005bc5c:\n  uVar5 = (*local_2c)(iVar17,iVar29,param_1,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(iVar15,iVar20,iVar29,iVar31);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n            (iVar15,iVar23,param_1,uVar27 ^ uVar5,iVar28,1,2);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,param_2,param_4,iVar28);\n  if (param_5 < param_3) {\n    (*(code *)PTR___gmpn_mul_000972b4)();\n  }\n  else {\n    (*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);\n  }\n                    \n                    \n  (*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(param_1,iVar28,iVar22,param_6);\n  return;\n}\n\n" (function_definition "void __gmpn_toom63_mul(int param_1,int param_2,int param_3,int param_4,int param_5,int param_6)\n\n{\n  uint *puVar1;\n  int *piVar2;\n  bool bVar3;\n  undefined *puVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  int iVar20;\n  int *piVar21;\n  int iVar22;\n  int iVar23;\n  int *piVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  int iVar31;\n  int *piVar32;\n  int local_44;\n  uint local_38;\n  code *local_2c;\n  \n  if (param_3 < param_5 << 1) {\n    uVar27 = (param_5 - 1U) / 3;\n  }\n  else {\n    uVar27 = (param_3 - 1U) / 6;\n  }\n  iVar28 = uVar27 + 1;\n  iVar30 = iVar28 * 4;\n  iVar14 = iVar28 * 0x14;\n  param_3 = param_3 + iVar28 * -5;\n  iVar20 = param_1 + iVar14 + 8;\n  iVar15 = param_1 + iVar28 * 0xc;\n  param_5 = param_5 + iVar28 * -2;\n  uVar5 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)\n                    (iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1);\n  iVar16 = param_4 + iVar30;\n  uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,2);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  *(undefined4 *)(param_1 + iVar30) = uVar6;\n  iVar25 = iVar16 + iVar30;\n  puVar7 = (undefined4 *)(param_1 + (iVar28 * 6 + 3 + param_5) * 4);\n  iVar29 = param_1 + iVar28 * 0x18 + 0xc;\n  uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,4);\n  *puVar7 = uVar6;\n  iVar17 = param_1 + iVar28 * 0x10 + 4;\n  piVar21 = (int *)(param_1 + iVar28 * 0x1c + 0xc);\n  iVar26 = param_5 + 1;\n  iVar22 = param_6 + iVar28 * 0xc + 4;\n  iVar8 = param_6 + iVar28 * 0x18 + 8;\n  iVar23 = iVar28 * 2 + 1;\n  if (iVar28 == param_5) {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = *piVar21 + iVar9;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1);\n    iVar31 = param_5 + 1;\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28);\n    if (iVar9 == 0) goto LAB_0005ba9c;\nLAB_0005c014:\n    iVar10 = 1;\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n    *piVar21 = iVar9 + 1;\n  }\n  else {\n    iVar9 = param_5 + 1;\n    if (iVar9 == 0) {\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }\n    else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar31 = uVar27 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = iVar10;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    if (param_5 == 0) {\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }\n    else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    *piVar21 = iVar9;\n    puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);\n    iVar9 = param_6 + iVar28 * 0x1c;\n    do {\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar27 != 0xffffffff);\n    iVar10 = 0;\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n  }\nLAB_0005bb0c:\n  iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28);\n  *piVar32 = iVar10 - iVar8;\nLAB_0005bb30:\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_6,iVar20,iVar29,iVar31);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)(param_6,iVar23,param_1,local_38,iVar28,0,0);\n  uVar27 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)\n                     (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n  uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,1);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  *(undefined4 *)(param_1 + iVar30) = uVar6;\n  uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,2);\n  *puVar7 = uVar6;\n  if (iVar28 == param_5) {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    *piVar21 = *piVar21 + iVar8;\n    goto LAB_0005bc5c;\n  }\n  local_44 = iVar26;\n  if (iVar26 == 0) {\n    iVar8 = 0;\n    if (iVar29 != param_4) {\nLAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);\n      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);\n      do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);\nLAB_0005bc50:\n      iVar8 = 0;\n    }\n  }\n  else {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);\n    if (iVar8 != 0) {\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }\n    if (iVar29 == param_4) goto LAB_0005bc50;\n    iVar8 = 0;\n    if (local_44 < iVar28) goto LAB_0005bc28;\n  }\nLAB_0005bc58:\n  *piVar21 = iVar8;\nLAB_0005bc5c:\n  uVar5 = (*local_2c)(iVar17,iVar29,param_1,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(iVar15,iVar20,iVar29,iVar31);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n            (iVar15,iVar23,param_1,uVar27 ^ uVar5,iVar28,1,2);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,param_2,param_4,iVar28);\n  if (param_5 < param_3) {\n    (*(code *)PTR___gmpn_mul_000972b4)();\n  }\n  else {\n    (*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);\n  }\n                    \n                    \n  (*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(param_1,iVar28,iVar22,param_6);\n  return;\n}" primitive_type (function_declarator "__gmpn_toom63_mul(int param_1,int param_2,int param_3,int param_4,int param_5,int param_6)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4,int param_5,int param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) ))) (compound_statement "{\n  uint *puVar1;\n  int *piVar2;\n  bool bVar3;\n  undefined *puVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  int iVar20;\n  int *piVar21;\n  int iVar22;\n  int iVar23;\n  int *piVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  int iVar31;\n  int *piVar32;\n  int local_44;\n  uint local_38;\n  code *local_2c;\n  \n  if (param_3 < param_5 << 1) {\n    uVar27 = (param_5 - 1U) / 3;\n  }\n  else {\n    uVar27 = (param_3 - 1U) / 6;\n  }\n  iVar28 = uVar27 + 1;\n  iVar30 = iVar28 * 4;\n  iVar14 = iVar28 * 0x14;\n  param_3 = param_3 + iVar28 * -5;\n  iVar20 = param_1 + iVar14 + 8;\n  iVar15 = param_1 + iVar28 * 0xc;\n  param_5 = param_5 + iVar28 * -2;\n  uVar5 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)\n                    (iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1);\n  iVar16 = param_4 + iVar30;\n  uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,2);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  *(undefined4 *)(param_1 + iVar30) = uVar6;\n  iVar25 = iVar16 + iVar30;\n  puVar7 = (undefined4 *)(param_1 + (iVar28 * 6 + 3 + param_5) * 4);\n  iVar29 = param_1 + iVar28 * 0x18 + 0xc;\n  uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,4);\n  *puVar7 = uVar6;\n  iVar17 = param_1 + iVar28 * 0x10 + 4;\n  piVar21 = (int *)(param_1 + iVar28 * 0x1c + 0xc);\n  iVar26 = param_5 + 1;\n  iVar22 = param_6 + iVar28 * 0xc + 4;\n  iVar8 = param_6 + iVar28 * 0x18 + 8;\n  iVar23 = iVar28 * 2 + 1;\n  if (iVar28 == param_5) {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = *piVar21 + iVar9;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1);\n    iVar31 = param_5 + 1;\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28);\n    if (iVar9 == 0) goto LAB_0005ba9c;\nLAB_0005c014:\n    iVar10 = 1;\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n    *piVar21 = iVar9 + 1;\n  }\n  else {\n    iVar9 = param_5 + 1;\n    if (iVar9 == 0) {\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }\n    else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar31 = uVar27 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = iVar10;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    if (param_5 == 0) {\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }\n    else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    *piVar21 = iVar9;\n    puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);\n    iVar9 = param_6 + iVar28 * 0x1c;\n    do {\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar27 != 0xffffffff);\n    iVar10 = 0;\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n  }\nLAB_0005bb0c:\n  iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28);\n  *piVar32 = iVar10 - iVar8;\nLAB_0005bb30:\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_6,iVar20,iVar29,iVar31);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)(param_6,iVar23,param_1,local_38,iVar28,0,0);\n  uVar27 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)\n                     (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n  uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,1);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  *(undefined4 *)(param_1 + iVar30) = uVar6;\n  uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,2);\n  *puVar7 = uVar6;\n  if (iVar28 == param_5) {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    *piVar21 = *piVar21 + iVar8;\n    goto LAB_0005bc5c;\n  }\n  local_44 = iVar26;\n  if (iVar26 == 0) {\n    iVar8 = 0;\n    if (iVar29 != param_4) {\nLAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);\n      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);\n      do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);\nLAB_0005bc50:\n      iVar8 = 0;\n    }\n  }\n  else {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);\n    if (iVar8 != 0) {\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }\n    if (iVar29 == param_4) goto LAB_0005bc50;\n    iVar8 = 0;\n    if (local_44 < iVar28) goto LAB_0005bc28;\n  }\nLAB_0005bc58:\n  *piVar21 = iVar8;\nLAB_0005bc5c:\n  uVar5 = (*local_2c)(iVar17,iVar29,param_1,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(iVar15,iVar20,iVar29,iVar31);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n            (iVar15,iVar23,param_1,uVar27 ^ uVar5,iVar28,1,2);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,param_2,param_4,iVar28);\n  if (param_5 < param_3) {\n    (*(code *)PTR___gmpn_mul_000972b4)();\n  }\n  else {\n    (*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);\n  }\n                    \n                    \n  (*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(param_1,iVar28,iVar22,param_6);\n  return;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "int *piVar32;" primitive_type (pointer_declarator "*piVar32" * identifier) ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "code *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (if_statement "if (param_3 < param_5 << 1) {\n    uVar27 = (param_5 - 1U) / 3;\n  }\n  else {\n    uVar27 = (param_3 - 1U) / 6;\n  }" if (parenthesized_expression "(param_3 < param_5 << 1)" ( (binary_expression "param_3 < param_5 << 1" identifier < (binary_expression "param_5 << 1" identifier << number_literal)) )) (compound_statement "{\n    uVar27 = (param_5 - 1U) / 3;\n  }" { (expression_statement "uVar27 = (param_5 - 1U) / 3;" (assignment_expression "uVar27 = (param_5 - 1U) / 3" identifier = (binary_expression "(param_5 - 1U) / 3" (parenthesized_expression "(param_5 - 1U)" ( (binary_expression "param_5 - 1U" identifier - number_literal) )) / number_literal)) ;) }) (else_clause "else {\n    uVar27 = (param_3 - 1U) / 6;\n  }" else (compound_statement "{\n    uVar27 = (param_3 - 1U) / 6;\n  }" { (expression_statement "uVar27 = (param_3 - 1U) / 6;" (assignment_expression "uVar27 = (param_3 - 1U) / 6" identifier = (binary_expression "(param_3 - 1U) / 6" (parenthesized_expression "(param_3 - 1U)" ( (binary_expression "param_3 - 1U" identifier - number_literal) )) / number_literal)) ;) }))) (expression_statement "iVar28 = uVar27 + 1;" (assignment_expression "iVar28 = uVar27 + 1" identifier = (binary_expression "uVar27 + 1" identifier + number_literal)) ;) (expression_statement "iVar30 = iVar28 * 4;" (assignment_expression "iVar30 = iVar28 * 4" identifier = (binary_expression "iVar28 * 4" identifier * number_literal)) ;) (expression_statement "iVar14 = iVar28 * 0x14;" (assignment_expression "iVar14 = iVar28 * 0x14" identifier = (binary_expression "iVar28 * 0x14" identifier * number_literal)) ;) (expression_statement "param_3 = param_3 + iVar28 * -5;" (assignment_expression "param_3 = param_3 + iVar28 * -5" identifier = (binary_expression "param_3 + iVar28 * -5" identifier + (binary_expression "iVar28 * -5" identifier * number_literal))) ;) (expression_statement "iVar20 = param_1 + iVar14 + 8;" (assignment_expression "iVar20 = param_1 + iVar14 + 8" identifier = (binary_expression "param_1 + iVar14 + 8" (binary_expression "param_1 + iVar14" identifier + identifier) + number_literal)) ;) (expression_statement "iVar15 = param_1 + iVar28 * 0xc;" (assignment_expression "iVar15 = param_1 + iVar28 * 0xc" identifier = (binary_expression "param_1 + iVar28 * 0xc" identifier + (binary_expression "iVar28 * 0xc" identifier * number_literal))) ;) (expression_statement "param_5 = param_5 + iVar28 * -2;" (assignment_expression "param_5 = param_5 + iVar28 * -2" identifier = (binary_expression "param_5 + iVar28 * -2" identifier + (binary_expression "iVar28 * -2" identifier * number_literal))) ;) (expression_statement "uVar5 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)\n                    (iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1);" (assignment_expression "uVar5 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)\n                    (iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1)" identifier = (call_expression "(*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)\n                    (iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)" ( (pointer_expression "*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8" * (cast_expression "(code *)PTR___gmpn_toom_eval_pm2exp_000974d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1)" ( identifier , identifier , number_literal , identifier , identifier , identifier , number_literal , identifier )))) ;) (expression_statement "iVar16 = param_4 + iVar30;" (assignment_expression "iVar16 = param_4 + iVar30" identifier = (binary_expression "param_4 + iVar30" identifier + identifier)) ;) (expression_statement "uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,2);" (assignment_expression "uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,2)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,2)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009756c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009756c" * (cast_expression "(code *)PTR___gmpn_lshift_0009756c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar16,iVar28,2)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "puVar4 = PTR___gmpn_lshift_0009756c;" (assignment_expression "puVar4 = PTR___gmpn_lshift_0009756c" identifier = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + iVar30) = uVar6;" (assignment_expression "*(undefined4 *)(param_1 + iVar30) = uVar6" (pointer_expression "*(undefined4 *)(param_1 + iVar30)" * (cast_expression "(undefined4 *)(param_1 + iVar30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar30)" ( (binary_expression "param_1 + iVar30" identifier + identifier) )))) = identifier) ;) (expression_statement "iVar25 = iVar16 + iVar30;" (assignment_expression "iVar25 = iVar16 + iVar30" identifier = (binary_expression "iVar16 + iVar30" identifier + identifier)) ;) (expression_statement "puVar7 = (undefined4 *)(param_1 + (iVar28 * 6 + 3 + param_5) * 4);" (assignment_expression "puVar7 = (undefined4 *)(param_1 + (iVar28 * 6 + 3 + param_5) * 4)" identifier = (cast_expression "(undefined4 *)(param_1 + (iVar28 * 6 + 3 + param_5) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + (iVar28 * 6 + 3 + param_5) * 4)" ( (binary_expression "param_1 + (iVar28 * 6 + 3 + param_5) * 4" identifier + (binary_expression "(iVar28 * 6 + 3 + param_5) * 4" (parenthesized_expression "(iVar28 * 6 + 3 + param_5)" ( (binary_expression "iVar28 * 6 + 3 + param_5" (binary_expression "iVar28 * 6 + 3" (binary_expression "iVar28 * 6" identifier * number_literal) + number_literal) + identifier) )) * number_literal)) )))) ;) (expression_statement "iVar29 = param_1 + iVar28 * 0x18 + 0xc;" (assignment_expression "iVar29 = param_1 + iVar28 * 0x18 + 0xc" identifier = (binary_expression "param_1 + iVar28 * 0x18 + 0xc" (binary_expression "param_1 + iVar28 * 0x18" identifier + (binary_expression "iVar28 * 0x18" identifier * number_literal)) + number_literal)) ;) (expression_statement "uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,4);" (assignment_expression "uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,4)" identifier = (call_expression "(*(code *)puVar4)(iVar29,iVar25,param_5,4)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar29,iVar25,param_5,4)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "*puVar7 = uVar6;" (assignment_expression "*puVar7 = uVar6" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "iVar17 = param_1 + iVar28 * 0x10 + 4;" (assignment_expression "iVar17 = param_1 + iVar28 * 0x10 + 4" identifier = (binary_expression "param_1 + iVar28 * 0x10 + 4" (binary_expression "param_1 + iVar28 * 0x10" identifier + (binary_expression "iVar28 * 0x10" identifier * number_literal)) + number_literal)) ;) (expression_statement "piVar21 = (int *)(param_1 + iVar28 * 0x1c + 0xc);" (assignment_expression "piVar21 = (int *)(param_1 + iVar28 * 0x1c + 0xc)" identifier = (cast_expression "(int *)(param_1 + iVar28 * 0x1c + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar28 * 0x1c + 0xc)" ( (binary_expression "param_1 + iVar28 * 0x1c + 0xc" (binary_expression "param_1 + iVar28 * 0x1c" identifier + (binary_expression "iVar28 * 0x1c" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "iVar26 = param_5 + 1;" (assignment_expression "iVar26 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "iVar22 = param_6 + iVar28 * 0xc + 4;" (assignment_expression "iVar22 = param_6 + iVar28 * 0xc + 4" identifier = (binary_expression "param_6 + iVar28 * 0xc + 4" (binary_expression "param_6 + iVar28 * 0xc" identifier + (binary_expression "iVar28 * 0xc" identifier * number_literal)) + number_literal)) ;) (expression_statement "iVar8 = param_6 + iVar28 * 0x18 + 8;" (assignment_expression "iVar8 = param_6 + iVar28 * 0x18 + 8" identifier = (binary_expression "param_6 + iVar28 * 0x18 + 8" (binary_expression "param_6 + iVar28 * 0x18" identifier + (binary_expression "iVar28 * 0x18" identifier * number_literal)) + number_literal)) ;) (expression_statement "iVar23 = iVar28 * 2 + 1;" (assignment_expression "iVar23 = iVar28 * 2 + 1" identifier = (binary_expression "iVar28 * 2 + 1" (binary_expression "iVar28 * 2" identifier * number_literal) + number_literal)) ;) (if_statement "if (iVar28 == param_5) {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = *piVar21 + iVar9;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1);\n    iVar31 = param_5 + 1;\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28);\n    if (iVar9 == 0) goto LAB_0005ba9c;\nLAB_0005c014:\n    iVar10 = 1;\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n    *piVar21 = iVar9 + 1;\n  }\n  else {\n    iVar9 = param_5 + 1;\n    if (iVar9 == 0) {\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }\n    else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar31 = uVar27 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = iVar10;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    if (param_5 == 0) {\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }\n    else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    *piVar21 = iVar9;\n    puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);\n    iVar9 = param_6 + iVar28 * 0x1c;\n    do {\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar27 != 0xffffffff);\n    iVar10 = 0;\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n  }" if (parenthesized_expression "(iVar28 == param_5)" ( (binary_expression "iVar28 == param_5" identifier == identifier) )) (compound_statement "{\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = *piVar21 + iVar9;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1);\n    iVar31 = param_5 + 1;\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28);\n    if (iVar9 == 0) goto LAB_0005ba9c;\nLAB_0005c014:\n    iVar10 = 1;\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n    *piVar21 = iVar9 + 1;\n  }" { (expression_statement "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);" (assignment_expression "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar29,iVar29,param_4,iVar28)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "local_2c = (code *)(PTR_LAB_00097080 + -0x4980);" (assignment_expression "local_2c = (code *)(PTR_LAB_00097080 + -0x4980)" identifier = (cast_expression "(code *)(PTR_LAB_00097080 + -0x4980)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00097080 + -0x4980)" ( (binary_expression "PTR_LAB_00097080 + -0x4980" identifier + number_literal) )))) ;) (expression_statement "*piVar21 = *piVar21 + iVar9;" (assignment_expression "*piVar21 = *piVar21 + iVar9" (pointer_expression "*piVar21" * identifier) = (binary_expression "*piVar21 + iVar9" (pointer_expression "*piVar21" * identifier) + identifier)) ;) (expression_statement "uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1);" (assignment_expression "uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1)" identifier = (call_expression "FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1)" identifier (argument_list "(iVar17,iVar29,param_1,param_5 + 1)" ( identifier , identifier , identifier , (binary_expression "param_5 + 1" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar15,iVar17,param_5 + 1)" ( identifier , identifier , identifier , (binary_expression "param_5 + 1" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar22,iVar20,iVar29,param_5 + 1)" ( identifier , identifier , identifier , (binary_expression "param_5 + 1" identifier + number_literal) ))) ;) (expression_statement "iVar31 = param_5 + 1;" (assignment_expression "iVar31 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);" (call_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)" ( (pointer_expression "*(code *)PTR___gmpn_toom_couple_handling_00097370" * (cast_expression "(code *)PTR___gmpn_toom_couple_handling_00097370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4)" ( identifier , identifier , identifier , (binary_expression "uVar5 ^ uVar11" identifier ^ identifier) , identifier , number_literal , number_literal ))) ;) (expression_statement "local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);" (assignment_expression "local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" identifier = (call_expression "(*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_pm1_000971e0)" ( (pointer_expression "*(code *)PTR___gmpn_toom_eval_pm1_000971e0" * (cast_expression "(code *)PTR___gmpn_toom_eval_pm1_000971e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" ( identifier , identifier , number_literal , identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28);" (assignment_expression "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8,param_4,iVar25,iVar28)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar9 == 0) goto LAB_0005ba9c;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0005ba9c;" goto statement_identifier ;)) (labeled_statement "LAB_0005c014:\n    iVar10 = 1;" statement_identifier : (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;)) (expression_statement "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);" (assignment_expression "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar29,iVar8,iVar16,iVar28)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "piVar32 = (int *)(param_1 + iVar14 + 4);" (assignment_expression "piVar32 = (int *)(param_1 + iVar14 + 4)" identifier = (cast_expression "(int *)(param_1 + iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar14 + 4)" ( (binary_expression "param_1 + iVar14 + 4" (binary_expression "param_1 + iVar14" identifier + identifier) + number_literal) )))) ;) (expression_statement "*piVar21 = iVar9 + 1;" (assignment_expression "*piVar21 = iVar9 + 1" (pointer_expression "*piVar21" * identifier) = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n    iVar9 = param_5 + 1;\n    if (iVar9 == 0) {\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }\n    else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar31 = uVar27 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = iVar10;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    if (param_5 == 0) {\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }\n    else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    *piVar21 = iVar9;\n    puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);\n    iVar9 = param_6 + iVar28 * 0x1c;\n    do {\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar27 != 0xffffffff);\n    iVar10 = 0;\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n  }" else (compound_statement "{\n    iVar9 = param_5 + 1;\n    if (iVar9 == 0) {\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }\n    else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar31 = uVar27 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = iVar10;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    if (param_5 == 0) {\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }\n    else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    *piVar21 = iVar9;\n    puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);\n    iVar9 = param_6 + iVar28 * 0x1c;\n    do {\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar27 != 0xffffffff);\n    iVar10 = 0;\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n  }" { (expression_statement "iVar9 = param_5 + 1;" (assignment_expression "iVar9 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (if_statement "if (iVar9 == 0) {\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }\n    else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (if_statement "if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }" if (parenthesized_expression "(iVar29 != param_4)" ( (binary_expression "iVar29 != param_4" identifier != identifier) )) (compound_statement "{\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }" { (labeled_statement "LAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);" statement_identifier : (expression_statement "puVar18 = (undefined4 *)(param_4 + iVar9 * 4);" (assignment_expression "puVar18 = (undefined4 *)(param_4 + iVar9 * 4)" identifier = (cast_expression "(undefined4 *)(param_4 + iVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + iVar9 * 4)" ( (binary_expression "param_4 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) ;)) (expression_statement "puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);" (assignment_expression "puVar13 = (undefined4 *)(iVar29 + iVar9 * 4)" identifier = (cast_expression "(undefined4 *)(iVar29 + iVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + iVar9 * 4)" ( (binary_expression "iVar29 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) ;) (do_statement "do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));" do (compound_statement "{\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        }" { (expression_statement "uVar6 = *puVar18;" (assignment_expression "uVar6 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "puVar18 = puVar18 + 1;" (assignment_expression "puVar18 = puVar18 + 1" identifier = (binary_expression "puVar18 + 1" identifier + number_literal)) ;) (expression_statement "*puVar13 = uVar6;" (assignment_expression "*puVar13 = uVar6" (pointer_expression "*puVar13" * identifier) = identifier) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar18 != (undefined4 *)(param_4 + iVar30))" ( (binary_expression "puVar18 != (undefined4 *)(param_4 + iVar30)" identifier != (cast_expression "(undefined4 *)(param_4 + iVar30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + iVar30)" ( (binary_expression "param_4 + iVar30" identifier + identifier) )))) )) ;) })) (labeled_statement "LAB_0005b98c:\n      iVar10 = 0;" statement_identifier : (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }" else (compound_statement "{\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }" { (expression_statement "iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);" (assignment_expression "iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar29,param_4,iVar29,iVar9)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }" { (expression_statement "iVar9 = param_5 + 1;" (assignment_expression "iVar9 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;" statement_identifier : (if_statement "if (iVar29 == param_4) goto LAB_0005b98c;" if (parenthesized_expression "(iVar29 == param_4)" ( (binary_expression "iVar29 == param_4" identifier == identifier) )) (goto_statement "goto LAB_0005b98c;" goto statement_identifier ;))) (if_statement "if (iVar9 < iVar28) goto LAB_0005b968;" if (parenthesized_expression "(iVar9 < iVar28)" ( (binary_expression "iVar9 < iVar28" identifier < identifier) )) (goto_statement "goto LAB_0005b968;" goto statement_identifier ;)) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }" else (compound_statement "{\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }" { (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (if_statement "if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }" if (parenthesized_expression "(iVar9 < iVar28)" ( (binary_expression "iVar9 < iVar28" identifier < identifier) )) (compound_statement "{\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }" { (expression_statement "iVar31 = (param_5 + 1) * 4;" (assignment_expression "iVar31 = (param_5 + 1) * 4" identifier = (binary_expression "(param_5 + 1) * 4" (parenthesized_expression "(param_5 + 1)" ( (binary_expression "param_5 + 1" identifier + number_literal) )) * number_literal)) ;) (expression_statement "iVar9 = param_5 + 2;" (assignment_expression "iVar9 = param_5 + 2" identifier = (binary_expression "param_5 + 2" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_4 + iVar31) + 1;" (assignment_expression "iVar10 = *(int *)(param_4 + iVar31) + 1" identifier = (binary_expression "*(int *)(param_4 + iVar31) + 1" (pointer_expression "*(int *)(param_4 + iVar31)" * (cast_expression "(int *)(param_4 + iVar31)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + iVar31)" ( (binary_expression "param_4 + iVar31" identifier + identifier) )))) + number_literal)) ;) (expression_statement "*(int *)(iVar29 + iVar31) = iVar10;" (assignment_expression "*(int *)(iVar29 + iVar31) = iVar10" (pointer_expression "*(int *)(iVar29 + iVar31)" * (cast_expression "(int *)(iVar29 + iVar31)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + iVar31)" ( (binary_expression "iVar29 + iVar31" identifier + identifier) )))) = identifier) ;) (if_statement "if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }" { (expression_statement "iVar10 = param_4 + param_5 * 4;" (assignment_expression "iVar10 = param_4 + param_5 * 4" identifier = (binary_expression "param_4 + param_5 * 4" identifier + (binary_expression "param_5 * 4" identifier * number_literal))) ;) (expression_statement "iVar31 = iVar29 + param_5 * 4;" (assignment_expression "iVar31 = iVar29 + param_5 * 4" identifier = (binary_expression "iVar29 + param_5 * 4" identifier + (binary_expression "param_5 * 4" identifier * number_literal))) ;) (do_statement "do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);" do (compound_statement "{\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            }" { (if_statement "if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }" if (parenthesized_expression "(iVar28 == iVar9)" ( (binary_expression "iVar28 == iVar9" identifier == identifier) )) (compound_statement "{\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }" { (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0005b990;" goto statement_identifier ;) })) (expression_statement "piVar32 = (int *)(iVar10 + 8);" (assignment_expression "piVar32 = (int *)(iVar10 + 8)" identifier = (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = iVar10 + 4;" (assignment_expression "iVar10 = iVar10 + 4" identifier = (binary_expression "iVar10 + 4" identifier + number_literal)) ;) (expression_statement "iVar19 = *piVar32 + 1;" (assignment_expression "iVar19 = *piVar32 + 1" identifier = (binary_expression "*piVar32 + 1" (pointer_expression "*piVar32" * identifier) + number_literal)) ;) (expression_statement "*(int *)(iVar31 + 8) = iVar19;" (assignment_expression "*(int *)(iVar31 + 8) = iVar19" (pointer_expression "*(int *)(iVar31 + 8)" * (cast_expression "(int *)(iVar31 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 8)" ( (binary_expression "iVar31 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar31 = iVar31 + 4;" (assignment_expression "iVar31 = iVar31 + 4" identifier = (binary_expression "iVar31 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) ;) })) (goto_statement "goto LAB_0005c0cc;" goto statement_identifier ;) })) }))) }))) (labeled_statement "LAB_0005b990:\n    iVar31 = uVar27 + 2;" statement_identifier : (expression_statement "iVar31 = uVar27 + 2;" (assignment_expression "iVar31 = uVar27 + 2" identifier = (binary_expression "uVar27 + 2" identifier + number_literal)) ;)) (expression_statement "local_2c = (code *)(PTR_LAB_00097080 + -0x4980);" (assignment_expression "local_2c = (code *)(PTR_LAB_00097080 + -0x4980)" identifier = (cast_expression "(code *)(PTR_LAB_00097080 + -0x4980)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00097080 + -0x4980)" ( (binary_expression "PTR_LAB_00097080 + -0x4980" identifier + number_literal) )))) ;) (expression_statement "*piVar21 = iVar10;" (assignment_expression "*piVar21 = iVar10" (pointer_expression "*piVar21" * identifier) = identifier) ;) (expression_statement "uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);" (assignment_expression "uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31)" identifier = (call_expression "FUN_0005b680(iVar17,iVar29,param_1,iVar31)" identifier (argument_list "(iVar17,iVar29,param_1,iVar31)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar15,iVar17,iVar31)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar22,iVar20,iVar29,iVar31)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);" (call_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)" ( (pointer_expression "*(code *)PTR___gmpn_toom_couple_handling_00097370" * (cast_expression "(code *)PTR___gmpn_toom_couple_handling_00097370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4)" ( identifier , identifier , identifier , (binary_expression "uVar5 ^ uVar11" identifier ^ identifier) , identifier , number_literal , number_literal ))) ;) (expression_statement "local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);" (assignment_expression "local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" identifier = (call_expression "(*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_pm1_000971e0)" ( (pointer_expression "*(code *)PTR___gmpn_toom_eval_pm1_000971e0" * (cast_expression "(code *)PTR___gmpn_toom_eval_pm1_000971e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" ( identifier , identifier , number_literal , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (param_5 == 0) {\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }\n    else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }" { (if_statement "if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }" if (parenthesized_expression "(param_4 != iVar8)" ( (binary_expression "param_4 != iVar8" identifier != identifier) )) (compound_statement "{\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);" statement_identifier : (expression_statement "puVar18 = (undefined4 *)(param_4 + iVar9 * 4);" (assignment_expression "puVar18 = (undefined4 *)(param_4 + iVar9 * 4)" identifier = (cast_expression "(undefined4 *)(param_4 + iVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + iVar9 * 4)" ( (binary_expression "param_4 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) ;)) (expression_statement "puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);" (assignment_expression "puVar13 = (undefined4 *)(iVar8 + iVar9 * 4)" identifier = (cast_expression "(undefined4 *)(iVar8 + iVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar9 * 4)" ( (binary_expression "iVar8 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) ;) (do_statement "do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);" do (compound_statement "{\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        }" { (expression_statement "uVar6 = *puVar18;" (assignment_expression "uVar6 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "puVar18 = puVar18 + 1;" (assignment_expression "puVar18 = puVar18 + 1" identifier = (binary_expression "puVar18 + 1" identifier + number_literal)) ;) (expression_statement "*puVar13 = uVar6;" (assignment_expression "*puVar13 = uVar6" (pointer_expression "*puVar13" * identifier) = identifier) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((undefined4 *)(param_4 + iVar30) != puVar18)" ( (binary_expression "(undefined4 *)(param_4 + iVar30) != puVar18" (cast_expression "(undefined4 *)(param_4 + iVar30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + iVar30)" ( (binary_expression "param_4 + iVar30" identifier + identifier) ))) != identifier) )) ;) })) }) (else_clause "else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }" else (compound_statement "{\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }" { (expression_statement "iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);" (assignment_expression "iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8,param_4,iVar25,param_5)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar9 = param_5;" (assignment_expression "iVar9 = param_5" identifier = identifier) ;) (if_statement "if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }" { (if_statement "if (iVar28 <= param_5) goto LAB_0005c014;" if (parenthesized_expression "(iVar28 <= param_5)" ( (binary_expression "iVar28 <= param_5" identifier <= identifier) )) (goto_statement "goto LAB_0005c014;" goto statement_identifier ;)) (expression_statement "piVar32 = (int *)(param_4 + param_5 * 4);" (assignment_expression "piVar32 = (int *)(param_4 + param_5 * 4)" identifier = (cast_expression "(int *)(param_4 + param_5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + param_5 * 4)" ( (binary_expression "param_4 + param_5 * 4" identifier + (binary_expression "param_5 * 4" identifier * number_literal)) )))) ;) (expression_statement "piVar24 = (int *)(iVar8 + param_5 * 4);" (assignment_expression "piVar24 = (int *)(iVar8 + param_5 * 4)" identifier = (cast_expression "(int *)(iVar8 + param_5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + param_5 * 4)" ( (binary_expression "iVar8 + param_5 * 4" identifier + (binary_expression "param_5 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar10 = *piVar32 + 1;" (assignment_expression "iVar10 = *piVar32 + 1" identifier = (binary_expression "*piVar32 + 1" (pointer_expression "*piVar32" * identifier) + number_literal)) ;) (expression_statement "*piVar24 = iVar10;" (assignment_expression "*piVar24 = iVar10" (pointer_expression "*piVar24" * identifier) = identifier) ;) (expression_statement "iVar9 = iVar26;" (assignment_expression "iVar9 = iVar26" identifier = identifier) ;) (while_statement "while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }" while (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }" { (expression_statement "bVar3 = iVar28 == iVar9;" (assignment_expression "bVar3 = iVar28 == iVar9" identifier = (binary_expression "iVar28 == iVar9" identifier == identifier)) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (if_statement "if (bVar3) goto LAB_0005c014;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_0005c014;" goto statement_identifier ;)) (expression_statement "piVar2 = piVar32 + 1;" (assignment_expression "piVar2 = piVar32 + 1" identifier = (binary_expression "piVar32 + 1" identifier + number_literal)) ;) (expression_statement "piVar24 = piVar24 + 1;" (assignment_expression "piVar24 = piVar24 + 1" identifier = (binary_expression "piVar24 + 1" identifier + number_literal)) ;) (expression_statement "piVar32 = piVar32 + 1;" (assignment_expression "piVar32 = piVar32 + 1" identifier = (binary_expression "piVar32 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *piVar2 + 1;" (assignment_expression "iVar10 = *piVar2 + 1" identifier = (binary_expression "*piVar2 + 1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (expression_statement "*piVar24 = iVar10;" (assignment_expression "*piVar24 = iVar10" (pointer_expression "*piVar24" * identifier) = identifier) ;) })) })) (if_statement "if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;" if (parenthesized_expression "((param_4 != iVar8) && (iVar9 < iVar28))" ( (binary_expression "(param_4 != iVar8) && (iVar9 < iVar28)" (parenthesized_expression "(param_4 != iVar8)" ( (binary_expression "param_4 != iVar8" identifier != identifier) )) && (parenthesized_expression "(iVar9 < iVar28)" ( (binary_expression "iVar9 < iVar28" identifier < identifier) ))) )) (goto_statement "goto LAB_0005ba74;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0005ba9c:\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);" statement_identifier : (expression_statement "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);" (assignment_expression "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar29,iVar8,iVar16,iVar28)" ( identifier , identifier , identifier , identifier )))) ;)) (expression_statement "*piVar21 = iVar9;" (assignment_expression "*piVar21 = iVar9" (pointer_expression "*piVar21" * identifier) = identifier) ;) (expression_statement "puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);" (assignment_expression "puVar12 = (uint *)(param_4 + iVar28 * 8 + -4)" identifier = (cast_expression "(uint *)(param_4 + iVar28 * 8 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + iVar28 * 8 + -4)" ( (binary_expression "param_4 + iVar28 * 8 + -4" (binary_expression "param_4 + iVar28 * 8" identifier + (binary_expression "iVar28 * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "iVar9 = param_6 + iVar28 * 0x1c;" (assignment_expression "iVar9 = param_6 + iVar28 * 0x1c" identifier = (binary_expression "param_6 + iVar28 * 0x1c" identifier + (binary_expression "iVar28 * 0x1c" identifier * number_literal))) ;) (do_statement "do {\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar27 != 0xffffffff);" do (compound_statement "{\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    }" { (expression_statement "puVar1 = (uint *)(iVar9 + 4);" (assignment_expression "puVar1 = (uint *)(iVar9 + 4)" identifier = (cast_expression "(uint *)(iVar9 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) ;) (expression_statement "uVar27 = uVar27 - 1;" (assignment_expression "uVar27 = uVar27 - 1" identifier = (binary_expression "uVar27 - 1" identifier - number_literal)) ;) (expression_statement "uVar5 = *puVar12;" (assignment_expression "uVar5 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "iVar9 = iVar9 + -4;" (assignment_expression "iVar9 = iVar9 + -4" identifier = (binary_expression "iVar9 + -4" identifier + number_literal)) ;) (expression_statement "puVar12 = puVar12 + -1;" (assignment_expression "puVar12 = puVar12 + -1" identifier = (binary_expression "puVar12 + -1" identifier + number_literal)) ;) (if_statement "if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }" if (parenthesized_expression "(*puVar1 != uVar5)" ( (binary_expression "*puVar1 != uVar5" (pointer_expression "*puVar1" * identifier) != identifier) )) (compound_statement "{\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }" { (expression_statement "piVar32 = (int *)(param_1 + iVar14 + 4);" (assignment_expression "piVar32 = (int *)(param_1 + iVar14 + 4)" identifier = (cast_expression "(int *)(param_1 + iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar14 + 4)" ( (binary_expression "param_1 + iVar14 + 4" (binary_expression "param_1 + iVar14" identifier + identifier) + number_literal) )))) ;) (if_statement "if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }" if (parenthesized_expression "(uVar5 < *puVar1)" ( (binary_expression "uVar5 < *puVar1" identifier < (pointer_expression "*puVar1" * identifier)) )) (compound_statement "{\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0005bb0c;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);" (call_expression "(*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_sub_n_00097514)" ( (pointer_expression "*(code *)PTR___gmpn_sub_n_00097514" * (cast_expression "(code *)PTR___gmpn_sub_n_00097514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar17,iVar16,iVar8,iVar28)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*piVar32 = 0;" (assignment_expression "*piVar32 = 0" (pointer_expression "*piVar32" * identifier) = number_literal) ;) (expression_statement "local_38 = ~local_38;" (assignment_expression "local_38 = ~local_38" identifier = (unary_expression "~local_38" ~ identifier)) ;) (goto_statement "goto LAB_0005bb30;" goto statement_identifier ;) })) }) while (parenthesized_expression "(uVar27 != 0xffffffff)" ( (binary_expression "uVar27 != 0xffffffff" identifier != number_literal) )) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "piVar32 = (int *)(param_1 + iVar14 + 4);" (assignment_expression "piVar32 = (int *)(param_1 + iVar14 + 4)" identifier = (cast_expression "(int *)(param_1 + iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar14 + 4)" ( (binary_expression "param_1 + iVar14 + 4" (binary_expression "param_1 + iVar14" identifier + identifier) + number_literal) )))) ;) }))) (labeled_statement "LAB_0005bb0c:\n  iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28);" statement_identifier : (expression_statement "iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28)" identifier = (call_expression "(*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_sub_n_00097514)" ( (pointer_expression "*(code *)PTR___gmpn_sub_n_00097514" * (cast_expression "(code *)PTR___gmpn_sub_n_00097514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar17,iVar8,iVar16,iVar28)" ( identifier , identifier , identifier , identifier )))) ;)) (expression_statement "*piVar32 = iVar10 - iVar8;" (assignment_expression "*piVar32 = iVar10 - iVar8" (pointer_expression "*piVar32" * identifier) = (binary_expression "iVar10 - iVar8" identifier - identifier)) ;) (labeled_statement "LAB_0005bb30:\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);" statement_identifier : (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar15,iVar17,iVar31)" ( identifier , identifier , identifier , identifier ))) ;)) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(param_6,iVar20,iVar29,iVar31);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(param_6,iVar20,iVar29,iVar31)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,iVar20,iVar29,iVar31)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom_couple_handling_00097370)(param_6,iVar23,param_1,local_38,iVar28,0,0);" (call_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)(param_6,iVar23,param_1,local_38,iVar28,0,0)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)" ( (pointer_expression "*(code *)PTR___gmpn_toom_couple_handling_00097370" * (cast_expression "(code *)PTR___gmpn_toom_couple_handling_00097370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,iVar23,param_1,local_38,iVar28,0,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "uVar27 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)\n                     (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);" (assignment_expression "uVar27 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)\n                     (iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" identifier = (call_expression "(*(code *)PTR___gmpn_toom_eval_pm2_0009747c)\n                     (iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_pm2_0009747c)" ( (pointer_expression "*(code *)PTR___gmpn_toom_eval_pm2_0009747c" * (cast_expression "(code *)PTR___gmpn_toom_eval_pm2_0009747c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" ( identifier , identifier , number_literal , identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,1);" (assignment_expression "uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,1)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,1)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009756c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009756c" * (cast_expression "(code *)PTR___gmpn_lshift_0009756c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar16,iVar28,1)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "puVar4 = PTR___gmpn_lshift_0009756c;" (assignment_expression "puVar4 = PTR___gmpn_lshift_0009756c" identifier = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + iVar30) = uVar6;" (assignment_expression "*(undefined4 *)(param_1 + iVar30) = uVar6" (pointer_expression "*(undefined4 *)(param_1 + iVar30)" * (cast_expression "(undefined4 *)(param_1 + iVar30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar30)" ( (binary_expression "param_1 + iVar30" identifier + identifier) )))) = identifier) ;) (expression_statement "uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,2);" (assignment_expression "uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,2)" identifier = (call_expression "(*(code *)puVar4)(iVar29,iVar25,param_5,2)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar29,iVar25,param_5,2)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "*puVar7 = uVar6;" (assignment_expression "*puVar7 = uVar6" (pointer_expression "*puVar7" * identifier) = identifier) ;) (if_statement "if (iVar28 == param_5) {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    *piVar21 = *piVar21 + iVar8;\n    goto LAB_0005bc5c;\n  }" if (parenthesized_expression "(iVar28 == param_5)" ( (binary_expression "iVar28 == param_5" identifier == identifier) )) (compound_statement "{\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    *piVar21 = *piVar21 + iVar8;\n    goto LAB_0005bc5c;\n  }" { (expression_statement "iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar29,iVar29,param_4,iVar28)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*piVar21 = *piVar21 + iVar8;" (assignment_expression "*piVar21 = *piVar21 + iVar8" (pointer_expression "*piVar21" * identifier) = (binary_expression "*piVar21 + iVar8" (pointer_expression "*piVar21" * identifier) + identifier)) ;) (goto_statement "goto LAB_0005bc5c;" goto statement_identifier ;) })) (expression_statement "local_44 = iVar26;" (assignment_expression "local_44 = iVar26" identifier = identifier) ;) (if_statement "if (iVar26 == 0) {\n    iVar8 = 0;\n    if (iVar29 != param_4) {\nLAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);\n      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);\n      do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);\nLAB_0005bc50:\n      iVar8 = 0;\n    }\n  }\n  else {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);\n    if (iVar8 != 0) {\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }\n    if (iVar29 == param_4) goto LAB_0005bc50;\n    iVar8 = 0;\n    if (local_44 < iVar28) goto LAB_0005bc28;\n  }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar8 = 0;\n    if (iVar29 != param_4) {\nLAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);\n      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);\n      do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);\nLAB_0005bc50:\n      iVar8 = 0;\n    }\n  }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (iVar29 != param_4) {\nLAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);\n      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);\n      do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);\nLAB_0005bc50:\n      iVar8 = 0;\n    }" if (parenthesized_expression "(iVar29 != param_4)" ( (binary_expression "iVar29 != param_4" identifier != identifier) )) (compound_statement "{\nLAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);\n      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);\n      do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);\nLAB_0005bc50:\n      iVar8 = 0;\n    }" { (labeled_statement "LAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);" statement_identifier : (expression_statement "puVar13 = (undefined4 *)(param_4 + local_44 * 4);" (assignment_expression "puVar13 = (undefined4 *)(param_4 + local_44 * 4)" identifier = (cast_expression "(undefined4 *)(param_4 + local_44 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + local_44 * 4)" ( (binary_expression "param_4 + local_44 * 4" identifier + (binary_expression "local_44 * 4" identifier * number_literal)) )))) ;)) (expression_statement "puVar7 = (undefined4 *)(iVar29 + local_44 * 4);" (assignment_expression "puVar7 = (undefined4 *)(iVar29 + local_44 * 4)" identifier = (cast_expression "(undefined4 *)(iVar29 + local_44 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + local_44 * 4)" ( (binary_expression "iVar29 + local_44 * 4" identifier + (binary_expression "local_44 * 4" identifier * number_literal)) )))) ;) (do_statement "do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);" do (compound_statement "{\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      }" { (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) (expression_statement "*puVar7 = uVar6;" (assignment_expression "*puVar7 = uVar6" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((undefined4 *)(param_4 + iVar30) != puVar13)" ( (binary_expression "(undefined4 *)(param_4 + iVar30) != puVar13" (cast_expression "(undefined4 *)(param_4 + iVar30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + iVar30)" ( (binary_expression "param_4 + iVar30" identifier + identifier) ))) != identifier) )) ;) (labeled_statement "LAB_0005bc50:\n      iVar8 = 0;" statement_identifier : (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;)) })) }) (else_clause "else {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);\n    if (iVar8 != 0) {\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }\n    if (iVar29 == param_4) goto LAB_0005bc50;\n    iVar8 = 0;\n    if (local_44 < iVar28) goto LAB_0005bc28;\n  }" else (compound_statement "{\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);\n    if (iVar8 != 0) {\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }\n    if (iVar29 == param_4) goto LAB_0005bc50;\n    iVar8 = 0;\n    if (local_44 < iVar28) goto LAB_0005bc28;\n  }" { (expression_statement "iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar29,param_4,iVar29,iVar26)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar8 != 0) {\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }" { (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) (if_statement "if (iVar28 <= iVar26) goto LAB_0005bc58;" if (parenthesized_expression "(iVar28 <= iVar26)" ( (binary_expression "iVar28 <= iVar26" identifier <= identifier) )) (goto_statement "goto LAB_0005bc58;" goto statement_identifier ;)) (expression_statement "local_44 = param_5 + 2;" (assignment_expression "local_44 = param_5 + 2" identifier = (binary_expression "param_5 + 2" identifier + number_literal)) ;) (expression_statement "iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;" (assignment_expression "iVar8 = *(int *)(param_4 + iVar26 * 4) + 1" identifier = (binary_expression "*(int *)(param_4 + iVar26 * 4) + 1" (pointer_expression "*(int *)(param_4 + iVar26 * 4)" * (cast_expression "(int *)(param_4 + iVar26 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + iVar26 * 4)" ( (binary_expression "param_4 + iVar26 * 4" identifier + (binary_expression "iVar26 * 4" identifier * number_literal)) )))) + number_literal)) ;) (expression_statement "*(int *)(iVar29 + iVar26 * 4) = iVar8;" (assignment_expression "*(int *)(iVar29 + iVar26 * 4) = iVar8" (pointer_expression "*(int *)(iVar29 + iVar26 * 4)" * (cast_expression "(int *)(iVar29 + iVar26 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + iVar26 * 4)" ( (binary_expression "iVar29 + iVar26 * 4" identifier + (binary_expression "iVar26 * 4" identifier * number_literal)) )))) = identifier) ;) (if_statement "if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }" { (expression_statement "iVar16 = param_4 + param_5 * 4;" (assignment_expression "iVar16 = param_4 + param_5 * 4" identifier = (binary_expression "param_4 + param_5 * 4" identifier + (binary_expression "param_5 * 4" identifier * number_literal))) ;) (expression_statement "iVar8 = iVar29 + param_5 * 4;" (assignment_expression "iVar8 = iVar29 + param_5 * 4" identifier = (binary_expression "iVar29 + param_5 * 4" identifier + (binary_expression "param_5 * 4" identifier * number_literal))) ;) (do_statement "do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);" do (compound_statement "{\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        }" { (if_statement "if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }" if (parenthesized_expression "(iVar28 == local_44)" ( (binary_expression "iVar28 == local_44" identifier == identifier) )) (compound_statement "{\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }" { (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0005bc58;" goto statement_identifier ;) })) (expression_statement "piVar32 = (int *)(iVar16 + 8);" (assignment_expression "piVar32 = (int *)(iVar16 + 8)" identifier = (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) ;) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = iVar16 + 4;" (assignment_expression "iVar16 = iVar16 + 4" identifier = (binary_expression "iVar16 + 4" identifier + number_literal)) ;) (expression_statement "iVar26 = *piVar32 + 1;" (assignment_expression "iVar26 = *piVar32 + 1" identifier = (binary_expression "*piVar32 + 1" (pointer_expression "*piVar32" * identifier) + number_literal)) ;) (expression_statement "*(int *)(iVar8 + 8) = iVar26;" (assignment_expression "*(int *)(iVar8 + 8) = iVar26" (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar8 = iVar8 + 4;" (assignment_expression "iVar8 = iVar8 + 4" identifier = (binary_expression "iVar8 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) ;) })) })) (if_statement "if (iVar29 == param_4) goto LAB_0005bc50;" if (parenthesized_expression "(iVar29 == param_4)" ( (binary_expression "iVar29 == param_4" identifier == identifier) )) (goto_statement "goto LAB_0005bc50;" goto statement_identifier ;)) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (local_44 < iVar28) goto LAB_0005bc28;" if (parenthesized_expression "(local_44 < iVar28)" ( (binary_expression "local_44 < iVar28" identifier < identifier) )) (goto_statement "goto LAB_0005bc28;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0005bc58:\n  *piVar21 = iVar8;" statement_identifier : (expression_statement "*piVar21 = iVar8;" (assignment_expression "*piVar21 = iVar8" (pointer_expression "*piVar21" * identifier) = identifier) ;)) (labeled_statement "LAB_0005bc5c:\n  uVar5 = (*local_2c)(iVar17,iVar29,param_1,iVar31);" statement_identifier : (expression_statement "uVar5 = (*local_2c)(iVar17,iVar29,param_1,iVar31);" (assignment_expression "uVar5 = (*local_2c)(iVar17,iVar29,param_1,iVar31)" identifier = (call_expression "(*local_2c)(iVar17,iVar29,param_1,iVar31)" (parenthesized_expression "(*local_2c)" ( (pointer_expression "*local_2c" * identifier) )) (argument_list "(iVar17,iVar29,param_1,iVar31)" ( identifier , identifier , identifier , identifier )))) ;)) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar15,iVar17,iVar31)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(iVar15,iVar20,iVar29,iVar31);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(iVar15,iVar20,iVar29,iVar31)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar15,iVar20,iVar29,iVar31)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom_couple_handling_00097370)\n            (iVar15,iVar23,param_1,uVar27 ^ uVar5,iVar28,1,2);" (call_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)\n            (iVar15,iVar23,param_1,uVar27 ^ uVar5,iVar28,1,2)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)" ( (pointer_expression "*(code *)PTR___gmpn_toom_couple_handling_00097370" * (cast_expression "(code *)PTR___gmpn_toom_couple_handling_00097370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar15,iVar23,param_1,uVar27 ^ uVar5,iVar28,1,2)" ( identifier , identifier , identifier , (binary_expression "uVar27 ^ uVar5" identifier ^ identifier) , identifier , number_literal , number_literal ))) ;) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,param_2,param_4,iVar28);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,param_2,param_4,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" ( (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" * (cast_expression "(code *)PTR___gmpn_mul_n_00097364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,param_4,iVar28)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (param_5 < param_3) {\n    (*(code *)PTR___gmpn_mul_000972b4)();\n  }\n  else {\n    (*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);\n  }" if (parenthesized_expression "(param_5 < param_3)" ( (binary_expression "param_5 < param_3" identifier < identifier) )) (compound_statement "{\n    (*(code *)PTR___gmpn_mul_000972b4)();\n  }" { (expression_statement "(*(code *)PTR___gmpn_mul_000972b4)();" (call_expression "(*(code *)PTR___gmpn_mul_000972b4)()" (parenthesized_expression "(*(code *)PTR___gmpn_mul_000972b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_000972b4" * (cast_expression "(code *)PTR___gmpn_mul_000972b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n    (*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);\n  }" else (compound_statement "{\n    (*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);\n  }" { (expression_statement "(*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);" (call_expression "(*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_000972b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_000972b4" * (cast_expression "(code *)PTR___gmpn_mul_000972b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3)" ( (binary_expression "param_1 + iVar28 * 0x1c" identifier + (binary_expression "iVar28 * 0x1c" identifier * number_literal)) , identifier , identifier , (binary_expression "param_2 + iVar14" identifier + identifier) , identifier ))) ;) }))) (expression_statement "(*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(param_1,iVar28,iVar22,param_6);" (call_expression "(*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(param_1,iVar28,iVar22,param_6)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)" ( (pointer_expression "*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4" * (cast_expression "(code *)PTR___gmpn_toom_interpolate_8pts_000973e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar28,iVar22,param_6)" ( identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT << LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) / LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) / LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT , IDENT , IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , 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 + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + LIT) + IDENT) )) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , (binary_expression IDENT ^ IDENT) , IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT , IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) })) (goto_statement goto statement_identifier ;) })) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , (binary_expression IDENT ^ IDENT) , IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT , IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) != IDENT) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT == IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_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 IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (unary_expression ~ IDENT)) ;) (goto_statement goto statement_identifier ;) })) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT - IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT , IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , 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 + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) != IDENT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , (binary_expression IDENT ^ IDENT) , IDENT , LIT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + (binary_expression IDENT * LIT)) , IDENT , IDENT , (binary_expression IDENT + IDENT) , IDENT ))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void __gmpn_toom63_mul(int param_1,int param_2,int param_3,int param_4,int param_5,int param_6)\n\n{\n  uint *puVar1;\n  int *piVar2;\n  bool bVar3;\n  undefined *puVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  int iVar20;\n  int *piVar21;\n  int iVar22;\n  int iVar23;\n  int *piVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  int iVar31;\n  int *piVar32;\n  int local_44;\n  uint local_38;\n  code *local_2c;\n  \n  if (param_3 < param_5 << 1) {\n    uVar27 = (param_5 - 1U) / 3;\n  }\n  else {\n    uVar27 = (param_3 - 1U) / 6;\n  }\n  iVar28 = uVar27 + 1;\n  iVar30 = iVar28 * 4;\n  iVar14 = iVar28 * 0x14;\n  param_3 = param_3 + iVar28 * -5;\n  iVar20 = param_1 + iVar14 + 8;\n  iVar15 = param_1 + iVar28 * 0xc;\n  param_5 = param_5 + iVar28 * -2;\n  uVar5 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)\n                    (iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1);\n  iVar16 = param_4 + iVar30;\n  uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,2);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  *(undefined4 *)(param_1 + iVar30) = uVar6;\n  iVar25 = iVar16 + iVar30;\n  puVar7 = (undefined4 *)(param_1 + (iVar28 * 6 + 3 + param_5) * 4);\n  iVar29 = param_1 + iVar28 * 0x18 + 0xc;\n  uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,4);\n  *puVar7 = uVar6;\n  iVar17 = param_1 + iVar28 * 0x10 + 4;\n  piVar21 = (int *)(param_1 + iVar28 * 0x1c + 0xc);\n  iVar26 = param_5 + 1;\n  iVar22 = param_6 + iVar28 * 0xc + 4;\n  iVar8 = param_6 + iVar28 * 0x18 + 8;\n  iVar23 = iVar28 * 2 + 1;\n  if (iVar28 == param_5) {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = *piVar21 + iVar9;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1);\n    iVar31 = param_5 + 1;\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28);\n    if (iVar9 == 0) goto LAB_0005ba9c;\nLAB_0005c014:\n    iVar10 = 1;\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n    *piVar21 = iVar9 + 1;\n  }\n  else {\n    iVar9 = param_5 + 1;\n    if (iVar9 == 0) {\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }\n    else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar31 = uVar27 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = iVar10;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    if (param_5 == 0) {\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }\n    else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    *piVar21 = iVar9;\n    puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);\n    iVar9 = param_6 + iVar28 * 0x1c;\n    do {\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar27 != 0xffffffff);\n    iVar10 = 0;\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n  }\nLAB_0005bb0c:\n  iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28);\n  *piVar32 = iVar10 - iVar8;\nLAB_0005bb30:\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_6,iVar20,iVar29,iVar31);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)(param_6,iVar23,param_1,local_38,iVar28,0,0);\n  uVar27 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)\n                     (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n  uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,1);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  *(undefined4 *)(param_1 + iVar30) = uVar6;\n  uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,2);\n  *puVar7 = uVar6;\n  if (iVar28 == param_5) {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    *piVar21 = *piVar21 + iVar8;\n    goto LAB_0005bc5c;\n  }\n  local_44 = iVar26;\n  if (iVar26 == 0) {\n    iVar8 = 0;\n    if (iVar29 != param_4) {\nLAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);\n      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);\n      do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);\nLAB_0005bc50:\n      iVar8 = 0;\n    }\n  }\n  else {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);\n    if (iVar8 != 0) {\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }\n    if (iVar29 == param_4) goto LAB_0005bc50;\n    iVar8 = 0;\n    if (local_44 < iVar28) goto LAB_0005bc28;\n  }\nLAB_0005bc58:\n  *piVar21 = iVar8;\nLAB_0005bc5c:\n  uVar5 = (*local_2c)(iVar17,iVar29,param_1,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(iVar15,iVar20,iVar29,iVar31);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n            (iVar15,iVar23,param_1,uVar27 ^ uVar5,iVar28,1,2);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,param_2,param_4,iVar28);\n  if (param_5 < param_3) {\n    (*(code *)PTR___gmpn_mul_000972b4)();\n  }\n  else {\n    (*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);\n  }\n                    \n                    \n  (*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(param_1,iVar28,iVar22,param_6);\n  return;\n}" (primitive_type "void") (function_declarator "__gmpn_toom63_mul(int param_1,int param_2,int param_3,int param_4,int param_5,int param_6)" (identifier "__gmpn_toom63_mul") (parameter_list "(int param_1,int param_2,int param_3,int param_4,int param_5,int param_6)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) () ")"))) (compound_statement "{\n  uint *puVar1;\n  int *piVar2;\n  bool bVar3;\n  undefined *puVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  int iVar20;\n  int *piVar21;\n  int iVar22;\n  int iVar23;\n  int *piVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  int iVar31;\n  int *piVar32;\n  int local_44;\n  uint local_38;\n  code *local_2c;\n  \n  if (param_3 < param_5 << 1) {\n    uVar27 = (param_5 - 1U) / 3;\n  }\n  else {\n    uVar27 = (param_3 - 1U) / 6;\n  }\n  iVar28 = uVar27 + 1;\n  iVar30 = iVar28 * 4;\n  iVar14 = iVar28 * 0x14;\n  param_3 = param_3 + iVar28 * -5;\n  iVar20 = param_1 + iVar14 + 8;\n  iVar15 = param_1 + iVar28 * 0xc;\n  param_5 = param_5 + iVar28 * -2;\n  uVar5 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)\n                    (iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1);\n  iVar16 = param_4 + iVar30;\n  uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,2);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  *(undefined4 *)(param_1 + iVar30) = uVar6;\n  iVar25 = iVar16 + iVar30;\n  puVar7 = (undefined4 *)(param_1 + (iVar28 * 6 + 3 + param_5) * 4);\n  iVar29 = param_1 + iVar28 * 0x18 + 0xc;\n  uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,4);\n  *puVar7 = uVar6;\n  iVar17 = param_1 + iVar28 * 0x10 + 4;\n  piVar21 = (int *)(param_1 + iVar28 * 0x1c + 0xc);\n  iVar26 = param_5 + 1;\n  iVar22 = param_6 + iVar28 * 0xc + 4;\n  iVar8 = param_6 + iVar28 * 0x18 + 8;\n  iVar23 = iVar28 * 2 + 1;\n  if (iVar28 == param_5) {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = *piVar21 + iVar9;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1);\n    iVar31 = param_5 + 1;\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28);\n    if (iVar9 == 0) goto LAB_0005ba9c;\nLAB_0005c014:\n    iVar10 = 1;\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n    *piVar21 = iVar9 + 1;\n  }\n  else {\n    iVar9 = param_5 + 1;\n    if (iVar9 == 0) {\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }\n    else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar31 = uVar27 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = iVar10;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    if (param_5 == 0) {\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }\n    else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    *piVar21 = iVar9;\n    puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);\n    iVar9 = param_6 + iVar28 * 0x1c;\n    do {\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar27 != 0xffffffff);\n    iVar10 = 0;\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n  }\nLAB_0005bb0c:\n  iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28);\n  *piVar32 = iVar10 - iVar8;\nLAB_0005bb30:\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_6,iVar20,iVar29,iVar31);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)(param_6,iVar23,param_1,local_38,iVar28,0,0);\n  uVar27 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)\n                     (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n  uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,1);\n  puVar4 = PTR___gmpn_lshift_0009756c;\n  *(undefined4 *)(param_1 + iVar30) = uVar6;\n  uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,2);\n  *puVar7 = uVar6;\n  if (iVar28 == param_5) {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    *piVar21 = *piVar21 + iVar8;\n    goto LAB_0005bc5c;\n  }\n  local_44 = iVar26;\n  if (iVar26 == 0) {\n    iVar8 = 0;\n    if (iVar29 != param_4) {\nLAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);\n      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);\n      do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);\nLAB_0005bc50:\n      iVar8 = 0;\n    }\n  }\n  else {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);\n    if (iVar8 != 0) {\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }\n    if (iVar29 == param_4) goto LAB_0005bc50;\n    iVar8 = 0;\n    if (local_44 < iVar28) goto LAB_0005bc28;\n  }\nLAB_0005bc58:\n  *piVar21 = iVar8;\nLAB_0005bc5c:\n  uVar5 = (*local_2c)(iVar17,iVar29,param_1,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n  (*(code *)PTR___gmpn_mul_n_00097364)(iVar15,iVar20,iVar29,iVar31);\n  (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n            (iVar15,iVar23,param_1,uVar27 ^ uVar5,iVar28,1,2);\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,param_2,param_4,iVar28);\n  if (param_5 < param_3) {\n    (*(code *)PTR___gmpn_mul_000972b4)();\n  }\n  else {\n    (*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);\n  }\n                    \n                    \n  (*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(param_1,iVar28,iVar22,param_6);\n  return;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "uint *puVar12;" (type_identifier "uint") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "undefined4 *puVar18;" (type_identifier "undefined4") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "int *piVar21;" (primitive_type "int") (pointer_declarator "*piVar21" (* "*") (identifier "piVar21")) (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "int *piVar24;" (primitive_type "int") (pointer_declarator "*piVar24" (* "*") (identifier "piVar24")) (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "int iVar26;" (primitive_type "int") (identifier "iVar26") (; ";")) (declaration "uint uVar27;" (type_identifier "uint") (identifier "uVar27") (; ";")) (declaration "int iVar28;" (primitive_type "int") (identifier "iVar28") (; ";")) (declaration "int iVar29;" (primitive_type "int") (identifier "iVar29") (; ";")) (declaration "int iVar30;" (primitive_type "int") (identifier "iVar30") (; ";")) (declaration "int iVar31;" (primitive_type "int") (identifier "iVar31") (; ";")) (declaration "int *piVar32;" (primitive_type "int") (pointer_declarator "*piVar32" (* "*") (identifier "piVar32")) (; ";")) (declaration "int local_44;" (primitive_type "int") (identifier "local_44") (; ";")) (declaration "uint local_38;" (type_identifier "uint") (identifier "local_38") (; ";")) (declaration "code *local_2c;" (type_identifier "code") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (if_statement "if (param_3 < param_5 << 1) {\n    uVar27 = (param_5 - 1U) / 3;\n  }\n  else {\n    uVar27 = (param_3 - 1U) / 6;\n  }" (if "if") (parenthesized_expression "(param_3 < param_5 << 1)" (( "(") (binary_expression "param_3 < param_5 << 1" (identifier "param_3") (< "<") (binary_expression "param_5 << 1" (identifier "param_5") (<< "<<") (number_literal "1"))) () ")")) (compound_statement "{\n    uVar27 = (param_5 - 1U) / 3;\n  }" ({ "{") (expression_statement "uVar27 = (param_5 - 1U) / 3;" (assignment_expression "uVar27 = (param_5 - 1U) / 3" (identifier "uVar27") (= "=") (binary_expression "(param_5 - 1U) / 3" (parenthesized_expression "(param_5 - 1U)" (( "(") (binary_expression "param_5 - 1U" (identifier "param_5") (- "-") (number_literal "1U")) () ")")) (/ "/") (number_literal "3"))) (; ";")) (} "}")) (else_clause "else {\n    uVar27 = (param_3 - 1U) / 6;\n  }" (else "else") (compound_statement "{\n    uVar27 = (param_3 - 1U) / 6;\n  }" ({ "{") (expression_statement "uVar27 = (param_3 - 1U) / 6;" (assignment_expression "uVar27 = (param_3 - 1U) / 6" (identifier "uVar27") (= "=") (binary_expression "(param_3 - 1U) / 6" (parenthesized_expression "(param_3 - 1U)" (( "(") (binary_expression "param_3 - 1U" (identifier "param_3") (- "-") (number_literal "1U")) () ")")) (/ "/") (number_literal "6"))) (; ";")) (} "}")))) (expression_statement "iVar28 = uVar27 + 1;" (assignment_expression "iVar28 = uVar27 + 1" (identifier "iVar28") (= "=") (binary_expression "uVar27 + 1" (identifier "uVar27") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar30 = iVar28 * 4;" (assignment_expression "iVar30 = iVar28 * 4" (identifier "iVar30") (= "=") (binary_expression "iVar28 * 4" (identifier "iVar28") (* "*") (number_literal "4"))) (; ";")) (expression_statement "iVar14 = iVar28 * 0x14;" (assignment_expression "iVar14 = iVar28 * 0x14" (identifier "iVar14") (= "=") (binary_expression "iVar28 * 0x14" (identifier "iVar28") (* "*") (number_literal "0x14"))) (; ";")) (expression_statement "param_3 = param_3 + iVar28 * -5;" (assignment_expression "param_3 = param_3 + iVar28 * -5" (identifier "param_3") (= "=") (binary_expression "param_3 + iVar28 * -5" (identifier "param_3") (+ "+") (binary_expression "iVar28 * -5" (identifier "iVar28") (* "*") (number_literal "-5")))) (; ";")) (expression_statement "iVar20 = param_1 + iVar14 + 8;" (assignment_expression "iVar20 = param_1 + iVar14 + 8" (identifier "iVar20") (= "=") (binary_expression "param_1 + iVar14 + 8" (binary_expression "param_1 + iVar14" (identifier "param_1") (+ "+") (identifier "iVar14")) (+ "+") (number_literal "8"))) (; ";")) (expression_statement "iVar15 = param_1 + iVar28 * 0xc;" (assignment_expression "iVar15 = param_1 + iVar28 * 0xc" (identifier "iVar15") (= "=") (binary_expression "param_1 + iVar28 * 0xc" (identifier "param_1") (+ "+") (binary_expression "iVar28 * 0xc" (identifier "iVar28") (* "*") (number_literal "0xc")))) (; ";")) (expression_statement "param_5 = param_5 + iVar28 * -2;" (assignment_expression "param_5 = param_5 + iVar28 * -2" (identifier "param_5") (= "=") (binary_expression "param_5 + iVar28 * -2" (identifier "param_5") (+ "+") (binary_expression "iVar28 * -2" (identifier "iVar28") (* "*") (number_literal "-2")))) (; ";")) (expression_statement "uVar5 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)\n                    (iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1);" (assignment_expression "uVar5 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)\n                    (iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1)" (identifier "uVar5") (= "=") (call_expression "(*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)\n                    (iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8" (* "*") (cast_expression "(code *)PTR___gmpn_toom_eval_pm2exp_000974d8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom_eval_pm2exp_000974d8"))) () ")")) (argument_list "(iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1)" (( "(") (identifier "iVar20") (, ",") (identifier "iVar15") (, ",") (number_literal "5") (, ",") (identifier "param_2") (, ",") (identifier "iVar28") (, ",") (identifier "param_3") (, ",") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "iVar16 = param_4 + iVar30;" (assignment_expression "iVar16 = param_4 + iVar30" (identifier "iVar16") (= "=") (binary_expression "param_4 + iVar30" (identifier "param_4") (+ "+") (identifier "iVar30"))) (; ";")) (expression_statement "uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,2);" (assignment_expression "uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,2)" (identifier "uVar6") (= "=") (call_expression "(*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,2)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009756c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_lshift_0009756c" (* "*") (cast_expression "(code *)PTR___gmpn_lshift_0009756c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_lshift_0009756c"))) () ")")) (argument_list "(param_1,iVar16,iVar28,2)" (( "(") (identifier "param_1") (, ",") (identifier "iVar16") (, ",") (identifier "iVar28") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "puVar4 = PTR___gmpn_lshift_0009756c;" (assignment_expression "puVar4 = PTR___gmpn_lshift_0009756c" (identifier "puVar4") (= "=") (identifier "PTR___gmpn_lshift_0009756c")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + iVar30) = uVar6;" (assignment_expression "*(undefined4 *)(param_1 + iVar30) = uVar6" (pointer_expression "*(undefined4 *)(param_1 + iVar30)" (* "*") (cast_expression "(undefined4 *)(param_1 + iVar30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar30)" (( "(") (binary_expression "param_1 + iVar30" (identifier "param_1") (+ "+") (identifier "iVar30")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "iVar25 = iVar16 + iVar30;" (assignment_expression "iVar25 = iVar16 + iVar30" (identifier "iVar25") (= "=") (binary_expression "iVar16 + iVar30" (identifier "iVar16") (+ "+") (identifier "iVar30"))) (; ";")) (expression_statement "puVar7 = (undefined4 *)(param_1 + (iVar28 * 6 + 3 + param_5) * 4);" (assignment_expression "puVar7 = (undefined4 *)(param_1 + (iVar28 * 6 + 3 + param_5) * 4)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(param_1 + (iVar28 * 6 + 3 + param_5) * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + (iVar28 * 6 + 3 + param_5) * 4)" (( "(") (binary_expression "param_1 + (iVar28 * 6 + 3 + param_5) * 4" (identifier "param_1") (+ "+") (binary_expression "(iVar28 * 6 + 3 + param_5) * 4" (parenthesized_expression "(iVar28 * 6 + 3 + param_5)" (( "(") (binary_expression "iVar28 * 6 + 3 + param_5" (binary_expression "iVar28 * 6 + 3" (binary_expression "iVar28 * 6" (identifier "iVar28") (* "*") (number_literal "6")) (+ "+") (number_literal "3")) (+ "+") (identifier "param_5")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "iVar29 = param_1 + iVar28 * 0x18 + 0xc;" (assignment_expression "iVar29 = param_1 + iVar28 * 0x18 + 0xc" (identifier "iVar29") (= "=") (binary_expression "param_1 + iVar28 * 0x18 + 0xc" (binary_expression "param_1 + iVar28 * 0x18" (identifier "param_1") (+ "+") (binary_expression "iVar28 * 0x18" (identifier "iVar28") (* "*") (number_literal "0x18"))) (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,4);" (assignment_expression "uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,4)" (identifier "uVar6") (= "=") (call_expression "(*(code *)puVar4)(iVar29,iVar25,param_5,4)" (parenthesized_expression "(*(code *)puVar4)" (( "(") (pointer_expression "*(code *)puVar4" (* "*") (cast_expression "(code *)puVar4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) () ")")) (argument_list "(iVar29,iVar25,param_5,4)" (( "(") (identifier "iVar29") (, ",") (identifier "iVar25") (, ",") (identifier "param_5") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*puVar7 = uVar6;" (assignment_expression "*puVar7 = uVar6" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "iVar17 = param_1 + iVar28 * 0x10 + 4;" (assignment_expression "iVar17 = param_1 + iVar28 * 0x10 + 4" (identifier "iVar17") (= "=") (binary_expression "param_1 + iVar28 * 0x10 + 4" (binary_expression "param_1 + iVar28 * 0x10" (identifier "param_1") (+ "+") (binary_expression "iVar28 * 0x10" (identifier "iVar28") (* "*") (number_literal "0x10"))) (+ "+") (number_literal "4"))) (; ";")) (expression_statement "piVar21 = (int *)(param_1 + iVar28 * 0x1c + 0xc);" (assignment_expression "piVar21 = (int *)(param_1 + iVar28 * 0x1c + 0xc)" (identifier "piVar21") (= "=") (cast_expression "(int *)(param_1 + iVar28 * 0x1c + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar28 * 0x1c + 0xc)" (( "(") (binary_expression "param_1 + iVar28 * 0x1c + 0xc" (binary_expression "param_1 + iVar28 * 0x1c" (identifier "param_1") (+ "+") (binary_expression "iVar28 * 0x1c" (identifier "iVar28") (* "*") (number_literal "0x1c"))) (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "iVar26 = param_5 + 1;" (assignment_expression "iVar26 = param_5 + 1" (identifier "iVar26") (= "=") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar22 = param_6 + iVar28 * 0xc + 4;" (assignment_expression "iVar22 = param_6 + iVar28 * 0xc + 4" (identifier "iVar22") (= "=") (binary_expression "param_6 + iVar28 * 0xc + 4" (binary_expression "param_6 + iVar28 * 0xc" (identifier "param_6") (+ "+") (binary_expression "iVar28 * 0xc" (identifier "iVar28") (* "*") (number_literal "0xc"))) (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar8 = param_6 + iVar28 * 0x18 + 8;" (assignment_expression "iVar8 = param_6 + iVar28 * 0x18 + 8" (identifier "iVar8") (= "=") (binary_expression "param_6 + iVar28 * 0x18 + 8" (binary_expression "param_6 + iVar28 * 0x18" (identifier "param_6") (+ "+") (binary_expression "iVar28 * 0x18" (identifier "iVar28") (* "*") (number_literal "0x18"))) (+ "+") (number_literal "8"))) (; ";")) (expression_statement "iVar23 = iVar28 * 2 + 1;" (assignment_expression "iVar23 = iVar28 * 2 + 1" (identifier "iVar23") (= "=") (binary_expression "iVar28 * 2 + 1" (binary_expression "iVar28 * 2" (identifier "iVar28") (* "*") (number_literal "2")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar28 == param_5) {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = *piVar21 + iVar9;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1);\n    iVar31 = param_5 + 1;\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28);\n    if (iVar9 == 0) goto LAB_0005ba9c;\nLAB_0005c014:\n    iVar10 = 1;\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n    *piVar21 = iVar9 + 1;\n  }\n  else {\n    iVar9 = param_5 + 1;\n    if (iVar9 == 0) {\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }\n    else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar31 = uVar27 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = iVar10;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    if (param_5 == 0) {\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }\n    else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    *piVar21 = iVar9;\n    puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);\n    iVar9 = param_6 + iVar28 * 0x1c;\n    do {\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar27 != 0xffffffff);\n    iVar10 = 0;\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n  }" (if "if") (parenthesized_expression "(iVar28 == param_5)" (( "(") (binary_expression "iVar28 == param_5" (identifier "iVar28") (== "==") (identifier "param_5")) () ")")) (compound_statement "{\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = *piVar21 + iVar9;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1);\n    iVar31 = param_5 + 1;\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28);\n    if (iVar9 == 0) goto LAB_0005ba9c;\nLAB_0005c014:\n    iVar10 = 1;\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n    *piVar21 = iVar9 + 1;\n  }" ({ "{") (expression_statement "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);" (assignment_expression "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" (( "(") (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" (* "*") (cast_expression "(code *)PTR___gmpn_add_n_00097334" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_add_n_00097334"))) () ")")) (argument_list "(iVar29,iVar29,param_4,iVar28)" (( "(") (identifier "iVar29") (, ",") (identifier "iVar29") (, ",") (identifier "param_4") (, ",") (identifier "iVar28") () ")")))) (; ";")) (expression_statement "local_2c = (code *)(PTR_LAB_00097080 + -0x4980);" (assignment_expression "local_2c = (code *)(PTR_LAB_00097080 + -0x4980)" (identifier "local_2c") (= "=") (cast_expression "(code *)(PTR_LAB_00097080 + -0x4980)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00097080 + -0x4980)" (( "(") (binary_expression "PTR_LAB_00097080 + -0x4980" (identifier "PTR_LAB_00097080") (+ "+") (number_literal "-0x4980")) () ")")))) (; ";")) (expression_statement "*piVar21 = *piVar21 + iVar9;" (assignment_expression "*piVar21 = *piVar21 + iVar9" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (= "=") (binary_expression "*piVar21 + iVar9" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1);" (assignment_expression "uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1)" (identifier "uVar11") (= "=") (call_expression "FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1)" (identifier "FUN_0005b680") (argument_list "(iVar17,iVar29,param_1,param_5 + 1)" (( "(") (identifier "iVar17") (, ",") (identifier "iVar29") (, ",") (identifier "param_1") (, ",") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" (* "*") (cast_expression "(code *)PTR___gmpn_mul_n_00097364" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mul_n_00097364"))) () ")")) (argument_list "(param_1,iVar15,iVar17,param_5 + 1)" (( "(") (identifier "param_1") (, ",") (identifier "iVar15") (, ",") (identifier "iVar17") (, ",") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" (* "*") (cast_expression "(code *)PTR___gmpn_mul_n_00097364" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mul_n_00097364"))) () ")")) (argument_list "(iVar22,iVar20,iVar29,param_5 + 1)" (( "(") (identifier "iVar22") (, ",") (identifier "iVar20") (, ",") (identifier "iVar29") (, ",") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "iVar31 = param_5 + 1;" (assignment_expression "iVar31 = param_5 + 1" (identifier "iVar31") (= "=") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);" (call_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom_couple_handling_00097370" (* "*") (cast_expression "(code *)PTR___gmpn_toom_couple_handling_00097370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom_couple_handling_00097370"))) () ")")) (argument_list "(iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4)" (( "(") (identifier "iVar22") (, ",") (identifier "iVar23") (, ",") (identifier "param_1") (, ",") (binary_expression "uVar5 ^ uVar11" (identifier "uVar5") (^ "^") (identifier "uVar11")) (, ",") (identifier "iVar28") (, ",") (number_literal "2") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);" (assignment_expression "local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" (identifier "local_38") (= "=") (call_expression "(*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_pm1_000971e0)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom_eval_pm1_000971e0" (* "*") (cast_expression "(code *)PTR___gmpn_toom_eval_pm1_000971e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom_eval_pm1_000971e0"))) () ")")) (argument_list "(iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" (( "(") (identifier "iVar20") (, ",") (identifier "iVar15") (, ",") (number_literal "5") (, ",") (identifier "param_2") (, ",") (identifier "iVar28") (, ",") (identifier "param_3") (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28);" (assignment_expression "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" (( "(") (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" (* "*") (cast_expression "(code *)PTR___gmpn_add_n_00097334" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_add_n_00097334"))) () ")")) (argument_list "(iVar8,param_4,iVar25,iVar28)" (( "(") (identifier "iVar8") (, ",") (identifier "param_4") (, ",") (identifier "iVar25") (, ",") (identifier "iVar28") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) goto LAB_0005ba9c;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0005ba9c;" (goto "goto") (statement_identifier "LAB_0005ba9c") (; ";"))) (labeled_statement "LAB_0005c014:\n    iVar10 = 1;" (statement_identifier "LAB_0005c014") (: ":") (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" (identifier "iVar10") (= "=") (number_literal "1")) (; ";"))) (expression_statement "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);" (assignment_expression "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" (( "(") (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" (* "*") (cast_expression "(code *)PTR___gmpn_add_n_00097334" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_add_n_00097334"))) () ")")) (argument_list "(iVar29,iVar8,iVar16,iVar28)" (( "(") (identifier "iVar29") (, ",") (identifier "iVar8") (, ",") (identifier "iVar16") (, ",") (identifier "iVar28") () ")")))) (; ";")) (expression_statement "piVar32 = (int *)(param_1 + iVar14 + 4);" (assignment_expression "piVar32 = (int *)(param_1 + iVar14 + 4)" (identifier "piVar32") (= "=") (cast_expression "(int *)(param_1 + iVar14 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar14 + 4)" (( "(") (binary_expression "param_1 + iVar14 + 4" (binary_expression "param_1 + iVar14" (identifier "param_1") (+ "+") (identifier "iVar14")) (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "*piVar21 = iVar9 + 1;" (assignment_expression "*piVar21 = iVar9 + 1" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n    iVar9 = param_5 + 1;\n    if (iVar9 == 0) {\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }\n    else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar31 = uVar27 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = iVar10;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    if (param_5 == 0) {\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }\n    else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    *piVar21 = iVar9;\n    puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);\n    iVar9 = param_6 + iVar28 * 0x1c;\n    do {\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar27 != 0xffffffff);\n    iVar10 = 0;\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n  }" (else "else") (compound_statement "{\n    iVar9 = param_5 + 1;\n    if (iVar9 == 0) {\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }\n    else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }\nLAB_0005b990:\n    iVar31 = uVar27 + 2;\n    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);\n    *piVar21 = iVar10;\n    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);\n    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);\n    (*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);\n    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);\n    if (param_5 == 0) {\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }\n    else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }\nLAB_0005ba9c:\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);\n    *piVar21 = iVar9;\n    puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);\n    iVar9 = param_6 + iVar28 * 0x1c;\n    do {\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar27 != 0xffffffff);\n    iVar10 = 0;\n    piVar32 = (int *)(param_1 + iVar14 + 4);\n  }" ({ "{") (expression_statement "iVar9 = param_5 + 1;" (assignment_expression "iVar9 = param_5 + 1" (identifier "iVar9") (= "=") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar9 == 0) {\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }\n    else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar9 = 0;\n      if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }\nLAB_0005b98c:\n      iVar10 = 0;\n    }" ({ "{") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar29 != param_4) {\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }" (if "if") (parenthesized_expression "(iVar29 != param_4)" (( "(") (binary_expression "iVar29 != param_4" (identifier "iVar29") (!= "!=") (identifier "param_4")) () ")")) (compound_statement "{\nLAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));\n      }" ({ "{") (labeled_statement "LAB_0005b968:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);" (statement_identifier "LAB_0005b968") (: ":") (expression_statement "puVar18 = (undefined4 *)(param_4 + iVar9 * 4);" (assignment_expression "puVar18 = (undefined4 *)(param_4 + iVar9 * 4)" (identifier "puVar18") (= "=") (cast_expression "(undefined4 *)(param_4 + iVar9 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + iVar9 * 4)" (( "(") (binary_expression "param_4 + iVar9 * 4" (identifier "param_4") (+ "+") (binary_expression "iVar9 * 4" (identifier "iVar9") (* "*") (number_literal "4"))) () ")")))) (; ";"))) (expression_statement "puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);" (assignment_expression "puVar13 = (undefined4 *)(iVar29 + iVar9 * 4)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)(iVar29 + iVar9 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar29 + iVar9 * 4)" (( "(") (binary_expression "iVar29 + iVar9 * 4" (identifier "iVar29") (+ "+") (binary_expression "iVar9 * 4" (identifier "iVar9") (* "*") (number_literal "4"))) () ")")))) (; ";")) (do_statement "do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while (puVar18 != (undefined4 *)(param_4 + iVar30));" (do "do") (compound_statement "{\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        }" ({ "{") (expression_statement "uVar6 = *puVar18;" (assignment_expression "uVar6 = *puVar18" (identifier "uVar6") (= "=") (pointer_expression "*puVar18" (* "*") (identifier "puVar18"))) (; ";")) (expression_statement "puVar18 = puVar18 + 1;" (assignment_expression "puVar18 = puVar18 + 1" (identifier "puVar18") (= "=") (binary_expression "puVar18 + 1" (identifier "puVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar13 = uVar6;" (assignment_expression "*puVar13 = uVar6" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" (identifier "puVar13") (= "=") (binary_expression "puVar13 + 1" (identifier "puVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar18 != (undefined4 *)(param_4 + iVar30))" (( "(") (binary_expression "puVar18 != (undefined4 *)(param_4 + iVar30)" (identifier "puVar18") (!= "!=") (cast_expression "(undefined4 *)(param_4 + iVar30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + iVar30)" (( "(") (binary_expression "param_4 + iVar30" (identifier "param_4") (+ "+") (identifier "iVar30")) () ")")))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_0005b98c:\n      iVar10 = 0;" (statement_identifier "LAB_0005b98c") (: ":") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }" (else "else") (compound_statement "{\n      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);\n      if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }\n    }" ({ "{") (expression_statement "iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);" (assignment_expression "iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9)" (identifier "iVar31") (= "=") (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" (( "(") (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" (* "*") (cast_expression "(code *)PTR___gmpn_add_n_00097334" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_add_n_00097334"))) () ")")) (argument_list "(iVar29,param_4,iVar29,iVar9)" (( "(") (identifier "iVar29") (, ",") (identifier "param_4") (, ",") (identifier "iVar29") (, ",") (identifier "iVar9") () ")")))) (; ";")) (if_statement "if (iVar31 == 0) {\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }\n      else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }" (if "if") (parenthesized_expression "(iVar31 == 0)" (( "(") (binary_expression "iVar31 == 0" (identifier "iVar31") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar9 = param_5 + 1;\nLAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;\n        if (iVar9 < iVar28) goto LAB_0005b968;\n        iVar10 = 0;\n      }" ({ "{") (expression_statement "iVar9 = param_5 + 1;" (assignment_expression "iVar9 = param_5 + 1" (identifier "iVar9") (= "=") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1"))) (; ";")) (labeled_statement "LAB_0005c0cc:\n        if (iVar29 == param_4) goto LAB_0005b98c;" (statement_identifier "LAB_0005c0cc") (: ":") (if_statement "if (iVar29 == param_4) goto LAB_0005b98c;" (if "if") (parenthesized_expression "(iVar29 == param_4)" (( "(") (binary_expression "iVar29 == param_4" (identifier "iVar29") (== "==") (identifier "param_4")) () ")")) (goto_statement "goto LAB_0005b98c;" (goto "goto") (statement_identifier "LAB_0005b98c") (; ";")))) (if_statement "if (iVar9 < iVar28) goto LAB_0005b968;" (if "if") (parenthesized_expression "(iVar9 < iVar28)" (( "(") (binary_expression "iVar9 < iVar28" (identifier "iVar9") (< "<") (identifier "iVar28")) () ")")) (goto_statement "goto LAB_0005b968;" (goto "goto") (statement_identifier "LAB_0005b968") (; ";"))) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }" (else "else") (compound_statement "{\n        iVar10 = 1;\n        if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }\n      }" ({ "{") (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" (identifier "iVar10") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar9 < iVar28) {\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }" (if "if") (parenthesized_expression "(iVar9 < iVar28)" (( "(") (binary_expression "iVar9 < iVar28" (identifier "iVar9") (< "<") (identifier "iVar28")) () ")")) (compound_statement "{\n          iVar31 = (param_5 + 1) * 4;\n          iVar9 = param_5 + 2;\n          iVar10 = *(int *)(param_4 + iVar31) + 1;\n          *(int *)(iVar29 + iVar31) = iVar10;\n          if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }\n          goto LAB_0005c0cc;\n        }" ({ "{") (expression_statement "iVar31 = (param_5 + 1) * 4;" (assignment_expression "iVar31 = (param_5 + 1) * 4" (identifier "iVar31") (= "=") (binary_expression "(param_5 + 1) * 4" (parenthesized_expression "(param_5 + 1)" (( "(") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "iVar9 = param_5 + 2;" (assignment_expression "iVar9 = param_5 + 2" (identifier "iVar9") (= "=") (binary_expression "param_5 + 2" (identifier "param_5") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar10 = *(int *)(param_4 + iVar31) + 1;" (assignment_expression "iVar10 = *(int *)(param_4 + iVar31) + 1" (identifier "iVar10") (= "=") (binary_expression "*(int *)(param_4 + iVar31) + 1" (pointer_expression "*(int *)(param_4 + iVar31)" (* "*") (cast_expression "(int *)(param_4 + iVar31)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + iVar31)" (( "(") (binary_expression "param_4 + iVar31" (identifier "param_4") (+ "+") (identifier "iVar31")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(iVar29 + iVar31) = iVar10;" (assignment_expression "*(int *)(iVar29 + iVar31) = iVar10" (pointer_expression "*(int *)(iVar29 + iVar31)" (* "*") (cast_expression "(int *)(iVar29 + iVar31)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar29 + iVar31)" (( "(") (binary_expression "iVar29 + iVar31" (identifier "iVar29") (+ "+") (identifier "iVar31")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (iVar10 == 0) {\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar10 = param_4 + param_5 * 4;\n            iVar31 = iVar29 + param_5 * 4;\n            do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);\n          }" ({ "{") (expression_statement "iVar10 = param_4 + param_5 * 4;" (assignment_expression "iVar10 = param_4 + param_5 * 4" (identifier "iVar10") (= "=") (binary_expression "param_4 + param_5 * 4" (identifier "param_4") (+ "+") (binary_expression "param_5 * 4" (identifier "param_5") (* "*") (number_literal "4")))) (; ";")) (expression_statement "iVar31 = iVar29 + param_5 * 4;" (assignment_expression "iVar31 = iVar29 + param_5 * 4" (identifier "iVar31") (= "=") (binary_expression "iVar29 + param_5 * 4" (identifier "iVar29") (+ "+") (binary_expression "param_5 * 4" (identifier "param_5") (* "*") (number_literal "4")))) (; ";")) (do_statement "do {\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            } while (iVar19 == 0);" (do "do") (compound_statement "{\n              if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }\n              piVar32 = (int *)(iVar10 + 8);\n              iVar9 = iVar9 + 1;\n              iVar10 = iVar10 + 4;\n              iVar19 = *piVar32 + 1;\n              *(int *)(iVar31 + 8) = iVar19;\n              iVar31 = iVar31 + 4;\n            }" ({ "{") (if_statement "if (iVar28 == iVar9) {\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }" (if "if") (parenthesized_expression "(iVar28 == iVar9)" (( "(") (binary_expression "iVar28 == iVar9" (identifier "iVar28") (== "==") (identifier "iVar9")) () ")")) (compound_statement "{\n                iVar10 = 1;\n                goto LAB_0005b990;\n              }" ({ "{") (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" (identifier "iVar10") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0005b990;" (goto "goto") (statement_identifier "LAB_0005b990") (; ";")) (} "}"))) (expression_statement "piVar32 = (int *)(iVar10 + 8);" (assignment_expression "piVar32 = (int *)(iVar10 + 8)" (identifier "piVar32") (= "=") (cast_expression "(int *)(iVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = iVar10 + 4;" (assignment_expression "iVar10 = iVar10 + 4" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 4" (identifier "iVar10") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar19 = *piVar32 + 1;" (assignment_expression "iVar19 = *piVar32 + 1" (identifier "iVar19") (= "=") (binary_expression "*piVar32 + 1" (pointer_expression "*piVar32" (* "*") (identifier "piVar32")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(iVar31 + 8) = iVar19;" (assignment_expression "*(int *)(iVar31 + 8) = iVar19" (pointer_expression "*(int *)(iVar31 + 8)" (* "*") (cast_expression "(int *)(iVar31 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 8)" (( "(") (binary_expression "iVar31 + 8" (identifier "iVar31") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar19")) (; ";")) (expression_statement "iVar31 = iVar31 + 4;" (assignment_expression "iVar31 = iVar31 + 4" (identifier "iVar31") (= "=") (binary_expression "iVar31 + 4" (identifier "iVar31") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_0005c0cc;" (goto "goto") (statement_identifier "LAB_0005c0cc") (; ";")) (} "}"))) (} "}")))) (} "}")))) (labeled_statement "LAB_0005b990:\n    iVar31 = uVar27 + 2;" (statement_identifier "LAB_0005b990") (: ":") (expression_statement "iVar31 = uVar27 + 2;" (assignment_expression "iVar31 = uVar27 + 2" (identifier "iVar31") (= "=") (binary_expression "uVar27 + 2" (identifier "uVar27") (+ "+") (number_literal "2"))) (; ";"))) (expression_statement "local_2c = (code *)(PTR_LAB_00097080 + -0x4980);" (assignment_expression "local_2c = (code *)(PTR_LAB_00097080 + -0x4980)" (identifier "local_2c") (= "=") (cast_expression "(code *)(PTR_LAB_00097080 + -0x4980)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00097080 + -0x4980)" (( "(") (binary_expression "PTR_LAB_00097080 + -0x4980" (identifier "PTR_LAB_00097080") (+ "+") (number_literal "-0x4980")) () ")")))) (; ";")) (expression_statement "*piVar21 = iVar10;" (assignment_expression "*piVar21 = iVar10" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);" (assignment_expression "uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31)" (identifier "uVar11") (= "=") (call_expression "FUN_0005b680(iVar17,iVar29,param_1,iVar31)" (identifier "FUN_0005b680") (argument_list "(iVar17,iVar29,param_1,iVar31)" (( "(") (identifier "iVar17") (, ",") (identifier "iVar29") (, ",") (identifier "param_1") (, ",") (identifier "iVar31") () ")")))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" (* "*") (cast_expression "(code *)PTR___gmpn_mul_n_00097364" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mul_n_00097364"))) () ")")) (argument_list "(param_1,iVar15,iVar17,iVar31)" (( "(") (identifier "param_1") (, ",") (identifier "iVar15") (, ",") (identifier "iVar17") (, ",") (identifier "iVar31") () ")"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" (* "*") (cast_expression "(code *)PTR___gmpn_mul_n_00097364" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mul_n_00097364"))) () ")")) (argument_list "(iVar22,iVar20,iVar29,iVar31)" (( "(") (identifier "iVar22") (, ",") (identifier "iVar20") (, ",") (identifier "iVar29") (, ",") (identifier "iVar31") () ")"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);" (call_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)\n              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom_couple_handling_00097370" (* "*") (cast_expression "(code *)PTR___gmpn_toom_couple_handling_00097370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom_couple_handling_00097370"))) () ")")) (argument_list "(iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4)" (( "(") (identifier "iVar22") (, ",") (identifier "iVar23") (, ",") (identifier "param_1") (, ",") (binary_expression "uVar5 ^ uVar11" (identifier "uVar5") (^ "^") (identifier "uVar11")) (, ",") (identifier "iVar28") (, ",") (number_literal "2") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);" (assignment_expression "local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" (identifier "local_38") (= "=") (call_expression "(*(code *)PTR___gmpn_toom_eval_pm1_000971e0)\n                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_pm1_000971e0)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom_eval_pm1_000971e0" (* "*") (cast_expression "(code *)PTR___gmpn_toom_eval_pm1_000971e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom_eval_pm1_000971e0"))) () ")")) (argument_list "(iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" (( "(") (identifier "iVar20") (, ",") (identifier "iVar15") (, ",") (number_literal "5") (, ",") (identifier "param_2") (, ",") (identifier "iVar28") (, ",") (identifier "param_3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (param_5 == 0) {\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }\n    else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }" (if "if") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }\n    }" ({ "{") (if_statement "if (param_4 != iVar8) {\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }" (if "if") (parenthesized_expression "(param_4 != iVar8)" (( "(") (binary_expression "param_4 != iVar8" (identifier "param_4") (!= "!=") (identifier "iVar8")) () ")")) (compound_statement "{\n        iVar9 = 0;\nLAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);\n        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);\n        do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);\n      }" ({ "{") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0005ba74:\n        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);" (statement_identifier "LAB_0005ba74") (: ":") (expression_statement "puVar18 = (undefined4 *)(param_4 + iVar9 * 4);" (assignment_expression "puVar18 = (undefined4 *)(param_4 + iVar9 * 4)" (identifier "puVar18") (= "=") (cast_expression "(undefined4 *)(param_4 + iVar9 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + iVar9 * 4)" (( "(") (binary_expression "param_4 + iVar9 * 4" (identifier "param_4") (+ "+") (binary_expression "iVar9 * 4" (identifier "iVar9") (* "*") (number_literal "4"))) () ")")))) (; ";"))) (expression_statement "puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);" (assignment_expression "puVar13 = (undefined4 *)(iVar8 + iVar9 * 4)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)(iVar8 + iVar9 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar9 * 4)" (( "(") (binary_expression "iVar8 + iVar9 * 4" (identifier "iVar8") (+ "+") (binary_expression "iVar9 * 4" (identifier "iVar9") (* "*") (number_literal "4"))) () ")")))) (; ";")) (do_statement "do {\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        } while ((undefined4 *)(param_4 + iVar30) != puVar18);" (do "do") (compound_statement "{\n          uVar6 = *puVar18;\n          puVar18 = puVar18 + 1;\n          *puVar13 = uVar6;\n          puVar13 = puVar13 + 1;\n        }" ({ "{") (expression_statement "uVar6 = *puVar18;" (assignment_expression "uVar6 = *puVar18" (identifier "uVar6") (= "=") (pointer_expression "*puVar18" (* "*") (identifier "puVar18"))) (; ";")) (expression_statement "puVar18 = puVar18 + 1;" (assignment_expression "puVar18 = puVar18 + 1" (identifier "puVar18") (= "=") (binary_expression "puVar18 + 1" (identifier "puVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar13 = uVar6;" (assignment_expression "*puVar13 = uVar6" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" (identifier "puVar13") (= "=") (binary_expression "puVar13 + 1" (identifier "puVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((undefined4 *)(param_4 + iVar30) != puVar18)" (( "(") (binary_expression "(undefined4 *)(param_4 + iVar30) != puVar18" (cast_expression "(undefined4 *)(param_4 + iVar30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + iVar30)" (( "(") (binary_expression "param_4 + iVar30" (identifier "param_4") (+ "+") (identifier "iVar30")) () ")"))) (!= "!=") (identifier "puVar18")) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }" (else "else") (compound_statement "{\n      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);\n      iVar9 = param_5;\n      if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }\n      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;\n    }" ({ "{") (expression_statement "iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);" (assignment_expression "iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" (( "(") (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" (* "*") (cast_expression "(code *)PTR___gmpn_add_n_00097334" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_add_n_00097334"))) () ")")) (argument_list "(iVar8,param_4,iVar25,param_5)" (( "(") (identifier "iVar8") (, ",") (identifier "param_4") (, ",") (identifier "iVar25") (, ",") (identifier "param_5") () ")")))) (; ";")) (expression_statement "iVar9 = param_5;" (assignment_expression "iVar9 = param_5" (identifier "iVar9") (= "=") (identifier "param_5")) (; ";")) (if_statement "if (iVar10 != 0) {\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (iVar28 <= param_5) goto LAB_0005c014;\n        piVar32 = (int *)(param_4 + param_5 * 4);\n        piVar24 = (int *)(iVar8 + param_5 * 4);\n        iVar10 = *piVar32 + 1;\n        *piVar24 = iVar10;\n        iVar9 = iVar26;\n        while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }\n      }" ({ "{") (if_statement "if (iVar28 <= param_5) goto LAB_0005c014;" (if "if") (parenthesized_expression "(iVar28 <= param_5)" (( "(") (binary_expression "iVar28 <= param_5" (identifier "iVar28") (<= "<=") (identifier "param_5")) () ")")) (goto_statement "goto LAB_0005c014;" (goto "goto") (statement_identifier "LAB_0005c014") (; ";"))) (expression_statement "piVar32 = (int *)(param_4 + param_5 * 4);" (assignment_expression "piVar32 = (int *)(param_4 + param_5 * 4)" (identifier "piVar32") (= "=") (cast_expression "(int *)(param_4 + param_5 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + param_5 * 4)" (( "(") (binary_expression "param_4 + param_5 * 4" (identifier "param_4") (+ "+") (binary_expression "param_5 * 4" (identifier "param_5") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "piVar24 = (int *)(iVar8 + param_5 * 4);" (assignment_expression "piVar24 = (int *)(iVar8 + param_5 * 4)" (identifier "piVar24") (= "=") (cast_expression "(int *)(iVar8 + param_5 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + param_5 * 4)" (( "(") (binary_expression "iVar8 + param_5 * 4" (identifier "iVar8") (+ "+") (binary_expression "param_5 * 4" (identifier "param_5") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "iVar10 = *piVar32 + 1;" (assignment_expression "iVar10 = *piVar32 + 1" (identifier "iVar10") (= "=") (binary_expression "*piVar32 + 1" (pointer_expression "*piVar32" (* "*") (identifier "piVar32")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*piVar24 = iVar10;" (assignment_expression "*piVar24 = iVar10" (pointer_expression "*piVar24" (* "*") (identifier "piVar24")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "iVar9 = iVar26;" (assignment_expression "iVar9 = iVar26" (identifier "iVar9") (= "=") (identifier "iVar26")) (; ";")) (while_statement "while (iVar10 == 0) {\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }" (while "while") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          bVar3 = iVar28 == iVar9;\n          iVar9 = iVar9 + 1;\n          if (bVar3) goto LAB_0005c014;\n          piVar2 = piVar32 + 1;\n          piVar24 = piVar24 + 1;\n          piVar32 = piVar32 + 1;\n          iVar10 = *piVar2 + 1;\n          *piVar24 = iVar10;\n        }" ({ "{") (expression_statement "bVar3 = iVar28 == iVar9;" (assignment_expression "bVar3 = iVar28 == iVar9" (identifier "bVar3") (= "=") (binary_expression "iVar28 == iVar9" (identifier "iVar28") (== "==") (identifier "iVar9"))) (; ";")) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar3) goto LAB_0005c014;" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (goto_statement "goto LAB_0005c014;" (goto "goto") (statement_identifier "LAB_0005c014") (; ";"))) (expression_statement "piVar2 = piVar32 + 1;" (assignment_expression "piVar2 = piVar32 + 1" (identifier "piVar2") (= "=") (binary_expression "piVar32 + 1" (identifier "piVar32") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar24 = piVar24 + 1;" (assignment_expression "piVar24 = piVar24 + 1" (identifier "piVar24") (= "=") (binary_expression "piVar24 + 1" (identifier "piVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar32 = piVar32 + 1;" (assignment_expression "piVar32 = piVar32 + 1" (identifier "piVar32") (= "=") (binary_expression "piVar32 + 1" (identifier "piVar32") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = *piVar2 + 1;" (assignment_expression "iVar10 = *piVar2 + 1" (identifier "iVar10") (= "=") (binary_expression "*piVar2 + 1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*piVar24 = iVar10;" (assignment_expression "*piVar24 = iVar10" (pointer_expression "*piVar24" (* "*") (identifier "piVar24")) (= "=") (identifier "iVar10")) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;" (if "if") (parenthesized_expression "((param_4 != iVar8) && (iVar9 < iVar28))" (( "(") (binary_expression "(param_4 != iVar8) && (iVar9 < iVar28)" (parenthesized_expression "(param_4 != iVar8)" (( "(") (binary_expression "param_4 != iVar8" (identifier "param_4") (!= "!=") (identifier "iVar8")) () ")")) (&& "&&") (parenthesized_expression "(iVar9 < iVar28)" (( "(") (binary_expression "iVar9 < iVar28" (identifier "iVar9") (< "<") (identifier "iVar28")) () ")"))) () ")")) (goto_statement "goto LAB_0005ba74;" (goto "goto") (statement_identifier "LAB_0005ba74") (; ";"))) (} "}")))) (labeled_statement "LAB_0005ba9c:\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);" (statement_identifier "LAB_0005ba9c") (: ":") (expression_statement "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);" (assignment_expression "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" (( "(") (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" (* "*") (cast_expression "(code *)PTR___gmpn_add_n_00097334" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_add_n_00097334"))) () ")")) (argument_list "(iVar29,iVar8,iVar16,iVar28)" (( "(") (identifier "iVar29") (, ",") (identifier "iVar8") (, ",") (identifier "iVar16") (, ",") (identifier "iVar28") () ")")))) (; ";"))) (expression_statement "*piVar21 = iVar9;" (assignment_expression "*piVar21 = iVar9" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);" (assignment_expression "puVar12 = (uint *)(param_4 + iVar28 * 8 + -4)" (identifier "puVar12") (= "=") (cast_expression "(uint *)(param_4 + iVar28 * 8 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + iVar28 * 8 + -4)" (( "(") (binary_expression "param_4 + iVar28 * 8 + -4" (binary_expression "param_4 + iVar28 * 8" (identifier "param_4") (+ "+") (binary_expression "iVar28 * 8" (identifier "iVar28") (* "*") (number_literal "8"))) (+ "+") (number_literal "-4")) () ")")))) (; ";")) (expression_statement "iVar9 = param_6 + iVar28 * 0x1c;" (assignment_expression "iVar9 = param_6 + iVar28 * 0x1c" (identifier "iVar9") (= "=") (binary_expression "param_6 + iVar28 * 0x1c" (identifier "param_6") (+ "+") (binary_expression "iVar28 * 0x1c" (identifier "iVar28") (* "*") (number_literal "0x1c")))) (; ";")) (do_statement "do {\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    } while (uVar27 != 0xffffffff);" (do "do") (compound_statement "{\n      puVar1 = (uint *)(iVar9 + 4);\n      uVar27 = uVar27 - 1;\n      uVar5 = *puVar12;\n      iVar9 = iVar9 + -4;\n      puVar12 = puVar12 + -1;\n      if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }\n    }" ({ "{") (expression_statement "puVar1 = (uint *)(iVar9 + 4);" (assignment_expression "puVar1 = (uint *)(iVar9 + 4)" (identifier "puVar1") (= "=") (cast_expression "(uint *)(iVar9 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 4)" (( "(") (binary_expression "iVar9 + 4" (identifier "iVar9") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "uVar27 = uVar27 - 1;" (assignment_expression "uVar27 = uVar27 - 1" (identifier "uVar27") (= "=") (binary_expression "uVar27 - 1" (identifier "uVar27") (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar5 = *puVar12;" (assignment_expression "uVar5 = *puVar12" (identifier "uVar5") (= "=") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) (; ";")) (expression_statement "iVar9 = iVar9 + -4;" (assignment_expression "iVar9 = iVar9 + -4" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -4" (identifier "iVar9") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "puVar12 = puVar12 + -1;" (assignment_expression "puVar12 = puVar12 + -1" (identifier "puVar12") (= "=") (binary_expression "puVar12 + -1" (identifier "puVar12") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*puVar1 != uVar5) {\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }" (if "if") (parenthesized_expression "(*puVar1 != uVar5)" (( "(") (binary_expression "*puVar1 != uVar5" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (!= "!=") (identifier "uVar5")) () ")")) (compound_statement "{\n        piVar32 = (int *)(param_1 + iVar14 + 4);\n        if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }\n        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);\n        *piVar32 = 0;\n        local_38 = ~local_38;\n        goto LAB_0005bb30;\n      }" ({ "{") (expression_statement "piVar32 = (int *)(param_1 + iVar14 + 4);" (assignment_expression "piVar32 = (int *)(param_1 + iVar14 + 4)" (identifier "piVar32") (= "=") (cast_expression "(int *)(param_1 + iVar14 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar14 + 4)" (( "(") (binary_expression "param_1 + iVar14 + 4" (binary_expression "param_1 + iVar14" (identifier "param_1") (+ "+") (identifier "iVar14")) (+ "+") (number_literal "4")) () ")")))) (; ";")) (if_statement "if (uVar5 < *puVar1) {\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }" (if "if") (parenthesized_expression "(uVar5 < *puVar1)" (( "(") (binary_expression "uVar5 < *puVar1" (identifier "uVar5") (< "<") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) () ")")) (compound_statement "{\n          iVar10 = 0;\n          goto LAB_0005bb0c;\n        }" ({ "{") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0005bb0c;" (goto "goto") (statement_identifier "LAB_0005bb0c") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);" (call_expression "(*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_sub_n_00097514)" (( "(") (pointer_expression "*(code *)PTR___gmpn_sub_n_00097514" (* "*") (cast_expression "(code *)PTR___gmpn_sub_n_00097514" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_sub_n_00097514"))) () ")")) (argument_list "(iVar17,iVar16,iVar8,iVar28)" (( "(") (identifier "iVar17") (, ",") (identifier "iVar16") (, ",") (identifier "iVar8") (, ",") (identifier "iVar28") () ")"))) (; ";")) (expression_statement "*piVar32 = 0;" (assignment_expression "*piVar32 = 0" (pointer_expression "*piVar32" (* "*") (identifier "piVar32")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_38 = ~local_38;" (assignment_expression "local_38 = ~local_38" (identifier "local_38") (= "=") (unary_expression "~local_38" (~ "~") (identifier "local_38"))) (; ";")) (goto_statement "goto LAB_0005bb30;" (goto "goto") (statement_identifier "LAB_0005bb30") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(uVar27 != 0xffffffff)" (( "(") (binary_expression "uVar27 != 0xffffffff" (identifier "uVar27") (!= "!=") (number_literal "0xffffffff")) () ")")) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar32 = (int *)(param_1 + iVar14 + 4);" (assignment_expression "piVar32 = (int *)(param_1 + iVar14 + 4)" (identifier "piVar32") (= "=") (cast_expression "(int *)(param_1 + iVar14 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar14 + 4)" (( "(") (binary_expression "param_1 + iVar14 + 4" (binary_expression "param_1 + iVar14" (identifier "param_1") (+ "+") (identifier "iVar14")) (+ "+") (number_literal "4")) () ")")))) (; ";")) (} "}")))) (labeled_statement "LAB_0005bb0c:\n  iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28);" (statement_identifier "LAB_0005bb0c") (: ":") (expression_statement "iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28)" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_sub_n_00097514)" (( "(") (pointer_expression "*(code *)PTR___gmpn_sub_n_00097514" (* "*") (cast_expression "(code *)PTR___gmpn_sub_n_00097514" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_sub_n_00097514"))) () ")")) (argument_list "(iVar17,iVar8,iVar16,iVar28)" (( "(") (identifier "iVar17") (, ",") (identifier "iVar8") (, ",") (identifier "iVar16") (, ",") (identifier "iVar28") () ")")))) (; ";"))) (expression_statement "*piVar32 = iVar10 - iVar8;" (assignment_expression "*piVar32 = iVar10 - iVar8" (pointer_expression "*piVar32" (* "*") (identifier "piVar32")) (= "=") (binary_expression "iVar10 - iVar8" (identifier "iVar10") (- "-") (identifier "iVar8"))) (; ";")) (labeled_statement "LAB_0005bb30:\n  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);" (statement_identifier "LAB_0005bb30") (: ":") (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" (* "*") (cast_expression "(code *)PTR___gmpn_mul_n_00097364" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mul_n_00097364"))) () ")")) (argument_list "(param_1,iVar15,iVar17,iVar31)" (( "(") (identifier "param_1") (, ",") (identifier "iVar15") (, ",") (identifier "iVar17") (, ",") (identifier "iVar31") () ")"))) (; ";"))) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(param_6,iVar20,iVar29,iVar31);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(param_6,iVar20,iVar29,iVar31)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" (* "*") (cast_expression "(code *)PTR___gmpn_mul_n_00097364" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mul_n_00097364"))) () ")")) (argument_list "(param_6,iVar20,iVar29,iVar31)" (( "(") (identifier "param_6") (, ",") (identifier "iVar20") (, ",") (identifier "iVar29") (, ",") (identifier "iVar31") () ")"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_toom_couple_handling_00097370)(param_6,iVar23,param_1,local_38,iVar28,0,0);" (call_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)(param_6,iVar23,param_1,local_38,iVar28,0,0)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom_couple_handling_00097370" (* "*") (cast_expression "(code *)PTR___gmpn_toom_couple_handling_00097370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom_couple_handling_00097370"))) () ")")) (argument_list "(param_6,iVar23,param_1,local_38,iVar28,0,0)" (( "(") (identifier "param_6") (, ",") (identifier "iVar23") (, ",") (identifier "param_1") (, ",") (identifier "local_38") (, ",") (identifier "iVar28") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "uVar27 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)\n                     (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);" (assignment_expression "uVar27 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)\n                     (iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" (identifier "uVar27") (= "=") (call_expression "(*(code *)PTR___gmpn_toom_eval_pm2_0009747c)\n                     (iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_pm2_0009747c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom_eval_pm2_0009747c" (* "*") (cast_expression "(code *)PTR___gmpn_toom_eval_pm2_0009747c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom_eval_pm2_0009747c"))) () ")")) (argument_list "(iVar20,iVar15,5,param_2,iVar28,param_3,param_1)" (( "(") (identifier "iVar20") (, ",") (identifier "iVar15") (, ",") (number_literal "5") (, ",") (identifier "param_2") (, ",") (identifier "iVar28") (, ",") (identifier "param_3") (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,1);" (assignment_expression "uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,1)" (identifier "uVar6") (= "=") (call_expression "(*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,1)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009756c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_lshift_0009756c" (* "*") (cast_expression "(code *)PTR___gmpn_lshift_0009756c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_lshift_0009756c"))) () ")")) (argument_list "(param_1,iVar16,iVar28,1)" (( "(") (identifier "param_1") (, ",") (identifier "iVar16") (, ",") (identifier "iVar28") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "puVar4 = PTR___gmpn_lshift_0009756c;" (assignment_expression "puVar4 = PTR___gmpn_lshift_0009756c" (identifier "puVar4") (= "=") (identifier "PTR___gmpn_lshift_0009756c")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + iVar30) = uVar6;" (assignment_expression "*(undefined4 *)(param_1 + iVar30) = uVar6" (pointer_expression "*(undefined4 *)(param_1 + iVar30)" (* "*") (cast_expression "(undefined4 *)(param_1 + iVar30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar30)" (( "(") (binary_expression "param_1 + iVar30" (identifier "param_1") (+ "+") (identifier "iVar30")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,2);" (assignment_expression "uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,2)" (identifier "uVar6") (= "=") (call_expression "(*(code *)puVar4)(iVar29,iVar25,param_5,2)" (parenthesized_expression "(*(code *)puVar4)" (( "(") (pointer_expression "*(code *)puVar4" (* "*") (cast_expression "(code *)puVar4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) () ")")) (argument_list "(iVar29,iVar25,param_5,2)" (( "(") (identifier "iVar29") (, ",") (identifier "iVar25") (, ",") (identifier "param_5") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "*puVar7 = uVar6;" (assignment_expression "*puVar7 = uVar6" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (iVar28 == param_5) {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    *piVar21 = *piVar21 + iVar8;\n    goto LAB_0005bc5c;\n  }" (if "if") (parenthesized_expression "(iVar28 == param_5)" (( "(") (binary_expression "iVar28 == param_5" (identifier "iVar28") (== "==") (identifier "param_5")) () ")")) (compound_statement "{\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);\n    *piVar21 = *piVar21 + iVar8;\n    goto LAB_0005bc5c;\n  }" ({ "{") (expression_statement "iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28)" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" (( "(") (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" (* "*") (cast_expression "(code *)PTR___gmpn_add_n_00097334" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_add_n_00097334"))) () ")")) (argument_list "(iVar29,iVar29,param_4,iVar28)" (( "(") (identifier "iVar29") (, ",") (identifier "iVar29") (, ",") (identifier "param_4") (, ",") (identifier "iVar28") () ")")))) (; ";")) (expression_statement "*piVar21 = *piVar21 + iVar8;" (assignment_expression "*piVar21 = *piVar21 + iVar8" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (= "=") (binary_expression "*piVar21 + iVar8" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (+ "+") (identifier "iVar8"))) (; ";")) (goto_statement "goto LAB_0005bc5c;" (goto "goto") (statement_identifier "LAB_0005bc5c") (; ";")) (} "}"))) (expression_statement "local_44 = iVar26;" (assignment_expression "local_44 = iVar26" (identifier "local_44") (= "=") (identifier "iVar26")) (; ";")) (if_statement "if (iVar26 == 0) {\n    iVar8 = 0;\n    if (iVar29 != param_4) {\nLAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);\n      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);\n      do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);\nLAB_0005bc50:\n      iVar8 = 0;\n    }\n  }\n  else {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);\n    if (iVar8 != 0) {\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }\n    if (iVar29 == param_4) goto LAB_0005bc50;\n    iVar8 = 0;\n    if (local_44 < iVar28) goto LAB_0005bc28;\n  }" (if "if") (parenthesized_expression "(iVar26 == 0)" (( "(") (binary_expression "iVar26 == 0" (identifier "iVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar8 = 0;\n    if (iVar29 != param_4) {\nLAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);\n      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);\n      do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);\nLAB_0005bc50:\n      iVar8 = 0;\n    }\n  }" ({ "{") (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar29 != param_4) {\nLAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);\n      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);\n      do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);\nLAB_0005bc50:\n      iVar8 = 0;\n    }" (if "if") (parenthesized_expression "(iVar29 != param_4)" (( "(") (binary_expression "iVar29 != param_4" (identifier "iVar29") (!= "!=") (identifier "param_4")) () ")")) (compound_statement "{\nLAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);\n      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);\n      do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);\nLAB_0005bc50:\n      iVar8 = 0;\n    }" ({ "{") (labeled_statement "LAB_0005bc28:\n      puVar13 = (undefined4 *)(param_4 + local_44 * 4);" (statement_identifier "LAB_0005bc28") (: ":") (expression_statement "puVar13 = (undefined4 *)(param_4 + local_44 * 4);" (assignment_expression "puVar13 = (undefined4 *)(param_4 + local_44 * 4)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)(param_4 + local_44 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + local_44 * 4)" (( "(") (binary_expression "param_4 + local_44 * 4" (identifier "param_4") (+ "+") (binary_expression "local_44 * 4" (identifier "local_44") (* "*") (number_literal "4"))) () ")")))) (; ";"))) (expression_statement "puVar7 = (undefined4 *)(iVar29 + local_44 * 4);" (assignment_expression "puVar7 = (undefined4 *)(iVar29 + local_44 * 4)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(iVar29 + local_44 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar29 + local_44 * 4)" (( "(") (binary_expression "iVar29 + local_44 * 4" (identifier "iVar29") (+ "+") (binary_expression "local_44 * 4" (identifier "local_44") (* "*") (number_literal "4"))) () ")")))) (; ";")) (do_statement "do {\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      } while ((undefined4 *)(param_4 + iVar30) != puVar13);" (do "do") (compound_statement "{\n        uVar6 = *puVar13;\n        puVar13 = puVar13 + 1;\n        *puVar7 = uVar6;\n        puVar7 = puVar7 + 1;\n      }" ({ "{") (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" (identifier "uVar6") (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" (identifier "puVar13") (= "=") (binary_expression "puVar13 + 1" (identifier "puVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar7 = uVar6;" (assignment_expression "*puVar7 = uVar6" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((undefined4 *)(param_4 + iVar30) != puVar13)" (( "(") (binary_expression "(undefined4 *)(param_4 + iVar30) != puVar13" (cast_expression "(undefined4 *)(param_4 + iVar30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + iVar30)" (( "(") (binary_expression "param_4 + iVar30" (identifier "param_4") (+ "+") (identifier "iVar30")) () ")"))) (!= "!=") (identifier "puVar13")) () ")")) (; ";")) (labeled_statement "LAB_0005bc50:\n      iVar8 = 0;" (statement_identifier "LAB_0005bc50") (: ":") (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);\n    if (iVar8 != 0) {\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }\n    if (iVar29 == param_4) goto LAB_0005bc50;\n    iVar8 = 0;\n    if (local_44 < iVar28) goto LAB_0005bc28;\n  }" (else "else") (compound_statement "{\n    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);\n    if (iVar8 != 0) {\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }\n    if (iVar29 == param_4) goto LAB_0005bc50;\n    iVar8 = 0;\n    if (local_44 < iVar28) goto LAB_0005bc28;\n  }" ({ "{") (expression_statement "iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26)" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" (( "(") (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" (* "*") (cast_expression "(code *)PTR___gmpn_add_n_00097334" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_add_n_00097334"))) () ")")) (argument_list "(iVar29,param_4,iVar29,iVar26)" (( "(") (identifier "iVar29") (, ",") (identifier "param_4") (, ",") (identifier "iVar29") (, ",") (identifier "iVar26") () ")")))) (; ";")) (if_statement "if (iVar8 != 0) {\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar8 = 1;\n      if (iVar28 <= iVar26) goto LAB_0005bc58;\n      local_44 = param_5 + 2;\n      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;\n      *(int *)(iVar29 + iVar26 * 4) = iVar8;\n      if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }\n    }" ({ "{") (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" (identifier "iVar8") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar28 <= iVar26) goto LAB_0005bc58;" (if "if") (parenthesized_expression "(iVar28 <= iVar26)" (( "(") (binary_expression "iVar28 <= iVar26" (identifier "iVar28") (<= "<=") (identifier "iVar26")) () ")")) (goto_statement "goto LAB_0005bc58;" (goto "goto") (statement_identifier "LAB_0005bc58") (; ";"))) (expression_statement "local_44 = param_5 + 2;" (assignment_expression "local_44 = param_5 + 2" (identifier "local_44") (= "=") (binary_expression "param_5 + 2" (identifier "param_5") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;" (assignment_expression "iVar8 = *(int *)(param_4 + iVar26 * 4) + 1" (identifier "iVar8") (= "=") (binary_expression "*(int *)(param_4 + iVar26 * 4) + 1" (pointer_expression "*(int *)(param_4 + iVar26 * 4)" (* "*") (cast_expression "(int *)(param_4 + iVar26 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + iVar26 * 4)" (( "(") (binary_expression "param_4 + iVar26 * 4" (identifier "param_4") (+ "+") (binary_expression "iVar26 * 4" (identifier "iVar26") (* "*") (number_literal "4"))) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(iVar29 + iVar26 * 4) = iVar8;" (assignment_expression "*(int *)(iVar29 + iVar26 * 4) = iVar8" (pointer_expression "*(int *)(iVar29 + iVar26 * 4)" (* "*") (cast_expression "(int *)(iVar29 + iVar26 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar29 + iVar26 * 4)" (( "(") (binary_expression "iVar29 + iVar26 * 4" (identifier "iVar29") (+ "+") (binary_expression "iVar26 * 4" (identifier "iVar26") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (if_statement "if (iVar8 == 0) {\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar16 = param_4 + param_5 * 4;\n        iVar8 = iVar29 + param_5 * 4;\n        do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);\n      }" ({ "{") (expression_statement "iVar16 = param_4 + param_5 * 4;" (assignment_expression "iVar16 = param_4 + param_5 * 4" (identifier "iVar16") (= "=") (binary_expression "param_4 + param_5 * 4" (identifier "param_4") (+ "+") (binary_expression "param_5 * 4" (identifier "param_5") (* "*") (number_literal "4")))) (; ";")) (expression_statement "iVar8 = iVar29 + param_5 * 4;" (assignment_expression "iVar8 = iVar29 + param_5 * 4" (identifier "iVar8") (= "=") (binary_expression "iVar29 + param_5 * 4" (identifier "iVar29") (+ "+") (binary_expression "param_5 * 4" (identifier "param_5") (* "*") (number_literal "4")))) (; ";")) (do_statement "do {\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        } while (iVar26 == 0);" (do "do") (compound_statement "{\n          if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }\n          piVar32 = (int *)(iVar16 + 8);\n          local_44 = local_44 + 1;\n          iVar16 = iVar16 + 4;\n          iVar26 = *piVar32 + 1;\n          *(int *)(iVar8 + 8) = iVar26;\n          iVar8 = iVar8 + 4;\n        }" ({ "{") (if_statement "if (iVar28 == local_44) {\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }" (if "if") (parenthesized_expression "(iVar28 == local_44)" (( "(") (binary_expression "iVar28 == local_44" (identifier "iVar28") (== "==") (identifier "local_44")) () ")")) (compound_statement "{\n            iVar8 = 1;\n            goto LAB_0005bc58;\n          }" ({ "{") (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" (identifier "iVar8") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0005bc58;" (goto "goto") (statement_identifier "LAB_0005bc58") (; ";")) (} "}"))) (expression_statement "piVar32 = (int *)(iVar16 + 8);" (assignment_expression "piVar32 = (int *)(iVar16 + 8)" (identifier "piVar32") (= "=") (cast_expression "(int *)(iVar16 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 8)" (( "(") (binary_expression "iVar16 + 8" (identifier "iVar16") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" (identifier "local_44") (= "=") (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar16 = iVar16 + 4;" (assignment_expression "iVar16 = iVar16 + 4" (identifier "iVar16") (= "=") (binary_expression "iVar16 + 4" (identifier "iVar16") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar26 = *piVar32 + 1;" (assignment_expression "iVar26 = *piVar32 + 1" (identifier "iVar26") (= "=") (binary_expression "*piVar32 + 1" (pointer_expression "*piVar32" (* "*") (identifier "piVar32")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(iVar8 + 8) = iVar26;" (assignment_expression "*(int *)(iVar8 + 8) = iVar26" (pointer_expression "*(int *)(iVar8 + 8)" (* "*") (cast_expression "(int *)(iVar8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar26")) (; ";")) (expression_statement "iVar8 = iVar8 + 4;" (assignment_expression "iVar8 = iVar8 + 4" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar26 == 0)" (( "(") (binary_expression "iVar26 == 0" (identifier "iVar26") (== "==") (number_literal "0")) () ")")) (; ";")) (} "}"))) (} "}"))) (if_statement "if (iVar29 == param_4) goto LAB_0005bc50;" (if "if") (parenthesized_expression "(iVar29 == param_4)" (( "(") (binary_expression "iVar29 == param_4" (identifier "iVar29") (== "==") (identifier "param_4")) () ")")) (goto_statement "goto LAB_0005bc50;" (goto "goto") (statement_identifier "LAB_0005bc50") (; ";"))) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_44 < iVar28) goto LAB_0005bc28;" (if "if") (parenthesized_expression "(local_44 < iVar28)" (( "(") (binary_expression "local_44 < iVar28" (identifier "local_44") (< "<") (identifier "iVar28")) () ")")) (goto_statement "goto LAB_0005bc28;" (goto "goto") (statement_identifier "LAB_0005bc28") (; ";"))) (} "}")))) (labeled_statement "LAB_0005bc58:\n  *piVar21 = iVar8;" (statement_identifier "LAB_0005bc58") (: ":") (expression_statement "*piVar21 = iVar8;" (assignment_expression "*piVar21 = iVar8" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (= "=") (identifier "iVar8")) (; ";"))) (labeled_statement "LAB_0005bc5c:\n  uVar5 = (*local_2c)(iVar17,iVar29,param_1,iVar31);" (statement_identifier "LAB_0005bc5c") (: ":") (expression_statement "uVar5 = (*local_2c)(iVar17,iVar29,param_1,iVar31);" (assignment_expression "uVar5 = (*local_2c)(iVar17,iVar29,param_1,iVar31)" (identifier "uVar5") (= "=") (call_expression "(*local_2c)(iVar17,iVar29,param_1,iVar31)" (parenthesized_expression "(*local_2c)" (( "(") (pointer_expression "*local_2c" (* "*") (identifier "local_2c")) () ")")) (argument_list "(iVar17,iVar29,param_1,iVar31)" (( "(") (identifier "iVar17") (, ",") (identifier "iVar29") (, ",") (identifier "param_1") (, ",") (identifier "iVar31") () ")")))) (; ";"))) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" (* "*") (cast_expression "(code *)PTR___gmpn_mul_n_00097364" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mul_n_00097364"))) () ")")) (argument_list "(param_1,iVar15,iVar17,iVar31)" (( "(") (identifier "param_1") (, ",") (identifier "iVar15") (, ",") (identifier "iVar17") (, ",") (identifier "iVar31") () ")"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(iVar15,iVar20,iVar29,iVar31);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(iVar15,iVar20,iVar29,iVar31)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" (* "*") (cast_expression "(code *)PTR___gmpn_mul_n_00097364" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mul_n_00097364"))) () ")")) (argument_list "(iVar15,iVar20,iVar29,iVar31)" (( "(") (identifier "iVar15") (, ",") (identifier "iVar20") (, ",") (identifier "iVar29") (, ",") (identifier "iVar31") () ")"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_toom_couple_handling_00097370)\n            (iVar15,iVar23,param_1,uVar27 ^ uVar5,iVar28,1,2);" (call_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)\n            (iVar15,iVar23,param_1,uVar27 ^ uVar5,iVar28,1,2)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_couple_handling_00097370)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom_couple_handling_00097370" (* "*") (cast_expression "(code *)PTR___gmpn_toom_couple_handling_00097370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom_couple_handling_00097370"))) () ")")) (argument_list "(iVar15,iVar23,param_1,uVar27 ^ uVar5,iVar28,1,2)" (( "(") (identifier "iVar15") (, ",") (identifier "iVar23") (, ",") (identifier "param_1") (, ",") (binary_expression "uVar27 ^ uVar5" (identifier "uVar27") (^ "^") (identifier "uVar5")) (, ",") (identifier "iVar28") (, ",") (number_literal "1") (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,param_2,param_4,iVar28);" (call_expression "(*(code *)PTR___gmpn_mul_n_00097364)(param_1,param_2,param_4,iVar28)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_n_00097364)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mul_n_00097364" (* "*") (cast_expression "(code *)PTR___gmpn_mul_n_00097364" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mul_n_00097364"))) () ")")) (argument_list "(param_1,param_2,param_4,iVar28)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_4") (, ",") (identifier "iVar28") () ")"))) (; ";")) (if_statement "if (param_5 < param_3) {\n    (*(code *)PTR___gmpn_mul_000972b4)();\n  }\n  else {\n    (*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);\n  }" (if "if") (parenthesized_expression "(param_5 < param_3)" (( "(") (binary_expression "param_5 < param_3" (identifier "param_5") (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n    (*(code *)PTR___gmpn_mul_000972b4)();\n  }" ({ "{") (expression_statement "(*(code *)PTR___gmpn_mul_000972b4)();" (call_expression "(*(code *)PTR___gmpn_mul_000972b4)()" (parenthesized_expression "(*(code *)PTR___gmpn_mul_000972b4)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mul_000972b4" (* "*") (cast_expression "(code *)PTR___gmpn_mul_000972b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mul_000972b4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    (*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);\n  }" (else "else") (compound_statement "{\n    (*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);\n  }" ({ "{") (expression_statement "(*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);" (call_expression "(*(code *)PTR___gmpn_mul_000972b4)\n              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_000972b4)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mul_000972b4" (* "*") (cast_expression "(code *)PTR___gmpn_mul_000972b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mul_000972b4"))) () ")")) (argument_list "(param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3)" (( "(") (binary_expression "param_1 + iVar28 * 0x1c" (identifier "param_1") (+ "+") (binary_expression "iVar28 * 0x1c" (identifier "iVar28") (* "*") (number_literal "0x1c"))) (, ",") (identifier "iVar25") (, ",") (identifier "param_5") (, ",") (binary_expression "param_2 + iVar14" (identifier "param_2") (+ "+") (identifier "iVar14")) (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}")))) (expression_statement "(*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(param_1,iVar28,iVar22,param_6);" (call_expression "(*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(param_1,iVar28,iVar22,param_6)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4" (* "*") (cast_expression "(code *)PTR___gmpn_toom_interpolate_8pts_000973e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom_interpolate_8pts_000973e4"))) () ")")) (argument_list "(param_1,iVar28,iVar22,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "iVar28") (, ",") (identifier "iVar22") (, ",") (identifier "param_6") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier) (identifier) (identifier) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (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: (identifier))))) right: (identifier))) (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)) right: (identifier))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (binary_expression left: (identifier) right: (identifier)) (identifier) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (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: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_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: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier)))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (binary_expression left: (identifier) right: (identifier)) (identifier) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier) (identifier) (identifier) (identifier))))) (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: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (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: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (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: (number_literal)))) (if_statement condition: (parenthesized_expression (identifier)) 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: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_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: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (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: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (identifier)))) (goto_statement label: (statement_identifier))))) condition: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (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: (identifier))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (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: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (binary_expression left: (identifier) right: (identifier)) (identifier) (number_literal) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) (identifier) (identifier) (binary_expression left: (identifier) right: (identifier)) (identifier))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (return_statement))))

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

{
  uint *puVar1;
  int *piVar2;
  bool bVar3;
  undefined *puVar4;
  uint uVar5;
  undefined4 uVar6;
  undefined4 *puVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  uint uVar11;
  uint *puVar12;
  undefined4 *puVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  int iVar17;
  undefined4 *puVar18;
  int iVar19;
  int iVar20;
  int *piVar21;
  int iVar22;
  int iVar23;
  int *piVar24;
  int iVar25;
  int iVar26;
  uint uVar27;
  int iVar28;
  int iVar29;
  int iVar30;
  int iVar31;
  int *piVar32;
  int local_44;
  uint local_38;
  code *local_2c;
  
  if (param_3 < param_5 << 1) {
    uVar27 = (param_5 - 1U) / 3;
  }
  else {
    uVar27 = (param_3 - 1U) / 6;
  }
  iVar28 = uVar27 + 1;
  iVar30 = iVar28 * 4;
  iVar14 = iVar28 * 0x14;
  param_3 = param_3 + iVar28 * -5;
  iVar20 = param_1 + iVar14 + 8;
  iVar15 = param_1 + iVar28 * 0xc;
  param_5 = param_5 + iVar28 * -2;
  uVar5 = (*(code *)PTR___gmpn_toom_eval_pm2exp_000974d8)
                    (iVar20,iVar15,5,param_2,iVar28,param_3,2,param_1);
  iVar16 = param_4 + iVar30;
  uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,2);
  puVar4 = PTR___gmpn_lshift_0009756c;
  *(undefined4 *)(param_1 + iVar30) = uVar6;
  iVar25 = iVar16 + iVar30;
  puVar7 = (undefined4 *)(param_1 + (iVar28 * 6 + 3 + param_5) * 4);
  iVar29 = param_1 + iVar28 * 0x18 + 0xc;
  uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,4);
  *puVar7 = uVar6;
  iVar17 = param_1 + iVar28 * 0x10 + 4;
  piVar21 = (int *)(param_1 + iVar28 * 0x1c + 0xc);
  iVar26 = param_5 + 1;
  iVar22 = param_6 + iVar28 * 0xc + 4;
  iVar8 = param_6 + iVar28 * 0x18 + 8;
  iVar23 = iVar28 * 2 + 1;
  if (iVar28 == param_5) {
    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);
    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);
    *piVar21 = *piVar21 + iVar9;
    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,param_5 + 1);
    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,param_5 + 1);
    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,param_5 + 1);
    iVar31 = param_5 + 1;
    (*(code *)PTR___gmpn_toom_couple_handling_00097370)
              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);
    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)
                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);
    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,iVar28);
    if (iVar9 == 0) goto LAB_0005ba9c;
LAB_0005c014:
    iVar10 = 1;
    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);
    piVar32 = (int *)(param_1 + iVar14 + 4);
    *piVar21 = iVar9 + 1;
  }
  else {
    iVar9 = param_5 + 1;
    if (iVar9 == 0) {
      iVar9 = 0;
      if (iVar29 != param_4) {
LAB_0005b968:
        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);
        puVar13 = (undefined4 *)(iVar29 + iVar9 * 4);
        do {
          uVar6 = *puVar18;
          puVar18 = puVar18 + 1;
          *puVar13 = uVar6;
          puVar13 = puVar13 + 1;
        } while (puVar18 != (undefined4 *)(param_4 + iVar30));
      }
LAB_0005b98c:
      iVar10 = 0;
    }
    else {
      iVar31 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar9);
      if (iVar31 == 0) {
        iVar9 = param_5 + 1;
LAB_0005c0cc:
        if (iVar29 == param_4) goto LAB_0005b98c;
        if (iVar9 < iVar28) goto LAB_0005b968;
        iVar10 = 0;
      }
      else {
        iVar10 = 1;
        if (iVar9 < iVar28) {
          iVar31 = (param_5 + 1) * 4;
          iVar9 = param_5 + 2;
          iVar10 = *(int *)(param_4 + iVar31) + 1;
          *(int *)(iVar29 + iVar31) = iVar10;
          if (iVar10 == 0) {
            iVar10 = param_4 + param_5 * 4;
            iVar31 = iVar29 + param_5 * 4;
            do {
              if (iVar28 == iVar9) {
                iVar10 = 1;
                goto LAB_0005b990;
              }
              piVar32 = (int *)(iVar10 + 8);
              iVar9 = iVar9 + 1;
              iVar10 = iVar10 + 4;
              iVar19 = *piVar32 + 1;
              *(int *)(iVar31 + 8) = iVar19;
              iVar31 = iVar31 + 4;
            } while (iVar19 == 0);
          }
          goto LAB_0005c0cc;
        }
      }
    }
LAB_0005b990:
    iVar31 = uVar27 + 2;
    local_2c = (code *)(PTR_LAB_00097080 + -0x4980);
    *piVar21 = iVar10;
    uVar11 = FUN_0005b680(iVar17,iVar29,param_1,iVar31);
    (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);
    (*(code *)PTR___gmpn_mul_n_00097364)(iVar22,iVar20,iVar29,iVar31);
    (*(code *)PTR___gmpn_toom_couple_handling_00097370)
              (iVar22,iVar23,param_1,uVar5 ^ uVar11,iVar28,2,4);
    local_38 = (*(code *)PTR___gmpn_toom_eval_pm1_000971e0)
                         (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);
    if (param_5 == 0) {
      if (param_4 != iVar8) {
        iVar9 = 0;
LAB_0005ba74:
        puVar18 = (undefined4 *)(param_4 + iVar9 * 4);
        puVar13 = (undefined4 *)(iVar8 + iVar9 * 4);
        do {
          uVar6 = *puVar18;
          puVar18 = puVar18 + 1;
          *puVar13 = uVar6;
          puVar13 = puVar13 + 1;
        } while ((undefined4 *)(param_4 + iVar30) != puVar18);
      }
    }
    else {
      iVar10 = (*(code *)PTR___gmpn_add_n_00097334)(iVar8,param_4,iVar25,param_5);
      iVar9 = param_5;
      if (iVar10 != 0) {
        if (iVar28 <= param_5) goto LAB_0005c014;
        piVar32 = (int *)(param_4 + param_5 * 4);
        piVar24 = (int *)(iVar8 + param_5 * 4);
        iVar10 = *piVar32 + 1;
        *piVar24 = iVar10;
        iVar9 = iVar26;
        while (iVar10 == 0) {
          bVar3 = iVar28 == iVar9;
          iVar9 = iVar9 + 1;
          if (bVar3) goto LAB_0005c014;
          piVar2 = piVar32 + 1;
          piVar24 = piVar24 + 1;
          piVar32 = piVar32 + 1;
          iVar10 = *piVar2 + 1;
          *piVar24 = iVar10;
        }
      }
      if ((param_4 != iVar8) && (iVar9 < iVar28)) goto LAB_0005ba74;
    }
LAB_0005ba9c:
    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar8,iVar16,iVar28);
    *piVar21 = iVar9;
    puVar12 = (uint *)(param_4 + iVar28 * 8 + -4);
    iVar9 = param_6 + iVar28 * 0x1c;
    do {
      puVar1 = (uint *)(iVar9 + 4);
      uVar27 = uVar27 - 1;
      uVar5 = *puVar12;
      iVar9 = iVar9 + -4;
      puVar12 = puVar12 + -1;
      if (*puVar1 != uVar5) {
        piVar32 = (int *)(param_1 + iVar14 + 4);
        if (uVar5 < *puVar1) {
          iVar10 = 0;
          goto LAB_0005bb0c;
        }
        (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar16,iVar8,iVar28);
        *piVar32 = 0;
        local_38 = ~local_38;
        goto LAB_0005bb30;
      }
    } while (uVar27 != 0xffffffff);
    iVar10 = 0;
    piVar32 = (int *)(param_1 + iVar14 + 4);
  }
LAB_0005bb0c:
  iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(iVar17,iVar8,iVar16,iVar28);
  *piVar32 = iVar10 - iVar8;
LAB_0005bb30:
  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);
  (*(code *)PTR___gmpn_mul_n_00097364)(param_6,iVar20,iVar29,iVar31);
  (*(code *)PTR___gmpn_toom_couple_handling_00097370)(param_6,iVar23,param_1,local_38,iVar28,0,0);
  uVar27 = (*(code *)PTR___gmpn_toom_eval_pm2_0009747c)
                     (iVar20,iVar15,5,param_2,iVar28,param_3,param_1);
  uVar6 = (*(code *)PTR___gmpn_lshift_0009756c)(param_1,iVar16,iVar28,1);
  puVar4 = PTR___gmpn_lshift_0009756c;
  *(undefined4 *)(param_1 + iVar30) = uVar6;
  uVar6 = (*(code *)puVar4)(iVar29,iVar25,param_5,2);
  *puVar7 = uVar6;
  if (iVar28 == param_5) {
    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,iVar29,param_4,iVar28);
    *piVar21 = *piVar21 + iVar8;
    goto LAB_0005bc5c;
  }
  local_44 = iVar26;
  if (iVar26 == 0) {
    iVar8 = 0;
    if (iVar29 != param_4) {
LAB_0005bc28:
      puVar13 = (undefined4 *)(param_4 + local_44 * 4);
      puVar7 = (undefined4 *)(iVar29 + local_44 * 4);
      do {
        uVar6 = *puVar13;
        puVar13 = puVar13 + 1;
        *puVar7 = uVar6;
        puVar7 = puVar7 + 1;
      } while ((undefined4 *)(param_4 + iVar30) != puVar13);
LAB_0005bc50:
      iVar8 = 0;
    }
  }
  else {
    iVar8 = (*(code *)PTR___gmpn_add_n_00097334)(iVar29,param_4,iVar29,iVar26);
    if (iVar8 != 0) {
      iVar8 = 1;
      if (iVar28 <= iVar26) goto LAB_0005bc58;
      local_44 = param_5 + 2;
      iVar8 = *(int *)(param_4 + iVar26 * 4) + 1;
      *(int *)(iVar29 + iVar26 * 4) = iVar8;
      if (iVar8 == 0) {
        iVar16 = param_4 + param_5 * 4;
        iVar8 = iVar29 + param_5 * 4;
        do {
          if (iVar28 == local_44) {
            iVar8 = 1;
            goto LAB_0005bc58;
          }
          piVar32 = (int *)(iVar16 + 8);
          local_44 = local_44 + 1;
          iVar16 = iVar16 + 4;
          iVar26 = *piVar32 + 1;
          *(int *)(iVar8 + 8) = iVar26;
          iVar8 = iVar8 + 4;
        } while (iVar26 == 0);
      }
    }
    if (iVar29 == param_4) goto LAB_0005bc50;
    iVar8 = 0;
    if (local_44 < iVar28) goto LAB_0005bc28;
  }
LAB_0005bc58:
  *piVar21 = iVar8;
LAB_0005bc5c:
  uVar5 = (*local_2c)(iVar17,iVar29,param_1,iVar31);
  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,iVar15,iVar17,iVar31);
  (*(code *)PTR___gmpn_mul_n_00097364)(iVar15,iVar20,iVar29,iVar31);
  (*(code *)PTR___gmpn_toom_couple_handling_00097370)
            (iVar15,iVar23,param_1,uVar27 ^ uVar5,iVar28,1,2);
  (*(code *)PTR___gmpn_mul_n_00097364)(param_1,param_2,param_4,iVar28);
  if (param_5 < param_3) {
    (*(code *)PTR___gmpn_mul_000972b4)();
  }
  else {
    (*(code *)PTR___gmpn_mul_000972b4)
              (param_1 + iVar28 * 0x1c,iVar25,param_5,param_2 + iVar14,param_3);
  }
                    /* WARNING: Could not recover jumptable at 0x0005bd8c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)PTR___gmpn_toom_interpolate_8pts_000973e4)(param_1,iVar28,iVar22,param_6);
  return;
}

