
void __gmpn_toom4_sqr(mp_ptr pp,mp_srcptr ap,mp_size_t an,mp_ptr scratch)

{
  bool bVar1;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  mp_ptr pmVar8;
  mp_limb_t mVar9;
  mp_limb_t mVar10;
  mp_srcptr pmVar11;
  int iVar12;
  mp_ptr pmVar13;
  int iVar14;
  int iVar15;
  mp_ptr pmVar16;
  
  iVar12 = an + 3 >> 2;
  pmVar16 = pp + iVar12 * 4 + 2;
  pmVar13 = scratch + iVar12 * 8 + 5;
  iVar14 = iVar12 * -3 + an;
  (*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(pp,pmVar16,ap,iVar12,iVar14,pmVar13);
  iVar15 = iVar12 + 1;
  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(scratch,pp,iVar15,pmVar13);
  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(scratch + iVar12 * 2 + 1,pmVar16,iVar15,pmVar13);
  iVar3 = (*(code *)PTR___gmpn_lshift_0009d56c)(pp,ap,iVar12,1);
  pmVar11 = ap + iVar12;
  iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11,iVar12);
  iVar5 = (*(code *)PTR___gmpn_lshift_0009d56c)(pp,pp,iVar12,1);
  pmVar11 = pmVar11 + iVar12;
  iVar6 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11,iVar12);
  iVar7 = (*(code *)PTR___gmpn_lshift_0009d56c)(pp,pp,iVar12,1);
  mVar9 = (iVar5 + iVar6 + (iVar3 + iVar4) * 2) * 2 + iVar7;
  if ((iVar14 == 0) ||
     (iVar3 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11 + iVar12,iVar14), iVar3 == 0))
  goto LAB_00066dd4;
  if (iVar14 < iVar12) {
    pmVar8 = pp + iVar14;
    mVar10 = *pmVar8;
    *pmVar8 = mVar10 + 1;
    if (mVar10 + 1 != 0) goto LAB_00066dd4;
    iVar3 = iVar14 + 2;
    if (iVar14 + 1 < iVar12) {
      mVar10 = pp[iVar14 + 1] + 1;
      pp[iVar14 + 1] = mVar10;
      while (mVar10 == 0) {
        bVar1 = iVar12 == iVar3;
        iVar3 = iVar3 + 1;
        if (bVar1) goto LAB_00066fac;
        mVar10 = pmVar8[2] + 1;
        pmVar8[2] = mVar10;
        pmVar8 = pmVar8 + 1;
      }
      goto LAB_00066dd4;
    }
  }
LAB_00066fac:
  mVar9 = mVar9 + 1;
LAB_00066dd4:
  puVar2 = PTR___gmpn_toom3_sqr_0009d11c;
  pp[iVar12] = mVar9;
  (*(code *)puVar2)(scratch + iVar12 * 4 + 2,pp,iVar15,pmVar13);
  (*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(pp,pmVar16,ap,iVar12,iVar14,pmVar13);
  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(pp + iVar12 + iVar12,pp,iVar15,pmVar13);
  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(scratch + iVar12 * 6 + 3,pmVar16,iVar15,pmVar13);
  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(pp,ap,iVar12,pmVar13);
  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(pp + iVar12 * 6,pmVar11 + iVar12,iVar14,pmVar13);
  (*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)
            (pp,iVar12,0,scratch + iVar12 * 2 + 1,scratch + iVar12 * 6 + 3,scratch,
             scratch + iVar12 * 4 + 2,iVar14 * 2,pmVar13);
  return;
}



void __gmpn_toom4_sqr(int param_1,int param_2,int param_3,int param_4)

{
  bool bVar1;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int *piVar9;
  int *piVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  int iVar17;
  
  iVar13 = param_3 + 3 >> 2;
  iVar15 = iVar13 * 4;
  iVar11 = iVar13 * 0x10 + 8;
  iVar17 = param_1 + iVar11;
  iVar14 = param_4 + iVar13 * 0x20 + 0x14;
  param_3 = iVar13 * -3 + param_3;
  (*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(param_1,iVar17,param_2,iVar13,param_3,iVar14);
  iVar16 = iVar13 + 1;
  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_4,param_1,iVar16,iVar14);
  iVar3 = param_4 + iVar13 * 8 + 4;
  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar3,iVar17,iVar16,iVar14);
  iVar4 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_2,iVar13,1);
  iVar5 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,param_2 + iVar15,iVar13);
  iVar6 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);
  iVar12 = param_2 + iVar15 + iVar15;
  iVar7 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,iVar13);
  iVar8 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);
  iVar12 = iVar12 + iVar15;
  iVar8 = (iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2 + iVar8;
  if ((param_3 == 0) ||
     (iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0))
  goto LAB_00066dd4;
  if (param_3 < iVar13) {
    piVar9 = (int *)(param_1 + param_3 * 4);
    iVar4 = *piVar9;
    *piVar9 = iVar4 + 1;
    if (iVar4 + 1 != 0) goto LAB_00066dd4;
    iVar4 = param_3 + 2;
    if (param_3 + 1 < iVar13) {
      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);
      iVar5 = *piVar10 + 1;
      *piVar10 = iVar5;
      while (iVar5 == 0) {
        bVar1 = iVar13 == iVar4;
        iVar4 = iVar4 + 1;
        if (bVar1) goto LAB_00066fac;
        iVar5 = piVar9[2] + 1;
        piVar9[2] = iVar5;
        piVar9 = piVar9 + 1;
      }
      goto LAB_00066dd4;
    }
  }
LAB_00066fac:
  iVar8 = iVar8 + 1;
LAB_00066dd4:
  puVar2 = PTR___gmpn_toom3_sqr_0009d11c;
  iVar11 = param_4 + iVar11;
  *(int *)(param_1 + iVar15) = iVar8;
  (*(code *)puVar2)(iVar11,param_1,iVar16,iVar14);
  (*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(param_1,iVar17,param_2,iVar13,param_3,iVar14);
  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)((int *)(param_1 + iVar15) + iVar13,param_1,iVar16,iVar14)
  ;
  iVar4 = param_4 + iVar13 * 0x18 + 0xc;
  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar4,iVar17,iVar16,iVar14);
  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1,param_2,iVar13,iVar14);
  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1 + iVar13 * 0x18,iVar12,param_3,iVar14);
  (*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)
            (param_1,iVar13,0,iVar3,iVar4,param_4,iVar11,param_3 * 2,iVar14);
  return;
}


lui gp,0x4
addiu gp,gp,-0x1bc0
addu gp,gp,t9
addiu sp,sp,-0x70
lw t9,-0x7db8(gp)
sw s0,0x48(sp)
addiu s0,a2,0x3
sw s5,0x5c(sp)
sra s0,s0,0x2
sw s2,0x50(sp)
sw s3,0x54(sp)
sll s5,s0,0x2
sw s8,0x68(sp)
sll t1,s0,0x4
sw ra,0x6c(sp)
sll s2,s0,0x5
sw gp,0x28(sp)
addiu t1,t1,0x8
sw s7,0x64(sp)
addiu s2,s2,0x14
sw s6,0x60(sp)
subu s3,s0,s5
sw t1,0x44(sp)
addu s8,a0,t1
sw s4,0x58(sp)
addu s2,a3,s2
sw s1,0x4c(sp)
addu s3,s3,a2
or s4,a3,zero
sw s2,0x14(sp)
or s6,a1,zero
sw s3,0x10(sp)
or a2,a1,zero
or a3,s0,zero
or a1,s8,zero
jalr t9
_or s1,a0,zero
lw gp,0x28(sp)
addiu s7,s0,0x1
or a3,s2,zero
or a2,s7,zero
or a1,s1,zero
lw t9,-0x7f24(gp)
jalr t9
_or a0,s4,zero
sll v0,s0,0x3
lw gp,0x28(sp)
or a3,s2,zero
addiu v0,v0,0x4
or a2,s7,zero
addu v0,s4,v0
lw t9,-0x7f24(gp)
or a1,s8,zero
or a0,v0,zero
jalr t9
_sw v0,0x38(sp)
li a3,0x1
lw gp,0x28(sp)
or a2,s0,zero
or a1,s6,zero
lw t9,-0x7ad4(gp)
jalr t9
_or a0,s1,zero
addu t2,s6,s5
lw gp,0x28(sp)
or a3,s0,zero
or a2,t2,zero
sw t2,0x40(sp)
or a1,s1,zero
sw v0,0x34(sp)
lw t9,-0x7d0c(gp)
jalr t9
_or a0,s1,zero
li a3,0x1
lw v1,0x34(sp)
or a2,s0,zero
lw gp,0x28(sp)
or a1,s1,zero
or a0,s1,zero
addu v1,v1,v0
lw t9,-0x7ad4(gp)
sll t3,v1,0x1
jalr t9
_sw t3,0x3c(sp)
or a3,s0,zero
lw gp,0x28(sp)
or a1,s1,zero
lw t2,0x40(sp)
or a0,s1,zero
sw v0,0x34(sp)
addu t2,t2,s5
lw t9,-0x7d0c(gp)
or a2,t2,zero
jalr t9
_sw t2,0x40(sp)
li a3,0x1
lw v1,0x34(sp)
or a2,s0,zero
lw t3,0x3c(sp)
or a1,s1,zero
lw gp,0x28(sp)
or a0,s1,zero
addu v1,v1,v0
addu v1,v1,t3
lw t9,-0x7ad4(gp)
sll v1,v1,0x1
jalr t9
_sw v1,0x3c(sp)
lw t2,0x40(sp)
lw gp,0x28(sp)
lw t1,0x44(sp)
addu v1,t2,s5
sw v1,0x34(sp)
lw v1,0x3c(sp)
bne s3,zero,0x00066f10
_addu v1,v1,v0
addu t0,s1,s5
lw t9,-0x7f24(gp)
addu t1,s4,t1
sw t0,0x40(sp)
or a3,s2,zero
sw v1,0x0(t0)
or a0,t1,zero
sw t1,0x3c(sp)
or a2,s7,zero
jalr t9
_or a1,s1,zero
or a3,s0,zero
lw gp,0x28(sp)
or a2,s6,zero
or a1,s8,zero
sw s2,0x14(sp)
or a0,s1,zero
lw t9,-0x7b18(gp)
jalr t9
_sw s3,0x10(sp)
or a3,s2,zero
lw t0,0x40(sp)
or a2,s7,zero
lw gp,0x28(sp)
or a1,s1,zero
addu a0,t0,s5
sll s5,s0,0x1
lw t9,-0x7f24(gp)
jalr t9
_addu s5,s5,s0
sll s5,s5,0x3
lw gp,0x28(sp)
or a2,s7,zero
addiu s7,s5,0xc
or a3,s2,zero
addu s7,s4,s7
lw t9,-0x7f24(gp)
or a1,s8,zero
jalr t9
_or a0,s7,zero
or a3,s2,zero
lw gp,0x28(sp)
or a2,s0,zero
or a1,s6,zero
lw t9,-0x7f24(gp)
jalr t9
_or a0,s1,zero
addu a0,s1,s5
lw gp,0x28(sp)
or a3,s2,zero
lw a1,0x34(sp)
or a2,s3,zero
lw t9,-0x7f24(gp)
jalr t9
_sll s3,s3,0x1
or a2,zero,zero
lw gp,0x28(sp)
or a1,s0,zero
lw t1,0x3c(sp)
or a0,s1,zero
lw a3,0x38(sp)
sw s2,0x20(sp)
sw s3,0x1c(sp)
sw t1,0x18(sp)
sw s4,0x14(sp)
lw t9,-0x7c78(gp)
jalr t9
_sw s7,0x10(sp)
lw ra,0x6c(sp)
lw s8,0x68(sp)
lw s7,0x64(sp)
lw s6,0x60(sp)
lw s5,0x5c(sp)
lw s4,0x58(sp)
lw s3,0x54(sp)
lw s2,0x50(sp)
lw s1,0x4c(sp)
lw s0,0x48(sp)
jr ra
_addiu sp,sp,0x70
lw t9,-0x7d0c(gp)
or a3,s3,zero
lw a2,0x34(sp)
or a1,s1,zero
sw v1,0x40(sp)
or a0,s1,zero
jalr t9
_sw t1,0x3c(sp)
lw gp,0x28(sp)
lw t1,0x3c(sp)
beq v0,zero,0x00066dd0
_lw v1,0x40(sp)
slt v0,s3,s0
beq v0,zero,0x00066fac
_sll v0,s3,0x2
addiu a0,s3,0x1
addu v0,s1,v0
lw a1,0x0(v0)
addiu a1,a1,0x1
bne a1,zero,0x00066dd0
_sw a1,0x0(v0)
slt a1,a0,s0
beq a1,zero,0x00066fac
_addiu a1,s3,0x2
sll a0,a0,0x2
addu a0,s1,a0
lw a2,0x0(a0)
addiu a2,a2,0x1
beq a2,zero,0x00066fa4
_sw a2,0x0(a0)
b 0x00066dd4
_addu t0,s1,s5
lw a0,0x8(v0)
addiu v0,v0,0x4
addiu a0,a0,0x1
bne a0,zero,0x00066dd0
_sw a0,0x4(v0)
bne s0,a1,0x00066f90
_addiu a1,a1,0x1
b 0x00066dd0
_addiu v1,v1,0x1
(translation_unit "void __gmpn_toom4_sqr(int param_1,int param_2,int param_3,int param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  \n  iVar13 = param_3 + 3 >> 2;\n  iVar15 = iVar13 * 4;\n  iVar11 = iVar13 * 0x10 + 8;\n  iVar17 = param_1 + iVar11;\n  iVar14 = param_4 + iVar13 * 0x20 + 0x14;\n  param_3 = iVar13 * -3 + param_3;\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(param_1,iVar17,param_2,iVar13,param_3,iVar14);\n  iVar16 = iVar13 + 1;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_4,param_1,iVar16,iVar14);\n  iVar3 = param_4 + iVar13 * 8 + 4;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar3,iVar17,iVar16,iVar14);\n  iVar4 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_2,iVar13,1);\n  iVar5 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,param_2 + iVar15,iVar13);\n  iVar6 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);\n  iVar12 = param_2 + iVar15 + iVar15;\n  iVar7 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,iVar13);\n  iVar8 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);\n  iVar12 = iVar12 + iVar15;\n  iVar8 = (iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2 + iVar8;\n  if ((param_3 == 0) ||\n     (iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0))\n  goto LAB_00066dd4;\n  if (param_3 < iVar13) {\n    piVar9 = (int *)(param_1 + param_3 * 4);\n    iVar4 = *piVar9;\n    *piVar9 = iVar4 + 1;\n    if (iVar4 + 1 != 0) goto LAB_00066dd4;\n    iVar4 = param_3 + 2;\n    if (param_3 + 1 < iVar13) {\n      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);\n      iVar5 = *piVar10 + 1;\n      *piVar10 = iVar5;\n      while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }\n      goto LAB_00066dd4;\n    }\n  }\nLAB_00066fac:\n  iVar8 = iVar8 + 1;\nLAB_00066dd4:\n  puVar2 = PTR___gmpn_toom3_sqr_0009d11c;\n  iVar11 = param_4 + iVar11;\n  *(int *)(param_1 + iVar15) = iVar8;\n  (*(code *)puVar2)(iVar11,param_1,iVar16,iVar14);\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(param_1,iVar17,param_2,iVar13,param_3,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)((int *)(param_1 + iVar15) + iVar13,param_1,iVar16,iVar14)\n  ;\n  iVar4 = param_4 + iVar13 * 0x18 + 0xc;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar4,iVar17,iVar16,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1,param_2,iVar13,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1 + iVar13 * 0x18,iVar12,param_3,iVar14);\n  (*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)\n            (param_1,iVar13,0,iVar3,iVar4,param_4,iVar11,param_3 * 2,iVar14);\n  return;\n}\n\n" (function_definition "void __gmpn_toom4_sqr(int param_1,int param_2,int param_3,int param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  \n  iVar13 = param_3 + 3 >> 2;\n  iVar15 = iVar13 * 4;\n  iVar11 = iVar13 * 0x10 + 8;\n  iVar17 = param_1 + iVar11;\n  iVar14 = param_4 + iVar13 * 0x20 + 0x14;\n  param_3 = iVar13 * -3 + param_3;\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(param_1,iVar17,param_2,iVar13,param_3,iVar14);\n  iVar16 = iVar13 + 1;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_4,param_1,iVar16,iVar14);\n  iVar3 = param_4 + iVar13 * 8 + 4;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar3,iVar17,iVar16,iVar14);\n  iVar4 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_2,iVar13,1);\n  iVar5 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,param_2 + iVar15,iVar13);\n  iVar6 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);\n  iVar12 = param_2 + iVar15 + iVar15;\n  iVar7 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,iVar13);\n  iVar8 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);\n  iVar12 = iVar12 + iVar15;\n  iVar8 = (iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2 + iVar8;\n  if ((param_3 == 0) ||\n     (iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0))\n  goto LAB_00066dd4;\n  if (param_3 < iVar13) {\n    piVar9 = (int *)(param_1 + param_3 * 4);\n    iVar4 = *piVar9;\n    *piVar9 = iVar4 + 1;\n    if (iVar4 + 1 != 0) goto LAB_00066dd4;\n    iVar4 = param_3 + 2;\n    if (param_3 + 1 < iVar13) {\n      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);\n      iVar5 = *piVar10 + 1;\n      *piVar10 = iVar5;\n      while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }\n      goto LAB_00066dd4;\n    }\n  }\nLAB_00066fac:\n  iVar8 = iVar8 + 1;\nLAB_00066dd4:\n  puVar2 = PTR___gmpn_toom3_sqr_0009d11c;\n  iVar11 = param_4 + iVar11;\n  *(int *)(param_1 + iVar15) = iVar8;\n  (*(code *)puVar2)(iVar11,param_1,iVar16,iVar14);\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(param_1,iVar17,param_2,iVar13,param_3,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)((int *)(param_1 + iVar15) + iVar13,param_1,iVar16,iVar14)\n  ;\n  iVar4 = param_4 + iVar13 * 0x18 + 0xc;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar4,iVar17,iVar16,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1,param_2,iVar13,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1 + iVar13 * 0x18,iVar12,param_3,iVar14);\n  (*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)\n            (param_1,iVar13,0,iVar3,iVar4,param_4,iVar11,param_3 * 2,iVar14);\n  return;\n}" primitive_type (function_declarator "__gmpn_toom4_sqr(int param_1,int param_2,int param_3,int param_4)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4)" ( (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) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  \n  iVar13 = param_3 + 3 >> 2;\n  iVar15 = iVar13 * 4;\n  iVar11 = iVar13 * 0x10 + 8;\n  iVar17 = param_1 + iVar11;\n  iVar14 = param_4 + iVar13 * 0x20 + 0x14;\n  param_3 = iVar13 * -3 + param_3;\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(param_1,iVar17,param_2,iVar13,param_3,iVar14);\n  iVar16 = iVar13 + 1;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_4,param_1,iVar16,iVar14);\n  iVar3 = param_4 + iVar13 * 8 + 4;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar3,iVar17,iVar16,iVar14);\n  iVar4 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_2,iVar13,1);\n  iVar5 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,param_2 + iVar15,iVar13);\n  iVar6 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);\n  iVar12 = param_2 + iVar15 + iVar15;\n  iVar7 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,iVar13);\n  iVar8 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);\n  iVar12 = iVar12 + iVar15;\n  iVar8 = (iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2 + iVar8;\n  if ((param_3 == 0) ||\n     (iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0))\n  goto LAB_00066dd4;\n  if (param_3 < iVar13) {\n    piVar9 = (int *)(param_1 + param_3 * 4);\n    iVar4 = *piVar9;\n    *piVar9 = iVar4 + 1;\n    if (iVar4 + 1 != 0) goto LAB_00066dd4;\n    iVar4 = param_3 + 2;\n    if (param_3 + 1 < iVar13) {\n      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);\n      iVar5 = *piVar10 + 1;\n      *piVar10 = iVar5;\n      while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }\n      goto LAB_00066dd4;\n    }\n  }\nLAB_00066fac:\n  iVar8 = iVar8 + 1;\nLAB_00066dd4:\n  puVar2 = PTR___gmpn_toom3_sqr_0009d11c;\n  iVar11 = param_4 + iVar11;\n  *(int *)(param_1 + iVar15) = iVar8;\n  (*(code *)puVar2)(iVar11,param_1,iVar16,iVar14);\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(param_1,iVar17,param_2,iVar13,param_3,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)((int *)(param_1 + iVar15) + iVar13,param_1,iVar16,iVar14)\n  ;\n  iVar4 = param_4 + iVar13 * 0x18 + 0xc;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar4,iVar17,iVar16,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1,param_2,iVar13,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1 + iVar13 * 0x18,iVar12,param_3,iVar14);\n  (*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)\n            (param_1,iVar13,0,iVar3,iVar4,param_4,iVar11,param_3 * 2,iVar14);\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type 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 ;) (expression_statement "iVar13 = param_3 + 3 >> 2;" (assignment_expression "iVar13 = param_3 + 3 >> 2" identifier = (binary_expression "param_3 + 3 >> 2" (binary_expression "param_3 + 3" identifier + number_literal) >> number_literal)) ;) (expression_statement "iVar15 = iVar13 * 4;" (assignment_expression "iVar15 = iVar13 * 4" identifier = (binary_expression "iVar13 * 4" identifier * number_literal)) ;) (expression_statement "iVar11 = iVar13 * 0x10 + 8;" (assignment_expression "iVar11 = iVar13 * 0x10 + 8" identifier = (binary_expression "iVar13 * 0x10 + 8" (binary_expression "iVar13 * 0x10" identifier * number_literal) + number_literal)) ;) (expression_statement "iVar17 = param_1 + iVar11;" (assignment_expression "iVar17 = param_1 + iVar11" identifier = (binary_expression "param_1 + iVar11" identifier + identifier)) ;) (expression_statement "iVar14 = param_4 + iVar13 * 0x20 + 0x14;" (assignment_expression "iVar14 = param_4 + iVar13 * 0x20 + 0x14" identifier = (binary_expression "param_4 + iVar13 * 0x20 + 0x14" (binary_expression "param_4 + iVar13 * 0x20" identifier + (binary_expression "iVar13 * 0x20" identifier * number_literal)) + number_literal)) ;) (expression_statement "param_3 = iVar13 * -3 + param_3;" (assignment_expression "param_3 = iVar13 * -3 + param_3" identifier = (binary_expression "iVar13 * -3 + param_3" (binary_expression "iVar13 * -3" identifier * number_literal) + identifier)) ;) (expression_statement "(*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(param_1,iVar17,param_2,iVar13,param_3,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(param_1,iVar17,param_2,iVar13,param_3,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)" ( (pointer_expression "*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288" * (cast_expression "(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar17,param_2,iVar13,param_3,iVar14)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar16 = iVar13 + 1;" (assignment_expression "iVar16 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_4,param_1,iVar16,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_4,param_1,iVar16,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" ( (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" * (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4,param_1,iVar16,iVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar3 = param_4 + iVar13 * 8 + 4;" (assignment_expression "iVar3 = param_4 + iVar13 * 8 + 4" identifier = (binary_expression "param_4 + iVar13 * 8 + 4" (binary_expression "param_4 + iVar13 * 8" identifier + (binary_expression "iVar13 * 8" identifier * number_literal)) + number_literal)) ;) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar3,iVar17,iVar16,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar3,iVar17,iVar16,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" ( (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" * (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3,iVar17,iVar16,iVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar4 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_2,iVar13,1);" (assignment_expression "iVar4 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_2,iVar13,1)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_2,iVar13,1)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009d56c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009d56c" * (cast_expression "(code *)PTR___gmpn_lshift_0009d56c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,iVar13,1)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar5 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,param_2 + iVar15,iVar13);" (assignment_expression "iVar5 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,param_2 + iVar15,iVar13)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,param_2 + iVar15,iVar13)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_0009d334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_0009d334" * (cast_expression "(code *)PTR___gmpn_add_n_0009d334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_1,param_2 + iVar15,iVar13)" ( identifier , identifier , (binary_expression "param_2 + iVar15" identifier + identifier) , identifier )))) ;) (expression_statement "iVar6 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);" (assignment_expression "iVar6 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009d56c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009d56c" * (cast_expression "(code *)PTR___gmpn_lshift_0009d56c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_1,iVar13,1)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar12 = param_2 + iVar15 + iVar15;" (assignment_expression "iVar12 = param_2 + iVar15 + iVar15" identifier = (binary_expression "param_2 + iVar15 + iVar15" (binary_expression "param_2 + iVar15" identifier + identifier) + identifier)) ;) (expression_statement "iVar7 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,iVar13);" (assignment_expression "iVar7 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,iVar13)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,iVar13)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_0009d334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_0009d334" * (cast_expression "(code *)PTR___gmpn_add_n_0009d334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_1,iVar12,iVar13)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar8 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009d56c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009d56c" * (cast_expression "(code *)PTR___gmpn_lshift_0009d56c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_1,iVar13,1)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar12 = iVar12 + iVar15;" (assignment_expression "iVar12 = iVar12 + iVar15" identifier = (binary_expression "iVar12 + iVar15" identifier + identifier)) ;) (expression_statement "iVar8 = (iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2 + iVar8;" (assignment_expression "iVar8 = (iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2 + iVar8" identifier = (binary_expression "(iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2 + iVar8" (binary_expression "(iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2" (parenthesized_expression "(iVar6 + iVar7 + (iVar4 + iVar5) * 2)" ( (binary_expression "iVar6 + iVar7 + (iVar4 + iVar5) * 2" (binary_expression "iVar6 + iVar7" identifier + identifier) + (binary_expression "(iVar4 + iVar5) * 2" (parenthesized_expression "(iVar4 + iVar5)" ( (binary_expression "iVar4 + iVar5" identifier + identifier) )) * number_literal)) )) * number_literal) + identifier)) ;) (if_statement "if ((param_3 == 0) ||\n     (iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0))\n  goto LAB_00066dd4;" if (parenthesized_expression "((param_3 == 0) ||\n     (iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0))" ( (binary_expression "(param_3 == 0) ||\n     (iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0)" (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0)" ( (comma_expression "iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0" (assignment_expression "iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_0009d334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_0009d334" * (cast_expression "(code *)PTR___gmpn_add_n_0009d334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_1,iVar12,param_3)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00066dd4;" goto statement_identifier ;)) (if_statement "if (param_3 < iVar13) {\n    piVar9 = (int *)(param_1 + param_3 * 4);\n    iVar4 = *piVar9;\n    *piVar9 = iVar4 + 1;\n    if (iVar4 + 1 != 0) goto LAB_00066dd4;\n    iVar4 = param_3 + 2;\n    if (param_3 + 1 < iVar13) {\n      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);\n      iVar5 = *piVar10 + 1;\n      *piVar10 = iVar5;\n      while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }\n      goto LAB_00066dd4;\n    }\n  }" if (parenthesized_expression "(param_3 < iVar13)" ( (binary_expression "param_3 < iVar13" identifier < identifier) )) (compound_statement "{\n    piVar9 = (int *)(param_1 + param_3 * 4);\n    iVar4 = *piVar9;\n    *piVar9 = iVar4 + 1;\n    if (iVar4 + 1 != 0) goto LAB_00066dd4;\n    iVar4 = param_3 + 2;\n    if (param_3 + 1 < iVar13) {\n      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);\n      iVar5 = *piVar10 + 1;\n      *piVar10 = iVar5;\n      while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }\n      goto LAB_00066dd4;\n    }\n  }" { (expression_statement "piVar9 = (int *)(param_1 + param_3 * 4);" (assignment_expression "piVar9 = (int *)(param_1 + param_3 * 4)" identifier = (cast_expression "(int *)(param_1 + param_3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + param_3 * 4)" ( (binary_expression "param_1 + param_3 * 4" identifier + (binary_expression "param_3 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar4 = *piVar9;" (assignment_expression "iVar4 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "*piVar9 = iVar4 + 1;" (assignment_expression "*piVar9 = iVar4 + 1" (pointer_expression "*piVar9" * identifier) = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (if_statement "if (iVar4 + 1 != 0) goto LAB_00066dd4;" if (parenthesized_expression "(iVar4 + 1 != 0)" ( (binary_expression "iVar4 + 1 != 0" (binary_expression "iVar4 + 1" identifier + number_literal) != number_literal) )) (goto_statement "goto LAB_00066dd4;" goto statement_identifier ;)) (expression_statement "iVar4 = param_3 + 2;" (assignment_expression "iVar4 = param_3 + 2" identifier = (binary_expression "param_3 + 2" identifier + number_literal)) ;) (if_statement "if (param_3 + 1 < iVar13) {\n      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);\n      iVar5 = *piVar10 + 1;\n      *piVar10 = iVar5;\n      while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }\n      goto LAB_00066dd4;\n    }" if (parenthesized_expression "(param_3 + 1 < iVar13)" ( (binary_expression "param_3 + 1 < iVar13" (binary_expression "param_3 + 1" identifier + number_literal) < identifier) )) (compound_statement "{\n      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);\n      iVar5 = *piVar10 + 1;\n      *piVar10 = iVar5;\n      while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }\n      goto LAB_00066dd4;\n    }" { (expression_statement "piVar10 = (int *)(param_1 + (param_3 + 1) * 4);" (assignment_expression "piVar10 = (int *)(param_1 + (param_3 + 1) * 4)" identifier = (cast_expression "(int *)(param_1 + (param_3 + 1) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + (param_3 + 1) * 4)" ( (binary_expression "param_1 + (param_3 + 1) * 4" identifier + (binary_expression "(param_3 + 1) * 4" (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) )) * number_literal)) )))) ;) (expression_statement "iVar5 = *piVar10 + 1;" (assignment_expression "iVar5 = *piVar10 + 1" identifier = (binary_expression "*piVar10 + 1" (pointer_expression "*piVar10" * identifier) + number_literal)) ;) (expression_statement "*piVar10 = iVar5;" (assignment_expression "*piVar10 = iVar5" (pointer_expression "*piVar10" * identifier) = identifier) ;) (while_statement "while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }" while (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }" { (expression_statement "bVar1 = iVar13 == iVar4;" (assignment_expression "bVar1 = iVar13 == iVar4" identifier = (binary_expression "iVar13 == iVar4" identifier == identifier)) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (if_statement "if (bVar1) goto LAB_00066fac;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_00066fac;" goto statement_identifier ;)) (expression_statement "iVar5 = piVar9[2] + 1;" (assignment_expression "iVar5 = piVar9[2] + 1" identifier = (binary_expression "piVar9[2] + 1" (subscript_expression "piVar9[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar9[2] = iVar5;" (assignment_expression "piVar9[2] = iVar5" (subscript_expression "piVar9[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;) })) (goto_statement "goto LAB_00066dd4;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00066fac:\n  iVar8 = iVar8 + 1;" statement_identifier : (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_00066dd4:\n  puVar2 = PTR___gmpn_toom3_sqr_0009d11c;" statement_identifier : (expression_statement "puVar2 = PTR___gmpn_toom3_sqr_0009d11c;" (assignment_expression "puVar2 = PTR___gmpn_toom3_sqr_0009d11c" identifier = identifier) ;)) (expression_statement "iVar11 = param_4 + iVar11;" (assignment_expression "iVar11 = param_4 + iVar11" identifier = (binary_expression "param_4 + iVar11" identifier + identifier)) ;) (expression_statement "*(int *)(param_1 + iVar15) = iVar8;" (assignment_expression "*(int *)(param_1 + iVar15) = iVar8" (pointer_expression "*(int *)(param_1 + iVar15)" * (cast_expression "(int *)(param_1 + iVar15)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar15)" ( (binary_expression "param_1 + iVar15" identifier + identifier) )))) = identifier) ;) (expression_statement "(*(code *)puVar2)(iVar11,param_1,iVar16,iVar14);" (call_expression "(*(code *)puVar2)(iVar11,param_1,iVar16,iVar14)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11,param_1,iVar16,iVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(param_1,iVar17,param_2,iVar13,param_3,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(param_1,iVar17,param_2,iVar13,param_3,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)" ( (pointer_expression "*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528" * (cast_expression "(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar17,param_2,iVar13,param_3,iVar14)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)((int *)(param_1 + iVar15) + iVar13,param_1,iVar16,iVar14)\n  ;" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)((int *)(param_1 + iVar15) + iVar13,param_1,iVar16,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" ( (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" * (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((int *)(param_1 + iVar15) + iVar13,param_1,iVar16,iVar14)" ( (binary_expression "(int *)(param_1 + iVar15) + iVar13" (cast_expression "(int *)(param_1 + iVar15)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar15)" ( (binary_expression "param_1 + iVar15" identifier + identifier) ))) + identifier) , identifier , identifier , identifier ))) ;) (expression_statement "iVar4 = param_4 + iVar13 * 0x18 + 0xc;" (assignment_expression "iVar4 = param_4 + iVar13 * 0x18 + 0xc" identifier = (binary_expression "param_4 + iVar13 * 0x18 + 0xc" (binary_expression "param_4 + iVar13 * 0x18" identifier + (binary_expression "iVar13 * 0x18" identifier * number_literal)) + number_literal)) ;) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar4,iVar17,iVar16,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar4,iVar17,iVar16,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" ( (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" * (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4,iVar17,iVar16,iVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1,param_2,iVar13,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1,param_2,iVar13,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" ( (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" * (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,iVar13,iVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1 + iVar13 * 0x18,iVar12,param_3,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1 + iVar13 * 0x18,iVar12,param_3,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" ( (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" * (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1 + iVar13 * 0x18,iVar12,param_3,iVar14)" ( (binary_expression "param_1 + iVar13 * 0x18" identifier + (binary_expression "iVar13 * 0x18" identifier * number_literal)) , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)\n            (param_1,iVar13,0,iVar3,iVar4,param_4,iVar11,param_3 * 2,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)\n            (param_1,iVar13,0,iVar3,iVar4,param_4,iVar11,param_3 * 2,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)" ( (pointer_expression "*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8" * (cast_expression "(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar13,0,iVar3,iVar4,param_4,iVar11,param_3 * 2,iVar14)" ( identifier , identifier , number_literal , identifier , identifier , identifier , identifier , (binary_expression "param_3 * 2" identifier * number_literal) , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void __gmpn_toom4_sqr(mp_ptr pp,mp_srcptr ap,mp_size_t an,mp_ptr scratch)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  mp_ptr pmVar8;\n  mp_limb_t mVar9;\n  mp_limb_t mVar10;\n  mp_srcptr pmVar11;\n  int iVar12;\n  mp_ptr pmVar13;\n  int iVar14;\n  int iVar15;\n  mp_ptr pmVar16;\n  \n  iVar12 = an + 3 >> 2;\n  pmVar16 = pp + iVar12 * 4 + 2;\n  pmVar13 = scratch + iVar12 * 8 + 5;\n  iVar14 = iVar12 * -3 + an;\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(pp,pmVar16,ap,iVar12,iVar14,pmVar13);\n  iVar15 = iVar12 + 1;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(scratch,pp,iVar15,pmVar13);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(scratch + iVar12 * 2 + 1,pmVar16,iVar15,pmVar13);\n  iVar3 = (*(code *)PTR___gmpn_lshift_0009d56c)(pp,ap,iVar12,1);\n  pmVar11 = ap + iVar12;\n  iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11,iVar12);\n  iVar5 = (*(code *)PTR___gmpn_lshift_0009d56c)(pp,pp,iVar12,1);\n  pmVar11 = pmVar11 + iVar12;\n  iVar6 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11,iVar12);\n  iVar7 = (*(code *)PTR___gmpn_lshift_0009d56c)(pp,pp,iVar12,1);\n  mVar9 = (iVar5 + iVar6 + (iVar3 + iVar4) * 2) * 2 + iVar7;\n  if ((iVar14 == 0) ||\n     (iVar3 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11 + iVar12,iVar14), iVar3 == 0))\n  goto LAB_00066dd4;\n  if (iVar14 < iVar12) {\n    pmVar8 = pp + iVar14;\n    mVar10 = *pmVar8;\n    *pmVar8 = mVar10 + 1;\n    if (mVar10 + 1 != 0) goto LAB_00066dd4;\n    iVar3 = iVar14 + 2;\n    if (iVar14 + 1 < iVar12) {\n      mVar10 = pp[iVar14 + 1] + 1;\n      pp[iVar14 + 1] = mVar10;\n      while (mVar10 == 0) {\n        bVar1 = iVar12 == iVar3;\n        iVar3 = iVar3 + 1;\n        if (bVar1) goto LAB_00066fac;\n        mVar10 = pmVar8[2] + 1;\n        pmVar8[2] = mVar10;\n        pmVar8 = pmVar8 + 1;\n      }\n      goto LAB_00066dd4;\n    }\n  }\nLAB_00066fac:\n  mVar9 = mVar9 + 1;\nLAB_00066dd4:\n  puVar2 = PTR___gmpn_toom3_sqr_0009d11c;\n  pp[iVar12] = mVar9;\n  (*(code *)puVar2)(scratch + iVar12 * 4 + 2,pp,iVar15,pmVar13);\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(pp,pmVar16,ap,iVar12,iVar14,pmVar13);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(pp + iVar12 + iVar12,pp,iVar15,pmVar13);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(scratch + iVar12 * 6 + 3,pmVar16,iVar15,pmVar13);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(pp,ap,iVar12,pmVar13);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(pp + iVar12 * 6,pmVar11 + iVar12,iVar14,pmVar13);\n  (*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)\n            (pp,iVar12,0,scratch + iVar12 * 2 + 1,scratch + iVar12 * 6 + 3,scratch,\n             scratch + iVar12 * 4 + 2,iVar14 * 2,pmVar13);\n  return;\n}\n\n" (function_definition "void __gmpn_toom4_sqr(mp_ptr pp,mp_srcptr ap,mp_size_t an,mp_ptr scratch)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  mp_ptr pmVar8;\n  mp_limb_t mVar9;\n  mp_limb_t mVar10;\n  mp_srcptr pmVar11;\n  int iVar12;\n  mp_ptr pmVar13;\n  int iVar14;\n  int iVar15;\n  mp_ptr pmVar16;\n  \n  iVar12 = an + 3 >> 2;\n  pmVar16 = pp + iVar12 * 4 + 2;\n  pmVar13 = scratch + iVar12 * 8 + 5;\n  iVar14 = iVar12 * -3 + an;\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(pp,pmVar16,ap,iVar12,iVar14,pmVar13);\n  iVar15 = iVar12 + 1;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(scratch,pp,iVar15,pmVar13);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(scratch + iVar12 * 2 + 1,pmVar16,iVar15,pmVar13);\n  iVar3 = (*(code *)PTR___gmpn_lshift_0009d56c)(pp,ap,iVar12,1);\n  pmVar11 = ap + iVar12;\n  iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11,iVar12);\n  iVar5 = (*(code *)PTR___gmpn_lshift_0009d56c)(pp,pp,iVar12,1);\n  pmVar11 = pmVar11 + iVar12;\n  iVar6 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11,iVar12);\n  iVar7 = (*(code *)PTR___gmpn_lshift_0009d56c)(pp,pp,iVar12,1);\n  mVar9 = (iVar5 + iVar6 + (iVar3 + iVar4) * 2) * 2 + iVar7;\n  if ((iVar14 == 0) ||\n     (iVar3 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11 + iVar12,iVar14), iVar3 == 0))\n  goto LAB_00066dd4;\n  if (iVar14 < iVar12) {\n    pmVar8 = pp + iVar14;\n    mVar10 = *pmVar8;\n    *pmVar8 = mVar10 + 1;\n    if (mVar10 + 1 != 0) goto LAB_00066dd4;\n    iVar3 = iVar14 + 2;\n    if (iVar14 + 1 < iVar12) {\n      mVar10 = pp[iVar14 + 1] + 1;\n      pp[iVar14 + 1] = mVar10;\n      while (mVar10 == 0) {\n        bVar1 = iVar12 == iVar3;\n        iVar3 = iVar3 + 1;\n        if (bVar1) goto LAB_00066fac;\n        mVar10 = pmVar8[2] + 1;\n        pmVar8[2] = mVar10;\n        pmVar8 = pmVar8 + 1;\n      }\n      goto LAB_00066dd4;\n    }\n  }\nLAB_00066fac:\n  mVar9 = mVar9 + 1;\nLAB_00066dd4:\n  puVar2 = PTR___gmpn_toom3_sqr_0009d11c;\n  pp[iVar12] = mVar9;\n  (*(code *)puVar2)(scratch + iVar12 * 4 + 2,pp,iVar15,pmVar13);\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(pp,pmVar16,ap,iVar12,iVar14,pmVar13);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(pp + iVar12 + iVar12,pp,iVar15,pmVar13);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(scratch + iVar12 * 6 + 3,pmVar16,iVar15,pmVar13);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(pp,ap,iVar12,pmVar13);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(pp + iVar12 * 6,pmVar11 + iVar12,iVar14,pmVar13);\n  (*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)\n            (pp,iVar12,0,scratch + iVar12 * 2 + 1,scratch + iVar12 * 6 + 3,scratch,\n             scratch + iVar12 * 4 + 2,iVar14 * 2,pmVar13);\n  return;\n}" primitive_type (function_declarator "__gmpn_toom4_sqr(mp_ptr pp,mp_srcptr ap,mp_size_t an,mp_ptr scratch)" identifier (parameter_list "(mp_ptr pp,mp_srcptr ap,mp_size_t an,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_ptr scratch" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  mp_ptr pmVar8;\n  mp_limb_t mVar9;\n  mp_limb_t mVar10;\n  mp_srcptr pmVar11;\n  int iVar12;\n  mp_ptr pmVar13;\n  int iVar14;\n  int iVar15;\n  mp_ptr pmVar16;\n  \n  iVar12 = an + 3 >> 2;\n  pmVar16 = pp + iVar12 * 4 + 2;\n  pmVar13 = scratch + iVar12 * 8 + 5;\n  iVar14 = iVar12 * -3 + an;\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(pp,pmVar16,ap,iVar12,iVar14,pmVar13);\n  iVar15 = iVar12 + 1;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(scratch,pp,iVar15,pmVar13);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(scratch + iVar12 * 2 + 1,pmVar16,iVar15,pmVar13);\n  iVar3 = (*(code *)PTR___gmpn_lshift_0009d56c)(pp,ap,iVar12,1);\n  pmVar11 = ap + iVar12;\n  iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11,iVar12);\n  iVar5 = (*(code *)PTR___gmpn_lshift_0009d56c)(pp,pp,iVar12,1);\n  pmVar11 = pmVar11 + iVar12;\n  iVar6 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11,iVar12);\n  iVar7 = (*(code *)PTR___gmpn_lshift_0009d56c)(pp,pp,iVar12,1);\n  mVar9 = (iVar5 + iVar6 + (iVar3 + iVar4) * 2) * 2 + iVar7;\n  if ((iVar14 == 0) ||\n     (iVar3 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11 + iVar12,iVar14), iVar3 == 0))\n  goto LAB_00066dd4;\n  if (iVar14 < iVar12) {\n    pmVar8 = pp + iVar14;\n    mVar10 = *pmVar8;\n    *pmVar8 = mVar10 + 1;\n    if (mVar10 + 1 != 0) goto LAB_00066dd4;\n    iVar3 = iVar14 + 2;\n    if (iVar14 + 1 < iVar12) {\n      mVar10 = pp[iVar14 + 1] + 1;\n      pp[iVar14 + 1] = mVar10;\n      while (mVar10 == 0) {\n        bVar1 = iVar12 == iVar3;\n        iVar3 = iVar3 + 1;\n        if (bVar1) goto LAB_00066fac;\n        mVar10 = pmVar8[2] + 1;\n        pmVar8[2] = mVar10;\n        pmVar8 = pmVar8 + 1;\n      }\n      goto LAB_00066dd4;\n    }\n  }\nLAB_00066fac:\n  mVar9 = mVar9 + 1;\nLAB_00066dd4:\n  puVar2 = PTR___gmpn_toom3_sqr_0009d11c;\n  pp[iVar12] = mVar9;\n  (*(code *)puVar2)(scratch + iVar12 * 4 + 2,pp,iVar15,pmVar13);\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(pp,pmVar16,ap,iVar12,iVar14,pmVar13);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(pp + iVar12 + iVar12,pp,iVar15,pmVar13);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(scratch + iVar12 * 6 + 3,pmVar16,iVar15,pmVar13);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(pp,ap,iVar12,pmVar13);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(pp + iVar12 * 6,pmVar11 + iVar12,iVar14,pmVar13);\n  (*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)\n            (pp,iVar12,0,scratch + iVar12 * 2 + 1,scratch + iVar12 * 6 + 3,scratch,\n             scratch + iVar12 * 4 + 2,iVar14 * 2,pmVar13);\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "mp_ptr pmVar8;" type_identifier identifier ;) (declaration "mp_limb_t mVar9;" type_identifier identifier ;) (declaration "mp_limb_t mVar10;" type_identifier identifier ;) (declaration "mp_srcptr pmVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "mp_ptr pmVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "mp_ptr pmVar16;" type_identifier identifier ;) (expression_statement "iVar12 = an + 3 >> 2;" (assignment_expression "iVar12 = an + 3 >> 2" identifier = (binary_expression "an + 3 >> 2" (binary_expression "an + 3" identifier + number_literal) >> number_literal)) ;) (expression_statement "pmVar16 = pp + iVar12 * 4 + 2;" (assignment_expression "pmVar16 = pp + iVar12 * 4 + 2" identifier = (binary_expression "pp + iVar12 * 4 + 2" (binary_expression "pp + iVar12 * 4" identifier + (binary_expression "iVar12 * 4" identifier * number_literal)) + number_literal)) ;) (expression_statement "pmVar13 = scratch + iVar12 * 8 + 5;" (assignment_expression "pmVar13 = scratch + iVar12 * 8 + 5" identifier = (binary_expression "scratch + iVar12 * 8 + 5" (binary_expression "scratch + iVar12 * 8" identifier + (binary_expression "iVar12 * 8" identifier * number_literal)) + number_literal)) ;) (expression_statement "iVar14 = iVar12 * -3 + an;" (assignment_expression "iVar14 = iVar12 * -3 + an" identifier = (binary_expression "iVar12 * -3 + an" (binary_expression "iVar12 * -3" identifier * number_literal) + identifier)) ;) (expression_statement "(*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(pp,pmVar16,ap,iVar12,iVar14,pmVar13);" (call_expression "(*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(pp,pmVar16,ap,iVar12,iVar14,pmVar13)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)" ( (pointer_expression "*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288" * (cast_expression "(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp,pmVar16,ap,iVar12,iVar14,pmVar13)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar15 = iVar12 + 1;" (assignment_expression "iVar15 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(scratch,pp,iVar15,pmVar13);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(scratch,pp,iVar15,pmVar13)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" ( (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" * (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(scratch,pp,iVar15,pmVar13)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(scratch + iVar12 * 2 + 1,pmVar16,iVar15,pmVar13);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(scratch + iVar12 * 2 + 1,pmVar16,iVar15,pmVar13)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" ( (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" * (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(scratch + iVar12 * 2 + 1,pmVar16,iVar15,pmVar13)" ( (binary_expression "scratch + iVar12 * 2 + 1" (binary_expression "scratch + iVar12 * 2" identifier + (binary_expression "iVar12 * 2" identifier * number_literal)) + number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "iVar3 = (*(code *)PTR___gmpn_lshift_0009d56c)(pp,ap,iVar12,1);" (assignment_expression "iVar3 = (*(code *)PTR___gmpn_lshift_0009d56c)(pp,ap,iVar12,1)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009d56c)(pp,ap,iVar12,1)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009d56c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009d56c" * (cast_expression "(code *)PTR___gmpn_lshift_0009d56c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp,ap,iVar12,1)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "pmVar11 = ap + iVar12;" (assignment_expression "pmVar11 = ap + iVar12" identifier = (binary_expression "ap + iVar12" identifier + identifier)) ;) (expression_statement "iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11,iVar12);" (assignment_expression "iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11,iVar12)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11,iVar12)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_0009d334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_0009d334" * (cast_expression "(code *)PTR___gmpn_add_n_0009d334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp,pp,pmVar11,iVar12)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar5 = (*(code *)PTR___gmpn_lshift_0009d56c)(pp,pp,iVar12,1);" (assignment_expression "iVar5 = (*(code *)PTR___gmpn_lshift_0009d56c)(pp,pp,iVar12,1)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009d56c)(pp,pp,iVar12,1)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009d56c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009d56c" * (cast_expression "(code *)PTR___gmpn_lshift_0009d56c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp,pp,iVar12,1)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "pmVar11 = pmVar11 + iVar12;" (assignment_expression "pmVar11 = pmVar11 + iVar12" identifier = (binary_expression "pmVar11 + iVar12" identifier + identifier)) ;) (expression_statement "iVar6 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11,iVar12);" (assignment_expression "iVar6 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11,iVar12)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11,iVar12)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_0009d334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_0009d334" * (cast_expression "(code *)PTR___gmpn_add_n_0009d334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp,pp,pmVar11,iVar12)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar7 = (*(code *)PTR___gmpn_lshift_0009d56c)(pp,pp,iVar12,1);" (assignment_expression "iVar7 = (*(code *)PTR___gmpn_lshift_0009d56c)(pp,pp,iVar12,1)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009d56c)(pp,pp,iVar12,1)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009d56c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009d56c" * (cast_expression "(code *)PTR___gmpn_lshift_0009d56c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp,pp,iVar12,1)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "mVar9 = (iVar5 + iVar6 + (iVar3 + iVar4) * 2) * 2 + iVar7;" (assignment_expression "mVar9 = (iVar5 + iVar6 + (iVar3 + iVar4) * 2) * 2 + iVar7" identifier = (binary_expression "(iVar5 + iVar6 + (iVar3 + iVar4) * 2) * 2 + iVar7" (binary_expression "(iVar5 + iVar6 + (iVar3 + iVar4) * 2) * 2" (parenthesized_expression "(iVar5 + iVar6 + (iVar3 + iVar4) * 2)" ( (binary_expression "iVar5 + iVar6 + (iVar3 + iVar4) * 2" (binary_expression "iVar5 + iVar6" identifier + identifier) + (binary_expression "(iVar3 + iVar4) * 2" (parenthesized_expression "(iVar3 + iVar4)" ( (binary_expression "iVar3 + iVar4" identifier + identifier) )) * number_literal)) )) * number_literal) + identifier)) ;) (if_statement "if ((iVar14 == 0) ||\n     (iVar3 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11 + iVar12,iVar14), iVar3 == 0))\n  goto LAB_00066dd4;" if (parenthesized_expression "((iVar14 == 0) ||\n     (iVar3 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11 + iVar12,iVar14), iVar3 == 0))" ( (binary_expression "(iVar14 == 0) ||\n     (iVar3 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11 + iVar12,iVar14), iVar3 == 0)" (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11 + iVar12,iVar14), iVar3 == 0)" ( (comma_expression "iVar3 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11 + iVar12,iVar14), iVar3 == 0" (assignment_expression "iVar3 = (*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11 + iVar12,iVar14)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_0009d334)(pp,pp,pmVar11 + iVar12,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_0009d334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_0009d334" * (cast_expression "(code *)PTR___gmpn_add_n_0009d334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp,pp,pmVar11 + iVar12,iVar14)" ( identifier , identifier , (binary_expression "pmVar11 + iVar12" identifier + identifier) , identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00066dd4;" goto statement_identifier ;)) (if_statement "if (iVar14 < iVar12) {\n    pmVar8 = pp + iVar14;\n    mVar10 = *pmVar8;\n    *pmVar8 = mVar10 + 1;\n    if (mVar10 + 1 != 0) goto LAB_00066dd4;\n    iVar3 = iVar14 + 2;\n    if (iVar14 + 1 < iVar12) {\n      mVar10 = pp[iVar14 + 1] + 1;\n      pp[iVar14 + 1] = mVar10;\n      while (mVar10 == 0) {\n        bVar1 = iVar12 == iVar3;\n        iVar3 = iVar3 + 1;\n        if (bVar1) goto LAB_00066fac;\n        mVar10 = pmVar8[2] + 1;\n        pmVar8[2] = mVar10;\n        pmVar8 = pmVar8 + 1;\n      }\n      goto LAB_00066dd4;\n    }\n  }" if (parenthesized_expression "(iVar14 < iVar12)" ( (binary_expression "iVar14 < iVar12" identifier < identifier) )) (compound_statement "{\n    pmVar8 = pp + iVar14;\n    mVar10 = *pmVar8;\n    *pmVar8 = mVar10 + 1;\n    if (mVar10 + 1 != 0) goto LAB_00066dd4;\n    iVar3 = iVar14 + 2;\n    if (iVar14 + 1 < iVar12) {\n      mVar10 = pp[iVar14 + 1] + 1;\n      pp[iVar14 + 1] = mVar10;\n      while (mVar10 == 0) {\n        bVar1 = iVar12 == iVar3;\n        iVar3 = iVar3 + 1;\n        if (bVar1) goto LAB_00066fac;\n        mVar10 = pmVar8[2] + 1;\n        pmVar8[2] = mVar10;\n        pmVar8 = pmVar8 + 1;\n      }\n      goto LAB_00066dd4;\n    }\n  }" { (expression_statement "pmVar8 = pp + iVar14;" (assignment_expression "pmVar8 = pp + iVar14" identifier = (binary_expression "pp + iVar14" identifier + identifier)) ;) (expression_statement "mVar10 = *pmVar8;" (assignment_expression "mVar10 = *pmVar8" identifier = (pointer_expression "*pmVar8" * identifier)) ;) (expression_statement "*pmVar8 = mVar10 + 1;" (assignment_expression "*pmVar8 = mVar10 + 1" (pointer_expression "*pmVar8" * identifier) = (binary_expression "mVar10 + 1" identifier + number_literal)) ;) (if_statement "if (mVar10 + 1 != 0) goto LAB_00066dd4;" if (parenthesized_expression "(mVar10 + 1 != 0)" ( (binary_expression "mVar10 + 1 != 0" (binary_expression "mVar10 + 1" identifier + number_literal) != number_literal) )) (goto_statement "goto LAB_00066dd4;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar14 + 2;" (assignment_expression "iVar3 = iVar14 + 2" identifier = (binary_expression "iVar14 + 2" identifier + number_literal)) ;) (if_statement "if (iVar14 + 1 < iVar12) {\n      mVar10 = pp[iVar14 + 1] + 1;\n      pp[iVar14 + 1] = mVar10;\n      while (mVar10 == 0) {\n        bVar1 = iVar12 == iVar3;\n        iVar3 = iVar3 + 1;\n        if (bVar1) goto LAB_00066fac;\n        mVar10 = pmVar8[2] + 1;\n        pmVar8[2] = mVar10;\n        pmVar8 = pmVar8 + 1;\n      }\n      goto LAB_00066dd4;\n    }" if (parenthesized_expression "(iVar14 + 1 < iVar12)" ( (binary_expression "iVar14 + 1 < iVar12" (binary_expression "iVar14 + 1" identifier + number_literal) < identifier) )) (compound_statement "{\n      mVar10 = pp[iVar14 + 1] + 1;\n      pp[iVar14 + 1] = mVar10;\n      while (mVar10 == 0) {\n        bVar1 = iVar12 == iVar3;\n        iVar3 = iVar3 + 1;\n        if (bVar1) goto LAB_00066fac;\n        mVar10 = pmVar8[2] + 1;\n        pmVar8[2] = mVar10;\n        pmVar8 = pmVar8 + 1;\n      }\n      goto LAB_00066dd4;\n    }" { (expression_statement "mVar10 = pp[iVar14 + 1] + 1;" (assignment_expression "mVar10 = pp[iVar14 + 1] + 1" identifier = (binary_expression "pp[iVar14 + 1] + 1" (subscript_expression "pp[iVar14 + 1]" identifier [ (binary_expression "iVar14 + 1" identifier + number_literal) ]) + number_literal)) ;) (expression_statement "pp[iVar14 + 1] = mVar10;" (assignment_expression "pp[iVar14 + 1] = mVar10" (subscript_expression "pp[iVar14 + 1]" identifier [ (binary_expression "iVar14 + 1" identifier + number_literal) ]) = identifier) ;) (while_statement "while (mVar10 == 0) {\n        bVar1 = iVar12 == iVar3;\n        iVar3 = iVar3 + 1;\n        if (bVar1) goto LAB_00066fac;\n        mVar10 = pmVar8[2] + 1;\n        pmVar8[2] = mVar10;\n        pmVar8 = pmVar8 + 1;\n      }" while (parenthesized_expression "(mVar10 == 0)" ( (binary_expression "mVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar1 = iVar12 == iVar3;\n        iVar3 = iVar3 + 1;\n        if (bVar1) goto LAB_00066fac;\n        mVar10 = pmVar8[2] + 1;\n        pmVar8[2] = mVar10;\n        pmVar8 = pmVar8 + 1;\n      }" { (expression_statement "bVar1 = iVar12 == iVar3;" (assignment_expression "bVar1 = iVar12 == iVar3" identifier = (binary_expression "iVar12 == iVar3" identifier == identifier)) ;) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if (bVar1) goto LAB_00066fac;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_00066fac;" goto statement_identifier ;)) (expression_statement "mVar10 = pmVar8[2] + 1;" (assignment_expression "mVar10 = pmVar8[2] + 1" identifier = (binary_expression "pmVar8[2] + 1" (subscript_expression "pmVar8[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "pmVar8[2] = mVar10;" (assignment_expression "pmVar8[2] = mVar10" (subscript_expression "pmVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pmVar8 = pmVar8 + 1;" (assignment_expression "pmVar8 = pmVar8 + 1" identifier = (binary_expression "pmVar8 + 1" identifier + number_literal)) ;) })) (goto_statement "goto LAB_00066dd4;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00066fac:\n  mVar9 = mVar9 + 1;" statement_identifier : (expression_statement "mVar9 = mVar9 + 1;" (assignment_expression "mVar9 = mVar9 + 1" identifier = (binary_expression "mVar9 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_00066dd4:\n  puVar2 = PTR___gmpn_toom3_sqr_0009d11c;" statement_identifier : (expression_statement "puVar2 = PTR___gmpn_toom3_sqr_0009d11c;" (assignment_expression "puVar2 = PTR___gmpn_toom3_sqr_0009d11c" identifier = identifier) ;)) (expression_statement "pp[iVar12] = mVar9;" (assignment_expression "pp[iVar12] = mVar9" (subscript_expression "pp[iVar12]" identifier [ identifier ]) = identifier) ;) (expression_statement "(*(code *)puVar2)(scratch + iVar12 * 4 + 2,pp,iVar15,pmVar13);" (call_expression "(*(code *)puVar2)(scratch + iVar12 * 4 + 2,pp,iVar15,pmVar13)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(scratch + iVar12 * 4 + 2,pp,iVar15,pmVar13)" ( (binary_expression "scratch + iVar12 * 4 + 2" (binary_expression "scratch + iVar12 * 4" identifier + (binary_expression "iVar12 * 4" identifier * number_literal)) + number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(pp,pmVar16,ap,iVar12,iVar14,pmVar13);" (call_expression "(*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(pp,pmVar16,ap,iVar12,iVar14,pmVar13)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)" ( (pointer_expression "*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528" * (cast_expression "(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp,pmVar16,ap,iVar12,iVar14,pmVar13)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(pp + iVar12 + iVar12,pp,iVar15,pmVar13);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(pp + iVar12 + iVar12,pp,iVar15,pmVar13)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" ( (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" * (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp + iVar12 + iVar12,pp,iVar15,pmVar13)" ( (binary_expression "pp + iVar12 + iVar12" (binary_expression "pp + iVar12" identifier + identifier) + identifier) , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(scratch + iVar12 * 6 + 3,pmVar16,iVar15,pmVar13);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(scratch + iVar12 * 6 + 3,pmVar16,iVar15,pmVar13)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" ( (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" * (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(scratch + iVar12 * 6 + 3,pmVar16,iVar15,pmVar13)" ( (binary_expression "scratch + iVar12 * 6 + 3" (binary_expression "scratch + iVar12 * 6" identifier + (binary_expression "iVar12 * 6" identifier * number_literal)) + number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(pp,ap,iVar12,pmVar13);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(pp,ap,iVar12,pmVar13)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" ( (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" * (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp,ap,iVar12,pmVar13)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(pp + iVar12 * 6,pmVar11 + iVar12,iVar14,pmVar13);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(pp + iVar12 * 6,pmVar11 + iVar12,iVar14,pmVar13)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" ( (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" * (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp + iVar12 * 6,pmVar11 + iVar12,iVar14,pmVar13)" ( (binary_expression "pp + iVar12 * 6" identifier + (binary_expression "iVar12 * 6" identifier * number_literal)) , (binary_expression "pmVar11 + iVar12" identifier + identifier) , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)\n            (pp,iVar12,0,scratch + iVar12 * 2 + 1,scratch + iVar12 * 6 + 3,scratch,\n             scratch + iVar12 * 4 + 2,iVar14 * 2,pmVar13);" (call_expression "(*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)\n            (pp,iVar12,0,scratch + iVar12 * 2 + 1,scratch + iVar12 * 6 + 3,scratch,\n             scratch + iVar12 * 4 + 2,iVar14 * 2,pmVar13)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)" ( (pointer_expression "*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8" * (cast_expression "(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp,iVar12,0,scratch + iVar12 * 2 + 1,scratch + iVar12 * 6 + 3,scratch,\n             scratch + iVar12 * 4 + 2,iVar14 * 2,pmVar13)" ( identifier , identifier , number_literal , (binary_expression "scratch + iVar12 * 2 + 1" (binary_expression "scratch + iVar12 * 2" identifier + (binary_expression "iVar12 * 2" identifier * number_literal)) + number_literal) , (binary_expression "scratch + iVar12 * 6 + 3" (binary_expression "scratch + iVar12 * 6" identifier + (binary_expression "iVar12 * 6" identifier * number_literal)) + number_literal) , identifier , (binary_expression "scratch + iVar12 * 4 + 2" (binary_expression "scratch + iVar12 * 4" identifier + (binary_expression "iVar12 * 4" identifier * number_literal)) + number_literal) , (binary_expression "iVar14 * 2" identifier * number_literal) , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void __gmpn_toom4_sqr(int param_1,int param_2,int param_3,int param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  \n  iVar13 = param_3 + 3 >> 2;\n  iVar15 = iVar13 * 4;\n  iVar11 = iVar13 * 0x10 + 8;\n  iVar17 = param_1 + iVar11;\n  iVar14 = param_4 + iVar13 * 0x20 + 0x14;\n  param_3 = iVar13 * -3 + param_3;\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(param_1,iVar17,param_2,iVar13,param_3,iVar14);\n  iVar16 = iVar13 + 1;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_4,param_1,iVar16,iVar14);\n  iVar3 = param_4 + iVar13 * 8 + 4;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar3,iVar17,iVar16,iVar14);\n  iVar4 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_2,iVar13,1);\n  iVar5 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,param_2 + iVar15,iVar13);\n  iVar6 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);\n  iVar12 = param_2 + iVar15 + iVar15;\n  iVar7 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,iVar13);\n  iVar8 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);\n  iVar12 = iVar12 + iVar15;\n  iVar8 = (iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2 + iVar8;\n  if ((param_3 == 0) ||\n     (iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0))\n  goto LAB_00066dd4;\n  if (param_3 < iVar13) {\n    piVar9 = (int *)(param_1 + param_3 * 4);\n    iVar4 = *piVar9;\n    *piVar9 = iVar4 + 1;\n    if (iVar4 + 1 != 0) goto LAB_00066dd4;\n    iVar4 = param_3 + 2;\n    if (param_3 + 1 < iVar13) {\n      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);\n      iVar5 = *piVar10 + 1;\n      *piVar10 = iVar5;\n      while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }\n      goto LAB_00066dd4;\n    }\n  }\nLAB_00066fac:\n  iVar8 = iVar8 + 1;\nLAB_00066dd4:\n  puVar2 = PTR___gmpn_toom3_sqr_0009d11c;\n  iVar11 = param_4 + iVar11;\n  *(int *)(param_1 + iVar15) = iVar8;\n  (*(code *)puVar2)(iVar11,param_1,iVar16,iVar14);\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(param_1,iVar17,param_2,iVar13,param_3,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)((int *)(param_1 + iVar15) + iVar13,param_1,iVar16,iVar14)\n  ;\n  iVar4 = param_4 + iVar13 * 0x18 + 0xc;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar4,iVar17,iVar16,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1,param_2,iVar13,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1 + iVar13 * 0x18,iVar12,param_3,iVar14);\n  (*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)\n            (param_1,iVar13,0,iVar3,iVar4,param_4,iVar11,param_3 * 2,iVar14);\n  return;\n}\n\n" (function_definition "void __gmpn_toom4_sqr(int param_1,int param_2,int param_3,int param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  \n  iVar13 = param_3 + 3 >> 2;\n  iVar15 = iVar13 * 4;\n  iVar11 = iVar13 * 0x10 + 8;\n  iVar17 = param_1 + iVar11;\n  iVar14 = param_4 + iVar13 * 0x20 + 0x14;\n  param_3 = iVar13 * -3 + param_3;\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(param_1,iVar17,param_2,iVar13,param_3,iVar14);\n  iVar16 = iVar13 + 1;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_4,param_1,iVar16,iVar14);\n  iVar3 = param_4 + iVar13 * 8 + 4;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar3,iVar17,iVar16,iVar14);\n  iVar4 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_2,iVar13,1);\n  iVar5 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,param_2 + iVar15,iVar13);\n  iVar6 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);\n  iVar12 = param_2 + iVar15 + iVar15;\n  iVar7 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,iVar13);\n  iVar8 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);\n  iVar12 = iVar12 + iVar15;\n  iVar8 = (iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2 + iVar8;\n  if ((param_3 == 0) ||\n     (iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0))\n  goto LAB_00066dd4;\n  if (param_3 < iVar13) {\n    piVar9 = (int *)(param_1 + param_3 * 4);\n    iVar4 = *piVar9;\n    *piVar9 = iVar4 + 1;\n    if (iVar4 + 1 != 0) goto LAB_00066dd4;\n    iVar4 = param_3 + 2;\n    if (param_3 + 1 < iVar13) {\n      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);\n      iVar5 = *piVar10 + 1;\n      *piVar10 = iVar5;\n      while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }\n      goto LAB_00066dd4;\n    }\n  }\nLAB_00066fac:\n  iVar8 = iVar8 + 1;\nLAB_00066dd4:\n  puVar2 = PTR___gmpn_toom3_sqr_0009d11c;\n  iVar11 = param_4 + iVar11;\n  *(int *)(param_1 + iVar15) = iVar8;\n  (*(code *)puVar2)(iVar11,param_1,iVar16,iVar14);\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(param_1,iVar17,param_2,iVar13,param_3,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)((int *)(param_1 + iVar15) + iVar13,param_1,iVar16,iVar14)\n  ;\n  iVar4 = param_4 + iVar13 * 0x18 + 0xc;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar4,iVar17,iVar16,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1,param_2,iVar13,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1 + iVar13 * 0x18,iVar12,param_3,iVar14);\n  (*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)\n            (param_1,iVar13,0,iVar3,iVar4,param_4,iVar11,param_3 * 2,iVar14);\n  return;\n}" primitive_type (function_declarator "__gmpn_toom4_sqr(int param_1,int param_2,int param_3,int param_4)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4)" ( (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) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  \n  iVar13 = param_3 + 3 >> 2;\n  iVar15 = iVar13 * 4;\n  iVar11 = iVar13 * 0x10 + 8;\n  iVar17 = param_1 + iVar11;\n  iVar14 = param_4 + iVar13 * 0x20 + 0x14;\n  param_3 = iVar13 * -3 + param_3;\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(param_1,iVar17,param_2,iVar13,param_3,iVar14);\n  iVar16 = iVar13 + 1;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_4,param_1,iVar16,iVar14);\n  iVar3 = param_4 + iVar13 * 8 + 4;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar3,iVar17,iVar16,iVar14);\n  iVar4 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_2,iVar13,1);\n  iVar5 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,param_2 + iVar15,iVar13);\n  iVar6 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);\n  iVar12 = param_2 + iVar15 + iVar15;\n  iVar7 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,iVar13);\n  iVar8 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);\n  iVar12 = iVar12 + iVar15;\n  iVar8 = (iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2 + iVar8;\n  if ((param_3 == 0) ||\n     (iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0))\n  goto LAB_00066dd4;\n  if (param_3 < iVar13) {\n    piVar9 = (int *)(param_1 + param_3 * 4);\n    iVar4 = *piVar9;\n    *piVar9 = iVar4 + 1;\n    if (iVar4 + 1 != 0) goto LAB_00066dd4;\n    iVar4 = param_3 + 2;\n    if (param_3 + 1 < iVar13) {\n      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);\n      iVar5 = *piVar10 + 1;\n      *piVar10 = iVar5;\n      while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }\n      goto LAB_00066dd4;\n    }\n  }\nLAB_00066fac:\n  iVar8 = iVar8 + 1;\nLAB_00066dd4:\n  puVar2 = PTR___gmpn_toom3_sqr_0009d11c;\n  iVar11 = param_4 + iVar11;\n  *(int *)(param_1 + iVar15) = iVar8;\n  (*(code *)puVar2)(iVar11,param_1,iVar16,iVar14);\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(param_1,iVar17,param_2,iVar13,param_3,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)((int *)(param_1 + iVar15) + iVar13,param_1,iVar16,iVar14)\n  ;\n  iVar4 = param_4 + iVar13 * 0x18 + 0xc;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar4,iVar17,iVar16,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1,param_2,iVar13,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1 + iVar13 * 0x18,iVar12,param_3,iVar14);\n  (*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)\n            (param_1,iVar13,0,iVar3,iVar4,param_4,iVar11,param_3 * 2,iVar14);\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type 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 ;) (expression_statement "iVar13 = param_3 + 3 >> 2;" (assignment_expression "iVar13 = param_3 + 3 >> 2" identifier = (binary_expression "param_3 + 3 >> 2" (binary_expression "param_3 + 3" identifier + number_literal) >> number_literal)) ;) (expression_statement "iVar15 = iVar13 * 4;" (assignment_expression "iVar15 = iVar13 * 4" identifier = (binary_expression "iVar13 * 4" identifier * number_literal)) ;) (expression_statement "iVar11 = iVar13 * 0x10 + 8;" (assignment_expression "iVar11 = iVar13 * 0x10 + 8" identifier = (binary_expression "iVar13 * 0x10 + 8" (binary_expression "iVar13 * 0x10" identifier * number_literal) + number_literal)) ;) (expression_statement "iVar17 = param_1 + iVar11;" (assignment_expression "iVar17 = param_1 + iVar11" identifier = (binary_expression "param_1 + iVar11" identifier + identifier)) ;) (expression_statement "iVar14 = param_4 + iVar13 * 0x20 + 0x14;" (assignment_expression "iVar14 = param_4 + iVar13 * 0x20 + 0x14" identifier = (binary_expression "param_4 + iVar13 * 0x20 + 0x14" (binary_expression "param_4 + iVar13 * 0x20" identifier + (binary_expression "iVar13 * 0x20" identifier * number_literal)) + number_literal)) ;) (expression_statement "param_3 = iVar13 * -3 + param_3;" (assignment_expression "param_3 = iVar13 * -3 + param_3" identifier = (binary_expression "iVar13 * -3 + param_3" (binary_expression "iVar13 * -3" identifier * number_literal) + identifier)) ;) (expression_statement "(*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(param_1,iVar17,param_2,iVar13,param_3,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(param_1,iVar17,param_2,iVar13,param_3,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)" ( (pointer_expression "*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288" * (cast_expression "(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar17,param_2,iVar13,param_3,iVar14)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar16 = iVar13 + 1;" (assignment_expression "iVar16 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_4,param_1,iVar16,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_4,param_1,iVar16,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" ( (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" * (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4,param_1,iVar16,iVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar3 = param_4 + iVar13 * 8 + 4;" (assignment_expression "iVar3 = param_4 + iVar13 * 8 + 4" identifier = (binary_expression "param_4 + iVar13 * 8 + 4" (binary_expression "param_4 + iVar13 * 8" identifier + (binary_expression "iVar13 * 8" identifier * number_literal)) + number_literal)) ;) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar3,iVar17,iVar16,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar3,iVar17,iVar16,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" ( (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" * (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3,iVar17,iVar16,iVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar4 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_2,iVar13,1);" (assignment_expression "iVar4 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_2,iVar13,1)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_2,iVar13,1)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009d56c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009d56c" * (cast_expression "(code *)PTR___gmpn_lshift_0009d56c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,iVar13,1)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar5 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,param_2 + iVar15,iVar13);" (assignment_expression "iVar5 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,param_2 + iVar15,iVar13)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,param_2 + iVar15,iVar13)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_0009d334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_0009d334" * (cast_expression "(code *)PTR___gmpn_add_n_0009d334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_1,param_2 + iVar15,iVar13)" ( identifier , identifier , (binary_expression "param_2 + iVar15" identifier + identifier) , identifier )))) ;) (expression_statement "iVar6 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);" (assignment_expression "iVar6 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009d56c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009d56c" * (cast_expression "(code *)PTR___gmpn_lshift_0009d56c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_1,iVar13,1)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar12 = param_2 + iVar15 + iVar15;" (assignment_expression "iVar12 = param_2 + iVar15 + iVar15" identifier = (binary_expression "param_2 + iVar15 + iVar15" (binary_expression "param_2 + iVar15" identifier + identifier) + identifier)) ;) (expression_statement "iVar7 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,iVar13);" (assignment_expression "iVar7 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,iVar13)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,iVar13)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_0009d334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_0009d334" * (cast_expression "(code *)PTR___gmpn_add_n_0009d334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_1,iVar12,iVar13)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar8 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009d56c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009d56c" * (cast_expression "(code *)PTR___gmpn_lshift_0009d56c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_1,iVar13,1)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar12 = iVar12 + iVar15;" (assignment_expression "iVar12 = iVar12 + iVar15" identifier = (binary_expression "iVar12 + iVar15" identifier + identifier)) ;) (expression_statement "iVar8 = (iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2 + iVar8;" (assignment_expression "iVar8 = (iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2 + iVar8" identifier = (binary_expression "(iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2 + iVar8" (binary_expression "(iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2" (parenthesized_expression "(iVar6 + iVar7 + (iVar4 + iVar5) * 2)" ( (binary_expression "iVar6 + iVar7 + (iVar4 + iVar5) * 2" (binary_expression "iVar6 + iVar7" identifier + identifier) + (binary_expression "(iVar4 + iVar5) * 2" (parenthesized_expression "(iVar4 + iVar5)" ( (binary_expression "iVar4 + iVar5" identifier + identifier) )) * number_literal)) )) * number_literal) + identifier)) ;) (if_statement "if ((param_3 == 0) ||\n     (iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0))\n  goto LAB_00066dd4;" if (parenthesized_expression "((param_3 == 0) ||\n     (iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0))" ( (binary_expression "(param_3 == 0) ||\n     (iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0)" (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0)" ( (comma_expression "iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0" (assignment_expression "iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_0009d334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_0009d334" * (cast_expression "(code *)PTR___gmpn_add_n_0009d334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_1,iVar12,param_3)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00066dd4;" goto statement_identifier ;)) (if_statement "if (param_3 < iVar13) {\n    piVar9 = (int *)(param_1 + param_3 * 4);\n    iVar4 = *piVar9;\n    *piVar9 = iVar4 + 1;\n    if (iVar4 + 1 != 0) goto LAB_00066dd4;\n    iVar4 = param_3 + 2;\n    if (param_3 + 1 < iVar13) {\n      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);\n      iVar5 = *piVar10 + 1;\n      *piVar10 = iVar5;\n      while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }\n      goto LAB_00066dd4;\n    }\n  }" if (parenthesized_expression "(param_3 < iVar13)" ( (binary_expression "param_3 < iVar13" identifier < identifier) )) (compound_statement "{\n    piVar9 = (int *)(param_1 + param_3 * 4);\n    iVar4 = *piVar9;\n    *piVar9 = iVar4 + 1;\n    if (iVar4 + 1 != 0) goto LAB_00066dd4;\n    iVar4 = param_3 + 2;\n    if (param_3 + 1 < iVar13) {\n      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);\n      iVar5 = *piVar10 + 1;\n      *piVar10 = iVar5;\n      while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }\n      goto LAB_00066dd4;\n    }\n  }" { (expression_statement "piVar9 = (int *)(param_1 + param_3 * 4);" (assignment_expression "piVar9 = (int *)(param_1 + param_3 * 4)" identifier = (cast_expression "(int *)(param_1 + param_3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + param_3 * 4)" ( (binary_expression "param_1 + param_3 * 4" identifier + (binary_expression "param_3 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar4 = *piVar9;" (assignment_expression "iVar4 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "*piVar9 = iVar4 + 1;" (assignment_expression "*piVar9 = iVar4 + 1" (pointer_expression "*piVar9" * identifier) = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (if_statement "if (iVar4 + 1 != 0) goto LAB_00066dd4;" if (parenthesized_expression "(iVar4 + 1 != 0)" ( (binary_expression "iVar4 + 1 != 0" (binary_expression "iVar4 + 1" identifier + number_literal) != number_literal) )) (goto_statement "goto LAB_00066dd4;" goto statement_identifier ;)) (expression_statement "iVar4 = param_3 + 2;" (assignment_expression "iVar4 = param_3 + 2" identifier = (binary_expression "param_3 + 2" identifier + number_literal)) ;) (if_statement "if (param_3 + 1 < iVar13) {\n      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);\n      iVar5 = *piVar10 + 1;\n      *piVar10 = iVar5;\n      while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }\n      goto LAB_00066dd4;\n    }" if (parenthesized_expression "(param_3 + 1 < iVar13)" ( (binary_expression "param_3 + 1 < iVar13" (binary_expression "param_3 + 1" identifier + number_literal) < identifier) )) (compound_statement "{\n      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);\n      iVar5 = *piVar10 + 1;\n      *piVar10 = iVar5;\n      while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }\n      goto LAB_00066dd4;\n    }" { (expression_statement "piVar10 = (int *)(param_1 + (param_3 + 1) * 4);" (assignment_expression "piVar10 = (int *)(param_1 + (param_3 + 1) * 4)" identifier = (cast_expression "(int *)(param_1 + (param_3 + 1) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + (param_3 + 1) * 4)" ( (binary_expression "param_1 + (param_3 + 1) * 4" identifier + (binary_expression "(param_3 + 1) * 4" (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) )) * number_literal)) )))) ;) (expression_statement "iVar5 = *piVar10 + 1;" (assignment_expression "iVar5 = *piVar10 + 1" identifier = (binary_expression "*piVar10 + 1" (pointer_expression "*piVar10" * identifier) + number_literal)) ;) (expression_statement "*piVar10 = iVar5;" (assignment_expression "*piVar10 = iVar5" (pointer_expression "*piVar10" * identifier) = identifier) ;) (while_statement "while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }" while (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }" { (expression_statement "bVar1 = iVar13 == iVar4;" (assignment_expression "bVar1 = iVar13 == iVar4" identifier = (binary_expression "iVar13 == iVar4" identifier == identifier)) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (if_statement "if (bVar1) goto LAB_00066fac;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_00066fac;" goto statement_identifier ;)) (expression_statement "iVar5 = piVar9[2] + 1;" (assignment_expression "iVar5 = piVar9[2] + 1" identifier = (binary_expression "piVar9[2] + 1" (subscript_expression "piVar9[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar9[2] = iVar5;" (assignment_expression "piVar9[2] = iVar5" (subscript_expression "piVar9[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;) })) (goto_statement "goto LAB_00066dd4;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00066fac:\n  iVar8 = iVar8 + 1;" statement_identifier : (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_00066dd4:\n  puVar2 = PTR___gmpn_toom3_sqr_0009d11c;" statement_identifier : (expression_statement "puVar2 = PTR___gmpn_toom3_sqr_0009d11c;" (assignment_expression "puVar2 = PTR___gmpn_toom3_sqr_0009d11c" identifier = identifier) ;)) (expression_statement "iVar11 = param_4 + iVar11;" (assignment_expression "iVar11 = param_4 + iVar11" identifier = (binary_expression "param_4 + iVar11" identifier + identifier)) ;) (expression_statement "*(int *)(param_1 + iVar15) = iVar8;" (assignment_expression "*(int *)(param_1 + iVar15) = iVar8" (pointer_expression "*(int *)(param_1 + iVar15)" * (cast_expression "(int *)(param_1 + iVar15)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar15)" ( (binary_expression "param_1 + iVar15" identifier + identifier) )))) = identifier) ;) (expression_statement "(*(code *)puVar2)(iVar11,param_1,iVar16,iVar14);" (call_expression "(*(code *)puVar2)(iVar11,param_1,iVar16,iVar14)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11,param_1,iVar16,iVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(param_1,iVar17,param_2,iVar13,param_3,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(param_1,iVar17,param_2,iVar13,param_3,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)" ( (pointer_expression "*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528" * (cast_expression "(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar17,param_2,iVar13,param_3,iVar14)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)((int *)(param_1 + iVar15) + iVar13,param_1,iVar16,iVar14)\n  ;" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)((int *)(param_1 + iVar15) + iVar13,param_1,iVar16,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" ( (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" * (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((int *)(param_1 + iVar15) + iVar13,param_1,iVar16,iVar14)" ( (binary_expression "(int *)(param_1 + iVar15) + iVar13" (cast_expression "(int *)(param_1 + iVar15)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar15)" ( (binary_expression "param_1 + iVar15" identifier + identifier) ))) + identifier) , identifier , identifier , identifier ))) ;) (expression_statement "iVar4 = param_4 + iVar13 * 0x18 + 0xc;" (assignment_expression "iVar4 = param_4 + iVar13 * 0x18 + 0xc" identifier = (binary_expression "param_4 + iVar13 * 0x18 + 0xc" (binary_expression "param_4 + iVar13 * 0x18" identifier + (binary_expression "iVar13 * 0x18" identifier * number_literal)) + number_literal)) ;) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar4,iVar17,iVar16,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar4,iVar17,iVar16,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" ( (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" * (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4,iVar17,iVar16,iVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1,param_2,iVar13,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1,param_2,iVar13,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" ( (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" * (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,iVar13,iVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1 + iVar13 * 0x18,iVar12,param_3,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1 + iVar13 * 0x18,iVar12,param_3,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" ( (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" * (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1 + iVar13 * 0x18,iVar12,param_3,iVar14)" ( (binary_expression "param_1 + iVar13 * 0x18" identifier + (binary_expression "iVar13 * 0x18" identifier * number_literal)) , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)\n            (param_1,iVar13,0,iVar3,iVar4,param_4,iVar11,param_3 * 2,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)\n            (param_1,iVar13,0,iVar3,iVar4,param_4,iVar11,param_3 * 2,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)" ( (pointer_expression "*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8" * (cast_expression "(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar13,0,iVar3,iVar4,param_4,iVar11,param_3 * 2,iVar14)" ( identifier , identifier , number_literal , identifier , identifier , identifier , identifier , (binary_expression "param_3 * 2" identifier * number_literal) , 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) ))) (compound_statement { (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 (pointer_declarator * 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 ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (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) + 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 , IDENT ))) ;) (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 , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression 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 ))) ;) (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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (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 IDENT = (binary_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 , 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 = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) * LIT)) )) * LIT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_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 (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (binary_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 (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 , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) + IDENT) , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression 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 ))) ;) (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 ( (binary_expression IDENT + (binary_expression IDENT * LIT)) , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT , IDENT , IDENT , IDENT , IDENT , (binary_expression IDENT * LIT) , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void __gmpn_toom4_sqr(int param_1,int param_2,int param_3,int param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  \n  iVar13 = param_3 + 3 >> 2;\n  iVar15 = iVar13 * 4;\n  iVar11 = iVar13 * 0x10 + 8;\n  iVar17 = param_1 + iVar11;\n  iVar14 = param_4 + iVar13 * 0x20 + 0x14;\n  param_3 = iVar13 * -3 + param_3;\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(param_1,iVar17,param_2,iVar13,param_3,iVar14);\n  iVar16 = iVar13 + 1;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_4,param_1,iVar16,iVar14);\n  iVar3 = param_4 + iVar13 * 8 + 4;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar3,iVar17,iVar16,iVar14);\n  iVar4 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_2,iVar13,1);\n  iVar5 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,param_2 + iVar15,iVar13);\n  iVar6 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);\n  iVar12 = param_2 + iVar15 + iVar15;\n  iVar7 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,iVar13);\n  iVar8 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);\n  iVar12 = iVar12 + iVar15;\n  iVar8 = (iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2 + iVar8;\n  if ((param_3 == 0) ||\n     (iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0))\n  goto LAB_00066dd4;\n  if (param_3 < iVar13) {\n    piVar9 = (int *)(param_1 + param_3 * 4);\n    iVar4 = *piVar9;\n    *piVar9 = iVar4 + 1;\n    if (iVar4 + 1 != 0) goto LAB_00066dd4;\n    iVar4 = param_3 + 2;\n    if (param_3 + 1 < iVar13) {\n      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);\n      iVar5 = *piVar10 + 1;\n      *piVar10 = iVar5;\n      while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }\n      goto LAB_00066dd4;\n    }\n  }\nLAB_00066fac:\n  iVar8 = iVar8 + 1;\nLAB_00066dd4:\n  puVar2 = PTR___gmpn_toom3_sqr_0009d11c;\n  iVar11 = param_4 + iVar11;\n  *(int *)(param_1 + iVar15) = iVar8;\n  (*(code *)puVar2)(iVar11,param_1,iVar16,iVar14);\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(param_1,iVar17,param_2,iVar13,param_3,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)((int *)(param_1 + iVar15) + iVar13,param_1,iVar16,iVar14)\n  ;\n  iVar4 = param_4 + iVar13 * 0x18 + 0xc;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar4,iVar17,iVar16,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1,param_2,iVar13,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1 + iVar13 * 0x18,iVar12,param_3,iVar14);\n  (*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)\n            (param_1,iVar13,0,iVar3,iVar4,param_4,iVar11,param_3 * 2,iVar14);\n  return;\n}" (primitive_type "void") (function_declarator "__gmpn_toom4_sqr(int param_1,int param_2,int param_3,int param_4)" (identifier "__gmpn_toom4_sqr") (parameter_list "(int param_1,int param_2,int param_3,int param_4)" (( "(") (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")) () ")"))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  \n  iVar13 = param_3 + 3 >> 2;\n  iVar15 = iVar13 * 4;\n  iVar11 = iVar13 * 0x10 + 8;\n  iVar17 = param_1 + iVar11;\n  iVar14 = param_4 + iVar13 * 0x20 + 0x14;\n  param_3 = iVar13 * -3 + param_3;\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(param_1,iVar17,param_2,iVar13,param_3,iVar14);\n  iVar16 = iVar13 + 1;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_4,param_1,iVar16,iVar14);\n  iVar3 = param_4 + iVar13 * 8 + 4;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar3,iVar17,iVar16,iVar14);\n  iVar4 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_2,iVar13,1);\n  iVar5 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,param_2 + iVar15,iVar13);\n  iVar6 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);\n  iVar12 = param_2 + iVar15 + iVar15;\n  iVar7 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,iVar13);\n  iVar8 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);\n  iVar12 = iVar12 + iVar15;\n  iVar8 = (iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2 + iVar8;\n  if ((param_3 == 0) ||\n     (iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0))\n  goto LAB_00066dd4;\n  if (param_3 < iVar13) {\n    piVar9 = (int *)(param_1 + param_3 * 4);\n    iVar4 = *piVar9;\n    *piVar9 = iVar4 + 1;\n    if (iVar4 + 1 != 0) goto LAB_00066dd4;\n    iVar4 = param_3 + 2;\n    if (param_3 + 1 < iVar13) {\n      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);\n      iVar5 = *piVar10 + 1;\n      *piVar10 = iVar5;\n      while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }\n      goto LAB_00066dd4;\n    }\n  }\nLAB_00066fac:\n  iVar8 = iVar8 + 1;\nLAB_00066dd4:\n  puVar2 = PTR___gmpn_toom3_sqr_0009d11c;\n  iVar11 = param_4 + iVar11;\n  *(int *)(param_1 + iVar15) = iVar8;\n  (*(code *)puVar2)(iVar11,param_1,iVar16,iVar14);\n  (*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(param_1,iVar17,param_2,iVar13,param_3,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)((int *)(param_1 + iVar15) + iVar13,param_1,iVar16,iVar14)\n  ;\n  iVar4 = param_4 + iVar13 * 0x18 + 0xc;\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar4,iVar17,iVar16,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1,param_2,iVar13,iVar14);\n  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1 + iVar13 * 0x18,iVar12,param_3,iVar14);\n  (*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)\n            (param_1,iVar13,0,iVar3,iVar4,param_4,iVar11,param_3 * 2,iVar14);\n  return;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (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") (; ";")) (expression_statement "iVar13 = param_3 + 3 >> 2;" (assignment_expression "iVar13 = param_3 + 3 >> 2" (identifier "iVar13") (= "=") (binary_expression "param_3 + 3 >> 2" (binary_expression "param_3 + 3" (identifier "param_3") (+ "+") (number_literal "3")) (>> ">>") (number_literal "2"))) (; ";")) (expression_statement "iVar15 = iVar13 * 4;" (assignment_expression "iVar15 = iVar13 * 4" (identifier "iVar15") (= "=") (binary_expression "iVar13 * 4" (identifier "iVar13") (* "*") (number_literal "4"))) (; ";")) (expression_statement "iVar11 = iVar13 * 0x10 + 8;" (assignment_expression "iVar11 = iVar13 * 0x10 + 8" (identifier "iVar11") (= "=") (binary_expression "iVar13 * 0x10 + 8" (binary_expression "iVar13 * 0x10" (identifier "iVar13") (* "*") (number_literal "0x10")) (+ "+") (number_literal "8"))) (; ";")) (expression_statement "iVar17 = param_1 + iVar11;" (assignment_expression "iVar17 = param_1 + iVar11" (identifier "iVar17") (= "=") (binary_expression "param_1 + iVar11" (identifier "param_1") (+ "+") (identifier "iVar11"))) (; ";")) (expression_statement "iVar14 = param_4 + iVar13 * 0x20 + 0x14;" (assignment_expression "iVar14 = param_4 + iVar13 * 0x20 + 0x14" (identifier "iVar14") (= "=") (binary_expression "param_4 + iVar13 * 0x20 + 0x14" (binary_expression "param_4 + iVar13 * 0x20" (identifier "param_4") (+ "+") (binary_expression "iVar13 * 0x20" (identifier "iVar13") (* "*") (number_literal "0x20"))) (+ "+") (number_literal "0x14"))) (; ";")) (expression_statement "param_3 = iVar13 * -3 + param_3;" (assignment_expression "param_3 = iVar13 * -3 + param_3" (identifier "param_3") (= "=") (binary_expression "iVar13 * -3 + param_3" (binary_expression "iVar13 * -3" (identifier "iVar13") (* "*") (number_literal "-3")) (+ "+") (identifier "param_3"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(param_1,iVar17,param_2,iVar13,param_3,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(param_1,iVar17,param_2,iVar13,param_3,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288" (* "*") (cast_expression "(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom_eval_dgr3_pm2_0009d288"))) () ")")) (argument_list "(param_1,iVar17,param_2,iVar13,param_3,iVar14)" (( "(") (identifier "param_1") (, ",") (identifier "iVar17") (, ",") (identifier "param_2") (, ",") (identifier "iVar13") (, ",") (identifier "param_3") (, ",") (identifier "iVar14") () ")"))) (; ";")) (expression_statement "iVar16 = iVar13 + 1;" (assignment_expression "iVar16 = iVar13 + 1" (identifier "iVar16") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_4,param_1,iVar16,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_4,param_1,iVar16,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" (* "*") (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom3_sqr_0009d11c"))) () ")")) (argument_list "(param_4,param_1,iVar16,iVar14)" (( "(") (identifier "param_4") (, ",") (identifier "param_1") (, ",") (identifier "iVar16") (, ",") (identifier "iVar14") () ")"))) (; ";")) (expression_statement "iVar3 = param_4 + iVar13 * 8 + 4;" (assignment_expression "iVar3 = param_4 + iVar13 * 8 + 4" (identifier "iVar3") (= "=") (binary_expression "param_4 + iVar13 * 8 + 4" (binary_expression "param_4 + iVar13 * 8" (identifier "param_4") (+ "+") (binary_expression "iVar13 * 8" (identifier "iVar13") (* "*") (number_literal "8"))) (+ "+") (number_literal "4"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar3,iVar17,iVar16,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar3,iVar17,iVar16,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" (* "*") (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom3_sqr_0009d11c"))) () ")")) (argument_list "(iVar3,iVar17,iVar16,iVar14)" (( "(") (identifier "iVar3") (, ",") (identifier "iVar17") (, ",") (identifier "iVar16") (, ",") (identifier "iVar14") () ")"))) (; ";")) (expression_statement "iVar4 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_2,iVar13,1);" (assignment_expression "iVar4 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_2,iVar13,1)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_2,iVar13,1)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009d56c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_lshift_0009d56c" (* "*") (cast_expression "(code *)PTR___gmpn_lshift_0009d56c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_lshift_0009d56c"))) () ")")) (argument_list "(param_1,param_2,iVar13,1)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "iVar13") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "iVar5 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,param_2 + iVar15,iVar13);" (assignment_expression "iVar5 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,param_2 + iVar15,iVar13)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,param_2 + iVar15,iVar13)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_0009d334)" (( "(") (pointer_expression "*(code *)PTR___gmpn_add_n_0009d334" (* "*") (cast_expression "(code *)PTR___gmpn_add_n_0009d334" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_add_n_0009d334"))) () ")")) (argument_list "(param_1,param_1,param_2 + iVar15,iVar13)" (( "(") (identifier "param_1") (, ",") (identifier "param_1") (, ",") (binary_expression "param_2 + iVar15" (identifier "param_2") (+ "+") (identifier "iVar15")) (, ",") (identifier "iVar13") () ")")))) (; ";")) (expression_statement "iVar6 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);" (assignment_expression "iVar6 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009d56c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_lshift_0009d56c" (* "*") (cast_expression "(code *)PTR___gmpn_lshift_0009d56c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_lshift_0009d56c"))) () ")")) (argument_list "(param_1,param_1,iVar13,1)" (( "(") (identifier "param_1") (, ",") (identifier "param_1") (, ",") (identifier "iVar13") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "iVar12 = param_2 + iVar15 + iVar15;" (assignment_expression "iVar12 = param_2 + iVar15 + iVar15" (identifier "iVar12") (= "=") (binary_expression "param_2 + iVar15 + iVar15" (binary_expression "param_2 + iVar15" (identifier "param_2") (+ "+") (identifier "iVar15")) (+ "+") (identifier "iVar15"))) (; ";")) (expression_statement "iVar7 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,iVar13);" (assignment_expression "iVar7 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,iVar13)" (identifier "iVar7") (= "=") (call_expression "(*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,iVar13)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_0009d334)" (( "(") (pointer_expression "*(code *)PTR___gmpn_add_n_0009d334" (* "*") (cast_expression "(code *)PTR___gmpn_add_n_0009d334" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_add_n_0009d334"))) () ")")) (argument_list "(param_1,param_1,iVar12,iVar13)" (( "(") (identifier "param_1") (, ",") (identifier "param_1") (, ",") (identifier "iVar12") (, ",") (identifier "iVar13") () ")")))) (; ";")) (expression_statement "iVar8 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1)" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009d56c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_lshift_0009d56c" (* "*") (cast_expression "(code *)PTR___gmpn_lshift_0009d56c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_lshift_0009d56c"))) () ")")) (argument_list "(param_1,param_1,iVar13,1)" (( "(") (identifier "param_1") (, ",") (identifier "param_1") (, ",") (identifier "iVar13") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "iVar12 = iVar12 + iVar15;" (assignment_expression "iVar12 = iVar12 + iVar15" (identifier "iVar12") (= "=") (binary_expression "iVar12 + iVar15" (identifier "iVar12") (+ "+") (identifier "iVar15"))) (; ";")) (expression_statement "iVar8 = (iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2 + iVar8;" (assignment_expression "iVar8 = (iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2 + iVar8" (identifier "iVar8") (= "=") (binary_expression "(iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2 + iVar8" (binary_expression "(iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2" (parenthesized_expression "(iVar6 + iVar7 + (iVar4 + iVar5) * 2)" (( "(") (binary_expression "iVar6 + iVar7 + (iVar4 + iVar5) * 2" (binary_expression "iVar6 + iVar7" (identifier "iVar6") (+ "+") (identifier "iVar7")) (+ "+") (binary_expression "(iVar4 + iVar5) * 2" (parenthesized_expression "(iVar4 + iVar5)" (( "(") (binary_expression "iVar4 + iVar5" (identifier "iVar4") (+ "+") (identifier "iVar5")) () ")")) (* "*") (number_literal "2"))) () ")")) (* "*") (number_literal "2")) (+ "+") (identifier "iVar8"))) (; ";")) (if_statement "if ((param_3 == 0) ||\n     (iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0))\n  goto LAB_00066dd4;" (if "if") (parenthesized_expression "((param_3 == 0) ||\n     (iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0))" (( "(") (binary_expression "(param_3 == 0) ||\n     (iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0)" (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0)" (( "(") (comma_expression "iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0" (assignment_expression "iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_0009d334)" (( "(") (pointer_expression "*(code *)PTR___gmpn_add_n_0009d334" (* "*") (cast_expression "(code *)PTR___gmpn_add_n_0009d334" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_add_n_0009d334"))) () ")")) (argument_list "(param_1,param_1,iVar12,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_1") (, ",") (identifier "iVar12") (, ",") (identifier "param_3") () ")")))) (, ",") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_00066dd4;" (goto "goto") (statement_identifier "LAB_00066dd4") (; ";"))) (if_statement "if (param_3 < iVar13) {\n    piVar9 = (int *)(param_1 + param_3 * 4);\n    iVar4 = *piVar9;\n    *piVar9 = iVar4 + 1;\n    if (iVar4 + 1 != 0) goto LAB_00066dd4;\n    iVar4 = param_3 + 2;\n    if (param_3 + 1 < iVar13) {\n      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);\n      iVar5 = *piVar10 + 1;\n      *piVar10 = iVar5;\n      while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }\n      goto LAB_00066dd4;\n    }\n  }" (if "if") (parenthesized_expression "(param_3 < iVar13)" (( "(") (binary_expression "param_3 < iVar13" (identifier "param_3") (< "<") (identifier "iVar13")) () ")")) (compound_statement "{\n    piVar9 = (int *)(param_1 + param_3 * 4);\n    iVar4 = *piVar9;\n    *piVar9 = iVar4 + 1;\n    if (iVar4 + 1 != 0) goto LAB_00066dd4;\n    iVar4 = param_3 + 2;\n    if (param_3 + 1 < iVar13) {\n      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);\n      iVar5 = *piVar10 + 1;\n      *piVar10 = iVar5;\n      while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }\n      goto LAB_00066dd4;\n    }\n  }" ({ "{") (expression_statement "piVar9 = (int *)(param_1 + param_3 * 4);" (assignment_expression "piVar9 = (int *)(param_1 + param_3 * 4)" (identifier "piVar9") (= "=") (cast_expression "(int *)(param_1 + param_3 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + param_3 * 4)" (( "(") (binary_expression "param_1 + param_3 * 4" (identifier "param_1") (+ "+") (binary_expression "param_3 * 4" (identifier "param_3") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "iVar4 = *piVar9;" (assignment_expression "iVar4 = *piVar9" (identifier "iVar4") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (expression_statement "*piVar9 = iVar4 + 1;" (assignment_expression "*piVar9 = iVar4 + 1" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar4 + 1 != 0) goto LAB_00066dd4;" (if "if") (parenthesized_expression "(iVar4 + 1 != 0)" (( "(") (binary_expression "iVar4 + 1 != 0" (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00066dd4;" (goto "goto") (statement_identifier "LAB_00066dd4") (; ";"))) (expression_statement "iVar4 = param_3 + 2;" (assignment_expression "iVar4 = param_3 + 2" (identifier "iVar4") (= "=") (binary_expression "param_3 + 2" (identifier "param_3") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (param_3 + 1 < iVar13) {\n      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);\n      iVar5 = *piVar10 + 1;\n      *piVar10 = iVar5;\n      while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }\n      goto LAB_00066dd4;\n    }" (if "if") (parenthesized_expression "(param_3 + 1 < iVar13)" (( "(") (binary_expression "param_3 + 1 < iVar13" (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1")) (< "<") (identifier "iVar13")) () ")")) (compound_statement "{\n      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);\n      iVar5 = *piVar10 + 1;\n      *piVar10 = iVar5;\n      while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }\n      goto LAB_00066dd4;\n    }" ({ "{") (expression_statement "piVar10 = (int *)(param_1 + (param_3 + 1) * 4);" (assignment_expression "piVar10 = (int *)(param_1 + (param_3 + 1) * 4)" (identifier "piVar10") (= "=") (cast_expression "(int *)(param_1 + (param_3 + 1) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + (param_3 + 1) * 4)" (( "(") (binary_expression "param_1 + (param_3 + 1) * 4" (identifier "param_1") (+ "+") (binary_expression "(param_3 + 1) * 4" (parenthesized_expression "(param_3 + 1)" (( "(") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "iVar5 = *piVar10 + 1;" (assignment_expression "iVar5 = *piVar10 + 1" (identifier "iVar5") (= "=") (binary_expression "*piVar10 + 1" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*piVar10 = iVar5;" (assignment_expression "*piVar10 = iVar5" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (= "=") (identifier "iVar5")) (; ";")) (while_statement "while (iVar5 == 0) {\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }" (while "while") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        bVar1 = iVar13 == iVar4;\n        iVar4 = iVar4 + 1;\n        if (bVar1) goto LAB_00066fac;\n        iVar5 = piVar9[2] + 1;\n        piVar9[2] = iVar5;\n        piVar9 = piVar9 + 1;\n      }" ({ "{") (expression_statement "bVar1 = iVar13 == iVar4;" (assignment_expression "bVar1 = iVar13 == iVar4" (identifier "bVar1") (= "=") (binary_expression "iVar13 == iVar4" (identifier "iVar13") (== "==") (identifier "iVar4"))) (; ";")) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar1) goto LAB_00066fac;" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (goto_statement "goto LAB_00066fac;" (goto "goto") (statement_identifier "LAB_00066fac") (; ";"))) (expression_statement "iVar5 = piVar9[2] + 1;" (assignment_expression "iVar5 = piVar9[2] + 1" (identifier "iVar5") (= "=") (binary_expression "piVar9[2] + 1" (subscript_expression "piVar9[2]" (identifier "piVar9") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar9[2] = iVar5;" (assignment_expression "piVar9[2] = iVar5" (subscript_expression "piVar9[2]" (identifier "piVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" (identifier "piVar9") (= "=") (binary_expression "piVar9 + 1" (identifier "piVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00066dd4;" (goto "goto") (statement_identifier "LAB_00066dd4") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00066fac:\n  iVar8 = iVar8 + 1;" (statement_identifier "LAB_00066fac") (: ":") (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) (; ";"))) (labeled_statement "LAB_00066dd4:\n  puVar2 = PTR___gmpn_toom3_sqr_0009d11c;" (statement_identifier "LAB_00066dd4") (: ":") (expression_statement "puVar2 = PTR___gmpn_toom3_sqr_0009d11c;" (assignment_expression "puVar2 = PTR___gmpn_toom3_sqr_0009d11c" (identifier "puVar2") (= "=") (identifier "PTR___gmpn_toom3_sqr_0009d11c")) (; ";"))) (expression_statement "iVar11 = param_4 + iVar11;" (assignment_expression "iVar11 = param_4 + iVar11" (identifier "iVar11") (= "=") (binary_expression "param_4 + iVar11" (identifier "param_4") (+ "+") (identifier "iVar11"))) (; ";")) (expression_statement "*(int *)(param_1 + iVar15) = iVar8;" (assignment_expression "*(int *)(param_1 + iVar15) = iVar8" (pointer_expression "*(int *)(param_1 + iVar15)" (* "*") (cast_expression "(int *)(param_1 + iVar15)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar15)" (( "(") (binary_expression "param_1 + iVar15" (identifier "param_1") (+ "+") (identifier "iVar15")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "(*(code *)puVar2)(iVar11,param_1,iVar16,iVar14);" (call_expression "(*(code *)puVar2)(iVar11,param_1,iVar16,iVar14)" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "(iVar11,param_1,iVar16,iVar14)" (( "(") (identifier "iVar11") (, ",") (identifier "param_1") (, ",") (identifier "iVar16") (, ",") (identifier "iVar14") () ")"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(param_1,iVar17,param_2,iVar13,param_3,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(param_1,iVar17,param_2,iVar13,param_3,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528" (* "*") (cast_expression "(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom_eval_dgr3_pm1_0009d528"))) () ")")) (argument_list "(param_1,iVar17,param_2,iVar13,param_3,iVar14)" (( "(") (identifier "param_1") (, ",") (identifier "iVar17") (, ",") (identifier "param_2") (, ",") (identifier "iVar13") (, ",") (identifier "param_3") (, ",") (identifier "iVar14") () ")"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)((int *)(param_1 + iVar15) + iVar13,param_1,iVar16,iVar14)\n  ;" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)((int *)(param_1 + iVar15) + iVar13,param_1,iVar16,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" (* "*") (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom3_sqr_0009d11c"))) () ")")) (argument_list "((int *)(param_1 + iVar15) + iVar13,param_1,iVar16,iVar14)" (( "(") (binary_expression "(int *)(param_1 + iVar15) + iVar13" (cast_expression "(int *)(param_1 + iVar15)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar15)" (( "(") (binary_expression "param_1 + iVar15" (identifier "param_1") (+ "+") (identifier "iVar15")) () ")"))) (+ "+") (identifier "iVar13")) (, ",") (identifier "param_1") (, ",") (identifier "iVar16") (, ",") (identifier "iVar14") () ")"))) (; ";")) (expression_statement "iVar4 = param_4 + iVar13 * 0x18 + 0xc;" (assignment_expression "iVar4 = param_4 + iVar13 * 0x18 + 0xc" (identifier "iVar4") (= "=") (binary_expression "param_4 + iVar13 * 0x18 + 0xc" (binary_expression "param_4 + iVar13 * 0x18" (identifier "param_4") (+ "+") (binary_expression "iVar13 * 0x18" (identifier "iVar13") (* "*") (number_literal "0x18"))) (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar4,iVar17,iVar16,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar4,iVar17,iVar16,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" (* "*") (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom3_sqr_0009d11c"))) () ")")) (argument_list "(iVar4,iVar17,iVar16,iVar14)" (( "(") (identifier "iVar4") (, ",") (identifier "iVar17") (, ",") (identifier "iVar16") (, ",") (identifier "iVar14") () ")"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1,param_2,iVar13,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1,param_2,iVar13,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" (* "*") (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom3_sqr_0009d11c"))) () ")")) (argument_list "(param_1,param_2,iVar13,iVar14)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "iVar13") (, ",") (identifier "iVar14") () ")"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1 + iVar13 * 0x18,iVar12,param_3,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1 + iVar13 * 0x18,iVar12,param_3,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom3_sqr_0009d11c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom3_sqr_0009d11c" (* "*") (cast_expression "(code *)PTR___gmpn_toom3_sqr_0009d11c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom3_sqr_0009d11c"))) () ")")) (argument_list "(param_1 + iVar13 * 0x18,iVar12,param_3,iVar14)" (( "(") (binary_expression "param_1 + iVar13 * 0x18" (identifier "param_1") (+ "+") (binary_expression "iVar13 * 0x18" (identifier "iVar13") (* "*") (number_literal "0x18"))) (, ",") (identifier "iVar12") (, ",") (identifier "param_3") (, ",") (identifier "iVar14") () ")"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)\n            (param_1,iVar13,0,iVar3,iVar4,param_4,iVar11,param_3 * 2,iVar14);" (call_expression "(*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)\n            (param_1,iVar13,0,iVar3,iVar4,param_4,iVar11,param_3 * 2,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8" (* "*") (cast_expression "(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom_interpolate_7pts_0009d3c8"))) () ")")) (argument_list "(param_1,iVar13,0,iVar3,iVar4,param_4,iVar11,param_3 * 2,iVar14)" (( "(") (identifier "param_1") (, ",") (identifier "iVar13") (, ",") (number_literal "0") (, ",") (identifier "iVar3") (, ",") (identifier "iVar4") (, ",") (identifier "param_4") (, ",") (identifier "iVar11") (, ",") (binary_expression "param_3 * 2" (identifier "param_3") (* "*") (number_literal "2")) (, ",") (identifier "iVar14") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 var_2,type_2 var_5,type_3 var_1,type_1 var_4)

{
  bool bVar1;
  type_4 *puVar2;
  int var_9;
  int var_10;
  int var_7;
  int var_8;
  int var_11;
  type_1 var_14;
  type_5 var_15;
  type_5 var_13;
  type_2 var_6;
  int var_3;
  type_1 pmVar13;
  int var_12;
  int iVar15;
  type_1 pmVar16;
  
  var_3 = var_1 + 3 >> 2;
  pmVar16 = var_2 + var_3 * 4 + 2;
  pmVar13 = var_4 + var_3 * 8 + 5;
  var_12 = var_3 * -3 + var_1;
  (*(type_6 *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(var_2,pmVar16,var_5,var_3,var_12,pmVar13);
  iVar15 = var_3 + 1;
  (*(type_6 *)PTR___gmpn_toom3_sqr_0009d11c)(var_4,var_2,iVar15,pmVar13);
  (*(type_6 *)PTR___gmpn_toom3_sqr_0009d11c)(var_4 + var_3 * 2 + 1,pmVar16,iVar15,pmVar13);
  var_9 = (*(type_6 *)PTR___gmpn_lshift_0009d56c)(var_2,var_5,var_3,1);
  var_6 = var_5 + var_3;
  var_10 = (*(type_6 *)PTR___gmpn_add_n_0009d334)(var_2,var_2,var_6,var_3);
  var_7 = (*(type_6 *)PTR___gmpn_lshift_0009d56c)(var_2,var_2,var_3,1);
  var_6 = var_6 + var_3;
  var_8 = (*(type_6 *)PTR___gmpn_add_n_0009d334)(var_2,var_2,var_6,var_3);
  var_11 = (*(type_6 *)PTR___gmpn_lshift_0009d56c)(var_2,var_2,var_3,1);
  var_15 = (var_7 + var_8 + (var_9 + var_10) * 2) * 2 + var_11;
  if ((var_12 == 0) ||
     (var_9 = (*(type_6 *)PTR___gmpn_add_n_0009d334)(var_2,var_2,var_6 + var_3,var_12), var_9 == 0))
  goto LAB_00066dd4;
  if (var_12 < var_3) {
    var_14 = var_2 + var_12;
    var_13 = *var_14;
    *var_14 = var_13 + 1;
    if (var_13 + 1 != 0) goto LAB_00066dd4;
    var_9 = var_12 + 2;
    if (var_12 + 1 < var_3) {
      var_13 = var_2[var_12 + 1] + 1;
      var_2[var_12 + 1] = var_13;
      while (var_13 == 0) {
        bVar1 = var_3 == var_9;
        var_9 = var_9 + 1;
        if (bVar1) goto LAB_00066fac;
        var_13 = var_14[2] + 1;
        var_14[2] = var_13;
        var_14 = var_14 + 1;
      }
      goto LAB_00066dd4;
    }
  }
LAB_00066fac:
  var_15 = var_15 + 1;
LAB_00066dd4:
  puVar2 = PTR___gmpn_toom3_sqr_0009d11c;
  var_2[var_3] = var_15;
  (*(type_6 *)puVar2)(var_4 + var_3 * 4 + 2,var_2,iVar15,pmVar13);
  (*(type_6 *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(var_2,pmVar16,var_5,var_3,var_12,pmVar13);
  (*(type_6 *)PTR___gmpn_toom3_sqr_0009d11c)(var_2 + var_3 + var_3,var_2,iVar15,pmVar13);
  (*(type_6 *)PTR___gmpn_toom3_sqr_0009d11c)(var_4 + var_3 * 6 + 3,pmVar16,iVar15,pmVar13);
  (*(type_6 *)PTR___gmpn_toom3_sqr_0009d11c)(var_2,var_5,var_3,pmVar13);
  (*(type_6 *)PTR___gmpn_toom3_sqr_0009d11c)(var_2 + var_3 * 6,var_6 + var_3,var_12,pmVar13);
  (*(type_6 *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)
            (var_2,var_3,0,var_4 + var_3 * 2 + 1,var_4 + var_3 * 6 + 3,var_4,
             var_4 + var_3 * 4 + 2,var_12 * 2,pmVar13);
  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)))) body: (compound_statement (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: (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: (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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (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) (identifier)))) (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) (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 (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: (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: (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) (binary_expression left: (identifier) right: (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: (binary_expression left: (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) (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: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)))) right: (number_literal)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (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)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (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: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) 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: (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: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (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) (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 (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (identifier)) (identifier) (identifier) (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 (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 (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) (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) (number_literal) (identifier) (identifier) (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (return_statement))))

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

{
  bool bVar1;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int *piVar9;
  int *piVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  int iVar17;
  
  iVar13 = param_3 + 3 >> 2;
  iVar15 = iVar13 * 4;
  iVar11 = iVar13 * 0x10 + 8;
  iVar17 = param_1 + iVar11;
  iVar14 = param_4 + iVar13 * 0x20 + 0x14;
  param_3 = iVar13 * -3 + param_3;
  (*(code *)PTR___gmpn_toom_eval_dgr3_pm2_0009d288)(param_1,iVar17,param_2,iVar13,param_3,iVar14);
  iVar16 = iVar13 + 1;
  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_4,param_1,iVar16,iVar14);
  iVar3 = param_4 + iVar13 * 8 + 4;
  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar3,iVar17,iVar16,iVar14);
  iVar4 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_2,iVar13,1);
  iVar5 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,param_2 + iVar15,iVar13);
  iVar6 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);
  iVar12 = param_2 + iVar15 + iVar15;
  iVar7 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,iVar13);
  iVar8 = (*(code *)PTR___gmpn_lshift_0009d56c)(param_1,param_1,iVar13,1);
  iVar12 = iVar12 + iVar15;
  iVar8 = (iVar6 + iVar7 + (iVar4 + iVar5) * 2) * 2 + iVar8;
  if ((param_3 == 0) ||
     (iVar4 = (*(code *)PTR___gmpn_add_n_0009d334)(param_1,param_1,iVar12,param_3), iVar4 == 0))
  goto LAB_00066dd4;
  if (param_3 < iVar13) {
    piVar9 = (int *)(param_1 + param_3 * 4);
    iVar4 = *piVar9;
    *piVar9 = iVar4 + 1;
    if (iVar4 + 1 != 0) goto LAB_00066dd4;
    iVar4 = param_3 + 2;
    if (param_3 + 1 < iVar13) {
      piVar10 = (int *)(param_1 + (param_3 + 1) * 4);
      iVar5 = *piVar10 + 1;
      *piVar10 = iVar5;
      while (iVar5 == 0) {
        bVar1 = iVar13 == iVar4;
        iVar4 = iVar4 + 1;
        if (bVar1) goto LAB_00066fac;
        iVar5 = piVar9[2] + 1;
        piVar9[2] = iVar5;
        piVar9 = piVar9 + 1;
      }
      goto LAB_00066dd4;
    }
  }
LAB_00066fac:
  iVar8 = iVar8 + 1;
LAB_00066dd4:
  puVar2 = PTR___gmpn_toom3_sqr_0009d11c;
  iVar11 = param_4 + iVar11;
  *(int *)(param_1 + iVar15) = iVar8;
  (*(code *)puVar2)(iVar11,param_1,iVar16,iVar14);
  (*(code *)PTR___gmpn_toom_eval_dgr3_pm1_0009d528)(param_1,iVar17,param_2,iVar13,param_3,iVar14);
  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)((int *)(param_1 + iVar15) + iVar13,param_1,iVar16,iVar14)
  ;
  iVar4 = param_4 + iVar13 * 0x18 + 0xc;
  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(iVar4,iVar17,iVar16,iVar14);
  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1,param_2,iVar13,iVar14);
  (*(code *)PTR___gmpn_toom3_sqr_0009d11c)(param_1 + iVar13 * 0x18,iVar12,param_3,iVar14);
  (*(code *)PTR___gmpn_toom_interpolate_7pts_0009d3c8)
            (param_1,iVar13,0,iVar3,iVar4,param_4,iVar11,param_3 * 2,iVar14);
  return;
}

