
int __gmpn_toom_eval_dgr3_pm2
              (mp_ptr xp2,mp_ptr xm2,mp_srcptr xp,mp_size_t n,mp_size_t x3n,mp_ptr tp)

{
  undefined *puVar1;
  mp_limb_t __gmp_c;
  int iVar2;
  int iVar3;
  mp_limb_t mVar4;
  uint uVar5;
  mp_limb_t *pmVar6;
  uint *puVar7;
  mp_srcptr pmVar8;
  mp_ptr pmVar9;
  uint uVar10;
  mp_srcptr pmVar11;
  mp_ptr pmVar12;
  
  pmVar11 = xp + n * 2;
  iVar2 = (*(code *)PTR___gmpn_lshift_0009756c)(tp,pmVar11,n,2);
  pmVar9 = xp2 + n;
  iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(xp2,tp,xp,n);
  *pmVar9 = iVar3 + iVar2;
  mVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(tp,pmVar11 + n,x3n,2);
  pmVar11 = pmVar11 + n + n * -2;
  tp[x3n] = mVar4;
  puVar7 = tp + n;
  if (x3n < n) {
    iVar2 = x3n + 1;
    if ((iVar2 != 0) &&
       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,iVar2), iVar3 != 0)) {
      uVar5 = 1;
      if (n <= iVar2) goto LAB_00062354;
      iVar2 = x3n + 2;
      mVar4 = pmVar11[x3n + 1];
      tp[x3n + 1] = mVar4 + 1;
      if (mVar4 + 1 == 0) {
        pmVar8 = pmVar11 + x3n;
        pmVar12 = tp + x3n;
        do {
          uVar5 = 1;
          if (n == iVar2) goto LAB_00062354;
          mVar4 = pmVar8[2];
          iVar2 = iVar2 + 1;
          pmVar8 = pmVar8 + 1;
          pmVar12[2] = mVar4 + 1;
          pmVar12 = pmVar12 + 1;
        } while (mVar4 + 1 == 0);
      }
    }
    uVar5 = 0;
    if ((tp != pmVar11) && (uVar5 = 0, iVar2 < n)) {
      pmVar8 = pmVar11 + iVar2;
      pmVar6 = tp + iVar2;
      do {
        mVar4 = *pmVar8;
        pmVar8 = pmVar8 + 1;
        *pmVar6 = mVar4;
        pmVar6 = pmVar6 + 1;
      } while (pmVar8 != pmVar11 + n);
      uVar5 = 0;
    }
  }
  else {
    iVar2 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,n);
    uVar5 = *puVar7 + iVar2;
  }
LAB_00062354:
  puVar1 = PTR___gmpn_lshift_0009756c;
  iVar3 = n + 1;
  *puVar7 = uVar5;
  (*(code *)puVar1)(tp,tp,iVar3,1);
  iVar2 = iVar3;
  do {
    iVar2 = iVar2 + -1;
    if (iVar2 < 0) goto LAB_000623a4;
    uVar5 = *pmVar9;
    uVar10 = *puVar7;
    pmVar9 = pmVar9 + -1;
    puVar7 = puVar7 + -1;
  } while (uVar5 == uVar10);
  if (uVar10 < uVar5) {
LAB_000623a4:
    iVar2 = 0;
    (*(code *)PTR___gmpn_sub_n_00097514)(xm2,xp2,tp,iVar3);
  }
  else {
    iVar2 = -1;
    (*(code *)PTR___gmpn_sub_n_00097514)(xm2,tp,xp2,iVar3);
  }
  (*(code *)PTR___gmpn_add_n_00097334)(xp2,xp2,tp,iVar3);
  return iVar2;
}



undefined4
__gmpn_toom_eval_dgr3_pm2
          (int param_1,undefined4 param_2,int param_3,int param_4,int param_5,int param_6)

{
  int *piVar1;
  undefined *puVar2;
  int iVar3;
  undefined4 uVar4;
  uint uVar5;
  undefined4 *puVar6;
  undefined4 *puVar7;
  uint uVar8;
  int iVar9;
  int iVar10;
  uint *puVar11;
  uint *puVar12;
  int iVar13;
  int iVar14;
  
  iVar9 = param_3 + param_4 * 8;
  iVar13 = param_4 * 4;
  iVar10 = iVar9 + iVar13;
  iVar9 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar9,param_4,2);
  puVar12 = (uint *)(param_1 + iVar13);
  iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_6,param_3,param_4);
  iVar14 = param_5 * 4;
  *puVar12 = iVar3 + iVar9;
  uVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar10,param_5,2);
  iVar10 = iVar10 + param_4 * -8;
  *(undefined4 *)(param_6 + iVar14) = uVar4;
  puVar11 = (uint *)(param_6 + iVar13);
  if (param_5 < param_4) {
    iVar9 = param_5 + 1;
    if ((iVar9 != 0) &&
       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)) {
      uVar5 = 1;
      if (param_4 <= iVar9) goto LAB_00062354;
      iVar9 = param_5 + 2;
      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;
      *(int *)(param_6 + iVar14 + 4) = iVar3;
      if (iVar3 == 0) {
        iVar3 = iVar10 + iVar14;
        puVar6 = (undefined4 *)(param_6 + iVar14);
        do {
          uVar5 = 1;
          if (param_4 == iVar9) goto LAB_00062354;
          piVar1 = (int *)(iVar3 + 8);
          iVar9 = iVar9 + 1;
          iVar3 = iVar3 + 4;
          iVar14 = *piVar1 + 1;
          puVar6[2] = iVar14;
          puVar6 = puVar6 + 1;
        } while (iVar14 == 0);
      }
    }
    uVar5 = 0;
    if ((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)) {
      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);
      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);
      do {
        uVar4 = *puVar7;
        puVar7 = puVar7 + 1;
        *puVar6 = uVar4;
        puVar6 = puVar6 + 1;
      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));
      uVar5 = 0;
    }
  }
  else {
    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);
    uVar5 = *puVar11 + iVar9;
  }
LAB_00062354:
  puVar2 = PTR___gmpn_lshift_0009756c;
  param_4 = param_4 + 1;
  *puVar11 = uVar5;
  (*(code *)puVar2)(param_6,param_6,param_4,1);
  iVar9 = param_4;
  do {
    iVar9 = iVar9 + -1;
    if (iVar9 < 0) goto LAB_000623a4;
    uVar5 = *puVar12;
    uVar8 = *puVar11;
    puVar12 = puVar12 + -1;
    puVar11 = puVar11 + -1;
  } while (uVar5 == uVar8);
  if (uVar8 < uVar5) {
LAB_000623a4:
    uVar4 = 0;
    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4);
  }
  else {
    uVar4 = 0xffffffff;
    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);
  }
  (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,param_6,param_4);
  return uVar4;
}


lui gp,0x4
addiu gp,gp,-0x31e0
addu gp,gp,t9
addiu sp,sp,-0x48
lw t9,-0x7ad4(gp)
sw s0,0x20(sp)
sll s0,a3,0x3
sw s2,0x28(sp)
sw s4,0x30(sp)
addu s0,a2,s0
sw ra,0x44(sp)
or s4,a3,zero
sw gp,0x10(sp)
li a3,0x2
sw s8,0x40(sp)
sw s7,0x3c(sp)
sw s6,0x38(sp)
sw s5,0x34(sp)
sll s5,s4,0x2
sw s3,0x2c(sp)
or s3,a0,zero
sw s1,0x24(sp)
or s1,a2,zero
sw a1,0x4c(sp)
or a2,s4,zero
lw s2,0x5c(sp)
or a1,s0,zero
lw s8,0x58(sp)
addu s0,s0,s5
jalr t9
_or a0,s2,zero
or a2,s1,zero
lw gp,0x10(sp)
or a3,s4,zero
or a1,s2,zero
or a0,s3,zero
or s6,v0,zero
lw t9,-0x7d0c(gp)
jalr t9
_addu s1,s3,s5
li a3,0x2
lw gp,0x10(sp)
addu v0,v0,s6
sll s6,s8,0x2
or a1,s0,zero
sw v0,0x0(s1)
or a0,s2,zero
lw t9,-0x7ad4(gp)
addu s7,s2,s6
jalr t9
_or a2,s8,zero
sll v1,s4,0x3
slt a0,s8,s4
lw gp,0x10(sp)
subu t0,s0,v1
sw v0,0x0(s7)
beq a0,zero,0x000624c4
_addu s0,s2,s5
addiu v1,s8,0x1
bne v1,zero,0x0006240c
_lw t9,-0x7d0c(gp)
beq s2,t0,0x00062350
_or v0,zero,zero
slt v0,v1,s4
beq v0,zero,0x00062350
_or v0,zero,zero
sll v0,v1,0x2
addu a0,t0,s5
addu v1,t0,v0
addu v0,s2,v0
lw a1,0x0(v1)
addiu v0,v0,0x4
addiu v1,v1,0x4
bne v1,a0,0x00062338
_sw a1,-0x4(v0)
or v0,zero,zero
lw t9,-0x7ad4(gp)
addiu s5,s4,0x1
li a3,0x1
sw v0,0x0(s0)
or a0,s2,zero
or a2,s5,zero
jalr t9
_or a1,s2,zero
or v1,s1,zero
lw gp,0x10(sp)
or v0,s0,zero
b 0x00062394
_or a0,s5,zero
lw a1,0x0(v1)
lw a2,0x4(v0)
bne a1,a2,0x00062498
_addiu v1,v1,-0x4
addiu a0,a0,-0x1
bgez a0,0x00062384
_addiu v0,v0,-0x4
lw t9,-0x7b2c(gp)
or a3,s5,zero
lw a0,0x4c(sp)
or a2,s2,zero
or a1,s3,zero
jalr t9
_or s0,zero,zero
lw gp,0x10(sp)
lw t9,-0x7d0c(gp)
or a3,s5,zero
or a2,s2,zero
or a1,s3,zero
jalr t9
_or a0,s3,zero
or v0,s0,zero
lw ra,0x44(sp)
lw s8,0x40(sp)
lw s7,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x48
or a3,v1,zero
sw v1,0x1c(sp)
or a1,t0,zero
sw t0,0x18(sp)
or a2,s2,zero
jalr t9
_or a0,s2,zero
lw gp,0x10(sp)
lw t0,0x18(sp)
beq v0,zero,0x00062314
_lw v1,0x1c(sp)
slt v1,v1,s4
beq v1,zero,0x00062350
_li v0,0x1
addiu v0,s6,0x4
addiu v1,s8,0x2
addu a0,t0,v0
addu v0,s2,v0
lw a0,0x0(a0)
addiu a0,a0,0x1
bne a0,zero,0x00062314
_sw a0,0x0(v0)
b 0x00062488
_addu s6,t0,s6
lw v0,0x8(s6)
addiu s7,s7,0x4
addiu v1,v1,0x1
addiu s6,s6,0x4
addiu v0,v0,0x1
bne v0,zero,0x00062314
_sw v0,0x4(s7)
bne s4,v1,0x0006246c
_li v0,0x1
b 0x00062354
_lw t9,-0x7ad4(gp)
sltu a1,a2,a1
bne a1,zero,0x000623a4
_lw t9,-0x7b2c(gp)
or a3,s5,zero
lw a0,0x4c(sp)
or a2,s3,zero
or a1,s2,zero
jalr t9
_li s0,-0x1
b 0x000623c0
_lw gp,0x10(sp)
lw t9,-0x7d0c(gp)
or a3,s4,zero
or a2,s2,zero
or a1,t0,zero
jalr t9
_or a0,s2,zero
lw v1,0x0(s0)
lw gp,0x10(sp)
b 0x00062350
_addu v0,v1,v0
(translation_unit "undefined4\n__gmpn_toom_eval_dgr3_pm2\n          (int param_1,undefined4 param_2,int param_3,int param_4,int param_5,int param_6)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  uint *puVar11;\n  uint *puVar12;\n  int iVar13;\n  int iVar14;\n  \n  iVar9 = param_3 + param_4 * 8;\n  iVar13 = param_4 * 4;\n  iVar10 = iVar9 + iVar13;\n  iVar9 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar9,param_4,2);\n  puVar12 = (uint *)(param_1 + iVar13);\n  iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_6,param_3,param_4);\n  iVar14 = param_5 * 4;\n  *puVar12 = iVar3 + iVar9;\n  uVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar10,param_5,2);\n  iVar10 = iVar10 + param_4 * -8;\n  *(undefined4 *)(param_6 + iVar14) = uVar4;\n  puVar11 = (uint *)(param_6 + iVar13);\n  if (param_5 < param_4) {\n    iVar9 = param_5 + 1;\n    if ((iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)) {\n      uVar5 = 1;\n      if (param_4 <= iVar9) goto LAB_00062354;\n      iVar9 = param_5 + 2;\n      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;\n      *(int *)(param_6 + iVar14 + 4) = iVar3;\n      if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }\n    }\n    uVar5 = 0;\n    if ((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)) {\n      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);\n      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);\n      do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);\n    uVar5 = *puVar11 + iVar9;\n  }\nLAB_00062354:\n  puVar2 = PTR___gmpn_lshift_0009756c;\n  param_4 = param_4 + 1;\n  *puVar11 = uVar5;\n  (*(code *)puVar2)(param_6,param_6,param_4,1);\n  iVar9 = param_4;\n  do {\n    iVar9 = iVar9 + -1;\n    if (iVar9 < 0) goto LAB_000623a4;\n    uVar5 = *puVar12;\n    uVar8 = *puVar11;\n    puVar12 = puVar12 + -1;\n    puVar11 = puVar11 + -1;\n  } while (uVar5 == uVar8);\n  if (uVar8 < uVar5) {\nLAB_000623a4:\n    uVar4 = 0;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4);\n  }\n  else {\n    uVar4 = 0xffffffff;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);\n  }\n  (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,param_6,param_4);\n  return uVar4;\n}\n\n" (function_definition "undefined4\n__gmpn_toom_eval_dgr3_pm2\n          (int param_1,undefined4 param_2,int param_3,int param_4,int param_5,int param_6)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  uint *puVar11;\n  uint *puVar12;\n  int iVar13;\n  int iVar14;\n  \n  iVar9 = param_3 + param_4 * 8;\n  iVar13 = param_4 * 4;\n  iVar10 = iVar9 + iVar13;\n  iVar9 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar9,param_4,2);\n  puVar12 = (uint *)(param_1 + iVar13);\n  iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_6,param_3,param_4);\n  iVar14 = param_5 * 4;\n  *puVar12 = iVar3 + iVar9;\n  uVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar10,param_5,2);\n  iVar10 = iVar10 + param_4 * -8;\n  *(undefined4 *)(param_6 + iVar14) = uVar4;\n  puVar11 = (uint *)(param_6 + iVar13);\n  if (param_5 < param_4) {\n    iVar9 = param_5 + 1;\n    if ((iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)) {\n      uVar5 = 1;\n      if (param_4 <= iVar9) goto LAB_00062354;\n      iVar9 = param_5 + 2;\n      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;\n      *(int *)(param_6 + iVar14 + 4) = iVar3;\n      if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }\n    }\n    uVar5 = 0;\n    if ((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)) {\n      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);\n      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);\n      do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);\n    uVar5 = *puVar11 + iVar9;\n  }\nLAB_00062354:\n  puVar2 = PTR___gmpn_lshift_0009756c;\n  param_4 = param_4 + 1;\n  *puVar11 = uVar5;\n  (*(code *)puVar2)(param_6,param_6,param_4,1);\n  iVar9 = param_4;\n  do {\n    iVar9 = iVar9 + -1;\n    if (iVar9 < 0) goto LAB_000623a4;\n    uVar5 = *puVar12;\n    uVar8 = *puVar11;\n    puVar12 = puVar12 + -1;\n    puVar11 = puVar11 + -1;\n  } while (uVar5 == uVar8);\n  if (uVar8 < uVar5) {\nLAB_000623a4:\n    uVar4 = 0;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4);\n  }\n  else {\n    uVar4 = 0xffffffff;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);\n  }\n  (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,param_6,param_4);\n  return uVar4;\n}" type_identifier (function_declarator "__gmpn_toom_eval_dgr3_pm2\n          (int param_1,undefined4 param_2,int param_3,int param_4,int param_5,int param_6)" identifier (parameter_list "(int param_1,undefined4 param_2,int param_3,int param_4,int param_5,int param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  uint *puVar11;\n  uint *puVar12;\n  int iVar13;\n  int iVar14;\n  \n  iVar9 = param_3 + param_4 * 8;\n  iVar13 = param_4 * 4;\n  iVar10 = iVar9 + iVar13;\n  iVar9 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar9,param_4,2);\n  puVar12 = (uint *)(param_1 + iVar13);\n  iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_6,param_3,param_4);\n  iVar14 = param_5 * 4;\n  *puVar12 = iVar3 + iVar9;\n  uVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar10,param_5,2);\n  iVar10 = iVar10 + param_4 * -8;\n  *(undefined4 *)(param_6 + iVar14) = uVar4;\n  puVar11 = (uint *)(param_6 + iVar13);\n  if (param_5 < param_4) {\n    iVar9 = param_5 + 1;\n    if ((iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)) {\n      uVar5 = 1;\n      if (param_4 <= iVar9) goto LAB_00062354;\n      iVar9 = param_5 + 2;\n      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;\n      *(int *)(param_6 + iVar14 + 4) = iVar3;\n      if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }\n    }\n    uVar5 = 0;\n    if ((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)) {\n      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);\n      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);\n      do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);\n    uVar5 = *puVar11 + iVar9;\n  }\nLAB_00062354:\n  puVar2 = PTR___gmpn_lshift_0009756c;\n  param_4 = param_4 + 1;\n  *puVar11 = uVar5;\n  (*(code *)puVar2)(param_6,param_6,param_4,1);\n  iVar9 = param_4;\n  do {\n    iVar9 = iVar9 + -1;\n    if (iVar9 < 0) goto LAB_000623a4;\n    uVar5 = *puVar12;\n    uVar8 = *puVar11;\n    puVar12 = puVar12 + -1;\n    puVar11 = puVar11 + -1;\n  } while (uVar5 == uVar8);\n  if (uVar8 < uVar5) {\nLAB_000623a4:\n    uVar4 = 0;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4);\n  }\n  else {\n    uVar4 = 0xffffffff;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);\n  }\n  (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,param_6,param_4);\n  return uVar4;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (expression_statement "iVar9 = param_3 + param_4 * 8;" (assignment_expression "iVar9 = param_3 + param_4 * 8" identifier = (binary_expression "param_3 + param_4 * 8" identifier + (binary_expression "param_4 * 8" identifier * number_literal))) ;) (expression_statement "iVar13 = param_4 * 4;" (assignment_expression "iVar13 = param_4 * 4" identifier = (binary_expression "param_4 * 4" identifier * number_literal)) ;) (expression_statement "iVar10 = iVar9 + iVar13;" (assignment_expression "iVar10 = iVar9 + iVar13" identifier = (binary_expression "iVar9 + iVar13" identifier + identifier)) ;) (expression_statement "iVar9 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar9,param_4,2);" (assignment_expression "iVar9 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar9,param_4,2)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar9,param_4,2)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009756c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009756c" * (cast_expression "(code *)PTR___gmpn_lshift_0009756c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,iVar9,param_4,2)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "puVar12 = (uint *)(param_1 + iVar13);" (assignment_expression "puVar12 = (uint *)(param_1 + iVar13)" identifier = (cast_expression "(uint *)(param_1 + iVar13)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar13)" ( (binary_expression "param_1 + iVar13" identifier + identifier) )))) ;) (expression_statement "iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_6,param_3,param_4);" (assignment_expression "iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_6,param_3,param_4)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_6,param_3,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_6,param_3,param_4)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar14 = param_5 * 4;" (assignment_expression "iVar14 = param_5 * 4" identifier = (binary_expression "param_5 * 4" identifier * number_literal)) ;) (expression_statement "*puVar12 = iVar3 + iVar9;" (assignment_expression "*puVar12 = iVar3 + iVar9" (pointer_expression "*puVar12" * identifier) = (binary_expression "iVar3 + iVar9" identifier + identifier)) ;) (expression_statement "uVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar10,param_5,2);" (assignment_expression "uVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar10,param_5,2)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar10,param_5,2)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009756c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009756c" * (cast_expression "(code *)PTR___gmpn_lshift_0009756c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,iVar10,param_5,2)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar10 = iVar10 + param_4 * -8;" (assignment_expression "iVar10 = iVar10 + param_4 * -8" identifier = (binary_expression "iVar10 + param_4 * -8" identifier + (binary_expression "param_4 * -8" identifier * number_literal))) ;) (expression_statement "*(undefined4 *)(param_6 + iVar14) = uVar4;" (assignment_expression "*(undefined4 *)(param_6 + iVar14) = uVar4" (pointer_expression "*(undefined4 *)(param_6 + iVar14)" * (cast_expression "(undefined4 *)(param_6 + iVar14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + iVar14)" ( (binary_expression "param_6 + iVar14" identifier + identifier) )))) = identifier) ;) (expression_statement "puVar11 = (uint *)(param_6 + iVar13);" (assignment_expression "puVar11 = (uint *)(param_6 + iVar13)" identifier = (cast_expression "(uint *)(param_6 + iVar13)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + iVar13)" ( (binary_expression "param_6 + iVar13" identifier + identifier) )))) ;) (if_statement "if (param_5 < param_4) {\n    iVar9 = param_5 + 1;\n    if ((iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)) {\n      uVar5 = 1;\n      if (param_4 <= iVar9) goto LAB_00062354;\n      iVar9 = param_5 + 2;\n      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;\n      *(int *)(param_6 + iVar14 + 4) = iVar3;\n      if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }\n    }\n    uVar5 = 0;\n    if ((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)) {\n      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);\n      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);\n      do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);\n    uVar5 = *puVar11 + iVar9;\n  }" if (parenthesized_expression "(param_5 < param_4)" ( (binary_expression "param_5 < param_4" identifier < identifier) )) (compound_statement "{\n    iVar9 = param_5 + 1;\n    if ((iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)) {\n      uVar5 = 1;\n      if (param_4 <= iVar9) goto LAB_00062354;\n      iVar9 = param_5 + 2;\n      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;\n      *(int *)(param_6 + iVar14 + 4) = iVar3;\n      if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }\n    }\n    uVar5 = 0;\n    if ((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)) {\n      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);\n      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);\n      do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));\n      uVar5 = 0;\n    }\n  }" { (expression_statement "iVar9 = param_5 + 1;" (assignment_expression "iVar9 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (if_statement "if ((iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)) {\n      uVar5 = 1;\n      if (param_4 <= iVar9) goto LAB_00062354;\n      iVar9 = param_5 + 2;\n      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;\n      *(int *)(param_6 + iVar14 + 4) = iVar3;\n      if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }\n    }" if (parenthesized_expression "((iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0))" ( (binary_expression "(iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)" ( (comma_expression "iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0" (assignment_expression "iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,iVar10,param_6,iVar9)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      uVar5 = 1;\n      if (param_4 <= iVar9) goto LAB_00062354;\n      iVar9 = param_5 + 2;\n      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;\n      *(int *)(param_6 + iVar14 + 4) = iVar3;\n      if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }\n    }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (param_4 <= iVar9) goto LAB_00062354;" if (parenthesized_expression "(param_4 <= iVar9)" ( (binary_expression "param_4 <= iVar9" identifier <= identifier) )) (goto_statement "goto LAB_00062354;" goto statement_identifier ;)) (expression_statement "iVar9 = param_5 + 2;" (assignment_expression "iVar9 = param_5 + 2" identifier = (binary_expression "param_5 + 2" identifier + number_literal)) ;) (expression_statement "iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;" (assignment_expression "iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1" identifier = (binary_expression "*(int *)(iVar10 + iVar14 + 4) + 1" (pointer_expression "*(int *)(iVar10 + iVar14 + 4)" * (cast_expression "(int *)(iVar10 + iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar14 + 4)" ( (binary_expression "iVar10 + iVar14 + 4" (binary_expression "iVar10 + iVar14" identifier + identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(param_6 + iVar14 + 4) = iVar3;" (assignment_expression "*(int *)(param_6 + iVar14 + 4) = iVar3" (pointer_expression "*(int *)(param_6 + iVar14 + 4)" * (cast_expression "(int *)(param_6 + iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + iVar14 + 4)" ( (binary_expression "param_6 + iVar14 + 4" (binary_expression "param_6 + iVar14" identifier + identifier) + number_literal) )))) = identifier) ;) (if_statement "if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }" { (expression_statement "iVar3 = iVar10 + iVar14;" (assignment_expression "iVar3 = iVar10 + iVar14" identifier = (binary_expression "iVar10 + iVar14" identifier + identifier)) ;) (expression_statement "puVar6 = (undefined4 *)(param_6 + iVar14);" (assignment_expression "puVar6 = (undefined4 *)(param_6 + iVar14)" identifier = (cast_expression "(undefined4 *)(param_6 + iVar14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + iVar14)" ( (binary_expression "param_6 + iVar14" identifier + identifier) )))) ;) (do_statement "do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);" do (compound_statement "{\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (param_4 == iVar9) goto LAB_00062354;" if (parenthesized_expression "(param_4 == iVar9)" ( (binary_expression "param_4 == iVar9" identifier == identifier) )) (goto_statement "goto LAB_00062354;" goto statement_identifier ;)) (expression_statement "piVar1 = (int *)(iVar3 + 8);" (assignment_expression "piVar1 = (int *)(iVar3 + 8)" identifier = (cast_expression "(int *)(iVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = iVar3 + 4;" (assignment_expression "iVar3 = iVar3 + 4" identifier = (binary_expression "iVar3 + 4" identifier + number_literal)) ;) (expression_statement "iVar14 = *piVar1 + 1;" (assignment_expression "iVar14 = *piVar1 + 1" identifier = (binary_expression "*piVar1 + 1" (pointer_expression "*piVar1" * identifier) + number_literal)) ;) (expression_statement "puVar6[2] = iVar14;" (assignment_expression "puVar6[2] = iVar14" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) ;) })) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (if_statement "if ((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)) {\n      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);\n      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);\n      do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));\n      uVar5 = 0;\n    }" if (parenthesized_expression "((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4))" ( (binary_expression "(param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)" (parenthesized_expression "(param_6 != iVar10)" ( (binary_expression "param_6 != iVar10" identifier != identifier) )) && (parenthesized_expression "(uVar5 = 0, iVar9 < param_4)" ( (comma_expression "uVar5 = 0, iVar9 < param_4" (assignment_expression "uVar5 = 0" identifier = number_literal) , (binary_expression "iVar9 < param_4" identifier < identifier)) ))) )) (compound_statement "{\n      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);\n      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);\n      do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));\n      uVar5 = 0;\n    }" { (expression_statement "puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);" (assignment_expression "puVar7 = (undefined4 *)(iVar10 + iVar9 * 4)" identifier = (cast_expression "(undefined4 *)(iVar10 + iVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar9 * 4)" ( (binary_expression "iVar10 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) ;) (expression_statement "puVar6 = (undefined4 *)(param_6 + iVar9 * 4);" (assignment_expression "puVar6 = (undefined4 *)(param_6 + iVar9 * 4)" identifier = (cast_expression "(undefined4 *)(param_6 + iVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + iVar9 * 4)" ( (binary_expression "param_6 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) ;) (do_statement "do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));" do (compound_statement "{\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      }" { (expression_statement "uVar4 = *puVar7;" (assignment_expression "uVar4 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) (expression_statement "*puVar6 = uVar4;" (assignment_expression "*puVar6 = uVar4" (pointer_expression "*puVar6" * identifier) = identifier) ;) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar7 != (undefined4 *)(iVar10 + iVar13))" ( (binary_expression "puVar7 != (undefined4 *)(iVar10 + iVar13)" identifier != (cast_expression "(undefined4 *)(iVar10 + iVar13)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar13)" ( (binary_expression "iVar10 + iVar13" identifier + identifier) )))) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);\n    uVar5 = *puVar11 + iVar9;\n  }" else (compound_statement "{\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);\n    uVar5 = *puVar11 + iVar9;\n  }" { (expression_statement "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);" (assignment_expression "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,iVar10,param_6,param_4)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar5 = *puVar11 + iVar9;" (assignment_expression "uVar5 = *puVar11 + iVar9" identifier = (binary_expression "*puVar11 + iVar9" (pointer_expression "*puVar11" * identifier) + identifier)) ;) }))) (labeled_statement "LAB_00062354:\n  puVar2 = PTR___gmpn_lshift_0009756c;" statement_identifier : (expression_statement "puVar2 = PTR___gmpn_lshift_0009756c;" (assignment_expression "puVar2 = PTR___gmpn_lshift_0009756c" identifier = identifier) ;)) (expression_statement "param_4 = param_4 + 1;" (assignment_expression "param_4 = param_4 + 1" identifier = (binary_expression "param_4 + 1" identifier + number_literal)) ;) (expression_statement "*puVar11 = uVar5;" (assignment_expression "*puVar11 = uVar5" (pointer_expression "*puVar11" * identifier) = identifier) ;) (expression_statement "(*(code *)puVar2)(param_6,param_6,param_4,1);" (call_expression "(*(code *)puVar2)(param_6,param_6,param_4,1)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,param_6,param_4,1)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "iVar9 = param_4;" (assignment_expression "iVar9 = param_4" identifier = identifier) ;) (do_statement "do {\n    iVar9 = iVar9 + -1;\n    if (iVar9 < 0) goto LAB_000623a4;\n    uVar5 = *puVar12;\n    uVar8 = *puVar11;\n    puVar12 = puVar12 + -1;\n    puVar11 = puVar11 + -1;\n  } while (uVar5 == uVar8);" do (compound_statement "{\n    iVar9 = iVar9 + -1;\n    if (iVar9 < 0) goto LAB_000623a4;\n    uVar5 = *puVar12;\n    uVar8 = *puVar11;\n    puVar12 = puVar12 + -1;\n    puVar11 = puVar11 + -1;\n  }" { (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (if_statement "if (iVar9 < 0) goto LAB_000623a4;" if (parenthesized_expression "(iVar9 < 0)" ( (binary_expression "iVar9 < 0" identifier < number_literal) )) (goto_statement "goto LAB_000623a4;" goto statement_identifier ;)) (expression_statement "uVar5 = *puVar12;" (assignment_expression "uVar5 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "uVar8 = *puVar11;" (assignment_expression "uVar8 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "puVar12 = puVar12 + -1;" (assignment_expression "puVar12 = puVar12 + -1" identifier = (binary_expression "puVar12 + -1" identifier + number_literal)) ;) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" identifier = (binary_expression "puVar11 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 == uVar8)" ( (binary_expression "uVar5 == uVar8" identifier == identifier) )) ;) (if_statement "if (uVar8 < uVar5) {\nLAB_000623a4:\n    uVar4 = 0;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4);\n  }\n  else {\n    uVar4 = 0xffffffff;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);\n  }" if (parenthesized_expression "(uVar8 < uVar5)" ( (binary_expression "uVar8 < uVar5" identifier < identifier) )) (compound_statement "{\nLAB_000623a4:\n    uVar4 = 0;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4);\n  }" { (labeled_statement "LAB_000623a4:\n    uVar4 = 0;" statement_identifier : (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;)) (expression_statement "(*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4);" (call_expression "(*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_sub_n_00097514)" ( (pointer_expression "*(code *)PTR___gmpn_sub_n_00097514" * (cast_expression "(code *)PTR___gmpn_sub_n_00097514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,param_1,param_6,param_4)" ( identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n    uVar4 = 0xffffffff;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);\n  }" else (compound_statement "{\n    uVar4 = 0xffffffff;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);\n  }" { (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "(*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);" (call_expression "(*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_sub_n_00097514)" ( (pointer_expression "*(code *)PTR___gmpn_sub_n_00097514" * (cast_expression "(code *)PTR___gmpn_sub_n_00097514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,param_6,param_1,param_4)" ( identifier , identifier , identifier , identifier ))) ;) }))) (expression_statement "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,param_6,param_4);" (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,param_6,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_1,param_6,param_4)" ( identifier , identifier , identifier , identifier ))) ;) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit "int __gmpn_toom_eval_dgr3_pm2\n              (mp_ptr xp2,mp_ptr xm2,mp_srcptr xp,mp_size_t n,mp_size_t x3n,mp_ptr tp)\n\n{\n  undefined *puVar1;\n  mp_limb_t __gmp_c;\n  int iVar2;\n  int iVar3;\n  mp_limb_t mVar4;\n  uint uVar5;\n  mp_limb_t *pmVar6;\n  uint *puVar7;\n  mp_srcptr pmVar8;\n  mp_ptr pmVar9;\n  uint uVar10;\n  mp_srcptr pmVar11;\n  mp_ptr pmVar12;\n  \n  pmVar11 = xp + n * 2;\n  iVar2 = (*(code *)PTR___gmpn_lshift_0009756c)(tp,pmVar11,n,2);\n  pmVar9 = xp2 + n;\n  iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(xp2,tp,xp,n);\n  *pmVar9 = iVar3 + iVar2;\n  mVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(tp,pmVar11 + n,x3n,2);\n  pmVar11 = pmVar11 + n + n * -2;\n  tp[x3n] = mVar4;\n  puVar7 = tp + n;\n  if (x3n < n) {\n    iVar2 = x3n + 1;\n    if ((iVar2 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,iVar2), iVar3 != 0)) {\n      uVar5 = 1;\n      if (n <= iVar2) goto LAB_00062354;\n      iVar2 = x3n + 2;\n      mVar4 = pmVar11[x3n + 1];\n      tp[x3n + 1] = mVar4 + 1;\n      if (mVar4 + 1 == 0) {\n        pmVar8 = pmVar11 + x3n;\n        pmVar12 = tp + x3n;\n        do {\n          uVar5 = 1;\n          if (n == iVar2) goto LAB_00062354;\n          mVar4 = pmVar8[2];\n          iVar2 = iVar2 + 1;\n          pmVar8 = pmVar8 + 1;\n          pmVar12[2] = mVar4 + 1;\n          pmVar12 = pmVar12 + 1;\n        } while (mVar4 + 1 == 0);\n      }\n    }\n    uVar5 = 0;\n    if ((tp != pmVar11) && (uVar5 = 0, iVar2 < n)) {\n      pmVar8 = pmVar11 + iVar2;\n      pmVar6 = tp + iVar2;\n      do {\n        mVar4 = *pmVar8;\n        pmVar8 = pmVar8 + 1;\n        *pmVar6 = mVar4;\n        pmVar6 = pmVar6 + 1;\n      } while (pmVar8 != pmVar11 + n);\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,n);\n    uVar5 = *puVar7 + iVar2;\n  }\nLAB_00062354:\n  puVar1 = PTR___gmpn_lshift_0009756c;\n  iVar3 = n + 1;\n  *puVar7 = uVar5;\n  (*(code *)puVar1)(tp,tp,iVar3,1);\n  iVar2 = iVar3;\n  do {\n    iVar2 = iVar2 + -1;\n    if (iVar2 < 0) goto LAB_000623a4;\n    uVar5 = *pmVar9;\n    uVar10 = *puVar7;\n    pmVar9 = pmVar9 + -1;\n    puVar7 = puVar7 + -1;\n  } while (uVar5 == uVar10);\n  if (uVar10 < uVar5) {\nLAB_000623a4:\n    iVar2 = 0;\n    (*(code *)PTR___gmpn_sub_n_00097514)(xm2,xp2,tp,iVar3);\n  }\n  else {\n    iVar2 = -1;\n    (*(code *)PTR___gmpn_sub_n_00097514)(xm2,tp,xp2,iVar3);\n  }\n  (*(code *)PTR___gmpn_add_n_00097334)(xp2,xp2,tp,iVar3);\n  return iVar2;\n}\n\n" (function_definition "int __gmpn_toom_eval_dgr3_pm2\n              (mp_ptr xp2,mp_ptr xm2,mp_srcptr xp,mp_size_t n,mp_size_t x3n,mp_ptr tp)\n\n{\n  undefined *puVar1;\n  mp_limb_t __gmp_c;\n  int iVar2;\n  int iVar3;\n  mp_limb_t mVar4;\n  uint uVar5;\n  mp_limb_t *pmVar6;\n  uint *puVar7;\n  mp_srcptr pmVar8;\n  mp_ptr pmVar9;\n  uint uVar10;\n  mp_srcptr pmVar11;\n  mp_ptr pmVar12;\n  \n  pmVar11 = xp + n * 2;\n  iVar2 = (*(code *)PTR___gmpn_lshift_0009756c)(tp,pmVar11,n,2);\n  pmVar9 = xp2 + n;\n  iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(xp2,tp,xp,n);\n  *pmVar9 = iVar3 + iVar2;\n  mVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(tp,pmVar11 + n,x3n,2);\n  pmVar11 = pmVar11 + n + n * -2;\n  tp[x3n] = mVar4;\n  puVar7 = tp + n;\n  if (x3n < n) {\n    iVar2 = x3n + 1;\n    if ((iVar2 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,iVar2), iVar3 != 0)) {\n      uVar5 = 1;\n      if (n <= iVar2) goto LAB_00062354;\n      iVar2 = x3n + 2;\n      mVar4 = pmVar11[x3n + 1];\n      tp[x3n + 1] = mVar4 + 1;\n      if (mVar4 + 1 == 0) {\n        pmVar8 = pmVar11 + x3n;\n        pmVar12 = tp + x3n;\n        do {\n          uVar5 = 1;\n          if (n == iVar2) goto LAB_00062354;\n          mVar4 = pmVar8[2];\n          iVar2 = iVar2 + 1;\n          pmVar8 = pmVar8 + 1;\n          pmVar12[2] = mVar4 + 1;\n          pmVar12 = pmVar12 + 1;\n        } while (mVar4 + 1 == 0);\n      }\n    }\n    uVar5 = 0;\n    if ((tp != pmVar11) && (uVar5 = 0, iVar2 < n)) {\n      pmVar8 = pmVar11 + iVar2;\n      pmVar6 = tp + iVar2;\n      do {\n        mVar4 = *pmVar8;\n        pmVar8 = pmVar8 + 1;\n        *pmVar6 = mVar4;\n        pmVar6 = pmVar6 + 1;\n      } while (pmVar8 != pmVar11 + n);\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,n);\n    uVar5 = *puVar7 + iVar2;\n  }\nLAB_00062354:\n  puVar1 = PTR___gmpn_lshift_0009756c;\n  iVar3 = n + 1;\n  *puVar7 = uVar5;\n  (*(code *)puVar1)(tp,tp,iVar3,1);\n  iVar2 = iVar3;\n  do {\n    iVar2 = iVar2 + -1;\n    if (iVar2 < 0) goto LAB_000623a4;\n    uVar5 = *pmVar9;\n    uVar10 = *puVar7;\n    pmVar9 = pmVar9 + -1;\n    puVar7 = puVar7 + -1;\n  } while (uVar5 == uVar10);\n  if (uVar10 < uVar5) {\nLAB_000623a4:\n    iVar2 = 0;\n    (*(code *)PTR___gmpn_sub_n_00097514)(xm2,xp2,tp,iVar3);\n  }\n  else {\n    iVar2 = -1;\n    (*(code *)PTR___gmpn_sub_n_00097514)(xm2,tp,xp2,iVar3);\n  }\n  (*(code *)PTR___gmpn_add_n_00097334)(xp2,xp2,tp,iVar3);\n  return iVar2;\n}" primitive_type (function_declarator "__gmpn_toom_eval_dgr3_pm2\n              (mp_ptr xp2,mp_ptr xm2,mp_srcptr xp,mp_size_t n,mp_size_t x3n,mp_ptr tp)" identifier (parameter_list "(mp_ptr xp2,mp_ptr xm2,mp_srcptr xp,mp_size_t n,mp_size_t x3n,mp_ptr tp)" ( (parameter_declaration "mp_ptr xp2" type_identifier identifier) , (parameter_declaration "mp_ptr xm2" type_identifier identifier) , (parameter_declaration "mp_srcptr xp" type_identifier identifier) , (parameter_declaration "mp_size_t n" type_identifier identifier) , (parameter_declaration "mp_size_t x3n" type_identifier identifier) , (parameter_declaration "mp_ptr tp" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  mp_limb_t __gmp_c;\n  int iVar2;\n  int iVar3;\n  mp_limb_t mVar4;\n  uint uVar5;\n  mp_limb_t *pmVar6;\n  uint *puVar7;\n  mp_srcptr pmVar8;\n  mp_ptr pmVar9;\n  uint uVar10;\n  mp_srcptr pmVar11;\n  mp_ptr pmVar12;\n  \n  pmVar11 = xp + n * 2;\n  iVar2 = (*(code *)PTR___gmpn_lshift_0009756c)(tp,pmVar11,n,2);\n  pmVar9 = xp2 + n;\n  iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(xp2,tp,xp,n);\n  *pmVar9 = iVar3 + iVar2;\n  mVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(tp,pmVar11 + n,x3n,2);\n  pmVar11 = pmVar11 + n + n * -2;\n  tp[x3n] = mVar4;\n  puVar7 = tp + n;\n  if (x3n < n) {\n    iVar2 = x3n + 1;\n    if ((iVar2 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,iVar2), iVar3 != 0)) {\n      uVar5 = 1;\n      if (n <= iVar2) goto LAB_00062354;\n      iVar2 = x3n + 2;\n      mVar4 = pmVar11[x3n + 1];\n      tp[x3n + 1] = mVar4 + 1;\n      if (mVar4 + 1 == 0) {\n        pmVar8 = pmVar11 + x3n;\n        pmVar12 = tp + x3n;\n        do {\n          uVar5 = 1;\n          if (n == iVar2) goto LAB_00062354;\n          mVar4 = pmVar8[2];\n          iVar2 = iVar2 + 1;\n          pmVar8 = pmVar8 + 1;\n          pmVar12[2] = mVar4 + 1;\n          pmVar12 = pmVar12 + 1;\n        } while (mVar4 + 1 == 0);\n      }\n    }\n    uVar5 = 0;\n    if ((tp != pmVar11) && (uVar5 = 0, iVar2 < n)) {\n      pmVar8 = pmVar11 + iVar2;\n      pmVar6 = tp + iVar2;\n      do {\n        mVar4 = *pmVar8;\n        pmVar8 = pmVar8 + 1;\n        *pmVar6 = mVar4;\n        pmVar6 = pmVar6 + 1;\n      } while (pmVar8 != pmVar11 + n);\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,n);\n    uVar5 = *puVar7 + iVar2;\n  }\nLAB_00062354:\n  puVar1 = PTR___gmpn_lshift_0009756c;\n  iVar3 = n + 1;\n  *puVar7 = uVar5;\n  (*(code *)puVar1)(tp,tp,iVar3,1);\n  iVar2 = iVar3;\n  do {\n    iVar2 = iVar2 + -1;\n    if (iVar2 < 0) goto LAB_000623a4;\n    uVar5 = *pmVar9;\n    uVar10 = *puVar7;\n    pmVar9 = pmVar9 + -1;\n    puVar7 = puVar7 + -1;\n  } while (uVar5 == uVar10);\n  if (uVar10 < uVar5) {\nLAB_000623a4:\n    iVar2 = 0;\n    (*(code *)PTR___gmpn_sub_n_00097514)(xm2,xp2,tp,iVar3);\n  }\n  else {\n    iVar2 = -1;\n    (*(code *)PTR___gmpn_sub_n_00097514)(xm2,tp,xp2,iVar3);\n  }\n  (*(code *)PTR___gmpn_add_n_00097334)(xp2,xp2,tp,iVar3);\n  return iVar2;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "mp_limb_t __gmp_c;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "mp_limb_t mVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "mp_limb_t *pmVar6;" type_identifier (pointer_declarator "*pmVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "mp_srcptr pmVar8;" type_identifier identifier ;) (declaration "mp_ptr pmVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "mp_srcptr pmVar11;" type_identifier identifier ;) (declaration "mp_ptr pmVar12;" type_identifier identifier ;) (expression_statement "pmVar11 = xp + n * 2;" (assignment_expression "pmVar11 = xp + n * 2" identifier = (binary_expression "xp + n * 2" identifier + (binary_expression "n * 2" identifier * number_literal))) ;) (expression_statement "iVar2 = (*(code *)PTR___gmpn_lshift_0009756c)(tp,pmVar11,n,2);" (assignment_expression "iVar2 = (*(code *)PTR___gmpn_lshift_0009756c)(tp,pmVar11,n,2)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009756c)(tp,pmVar11,n,2)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009756c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009756c" * (cast_expression "(code *)PTR___gmpn_lshift_0009756c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(tp,pmVar11,n,2)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "pmVar9 = xp2 + n;" (assignment_expression "pmVar9 = xp2 + n" identifier = (binary_expression "xp2 + n" identifier + identifier)) ;) (expression_statement "iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(xp2,tp,xp,n);" (assignment_expression "iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(xp2,tp,xp,n)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(xp2,tp,xp,n)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(xp2,tp,xp,n)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*pmVar9 = iVar3 + iVar2;" (assignment_expression "*pmVar9 = iVar3 + iVar2" (pointer_expression "*pmVar9" * identifier) = (binary_expression "iVar3 + iVar2" identifier + identifier)) ;) (expression_statement "mVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(tp,pmVar11 + n,x3n,2);" (assignment_expression "mVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(tp,pmVar11 + n,x3n,2)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009756c)(tp,pmVar11 + n,x3n,2)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009756c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009756c" * (cast_expression "(code *)PTR___gmpn_lshift_0009756c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(tp,pmVar11 + n,x3n,2)" ( identifier , (binary_expression "pmVar11 + n" identifier + identifier) , identifier , number_literal )))) ;) (expression_statement "pmVar11 = pmVar11 + n + n * -2;" (assignment_expression "pmVar11 = pmVar11 + n + n * -2" identifier = (binary_expression "pmVar11 + n + n * -2" (binary_expression "pmVar11 + n" identifier + identifier) + (binary_expression "n * -2" identifier * number_literal))) ;) (expression_statement "tp[x3n] = mVar4;" (assignment_expression "tp[x3n] = mVar4" (subscript_expression "tp[x3n]" identifier [ identifier ]) = identifier) ;) (expression_statement "puVar7 = tp + n;" (assignment_expression "puVar7 = tp + n" identifier = (binary_expression "tp + n" identifier + identifier)) ;) (if_statement "if (x3n < n) {\n    iVar2 = x3n + 1;\n    if ((iVar2 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,iVar2), iVar3 != 0)) {\n      uVar5 = 1;\n      if (n <= iVar2) goto LAB_00062354;\n      iVar2 = x3n + 2;\n      mVar4 = pmVar11[x3n + 1];\n      tp[x3n + 1] = mVar4 + 1;\n      if (mVar4 + 1 == 0) {\n        pmVar8 = pmVar11 + x3n;\n        pmVar12 = tp + x3n;\n        do {\n          uVar5 = 1;\n          if (n == iVar2) goto LAB_00062354;\n          mVar4 = pmVar8[2];\n          iVar2 = iVar2 + 1;\n          pmVar8 = pmVar8 + 1;\n          pmVar12[2] = mVar4 + 1;\n          pmVar12 = pmVar12 + 1;\n        } while (mVar4 + 1 == 0);\n      }\n    }\n    uVar5 = 0;\n    if ((tp != pmVar11) && (uVar5 = 0, iVar2 < n)) {\n      pmVar8 = pmVar11 + iVar2;\n      pmVar6 = tp + iVar2;\n      do {\n        mVar4 = *pmVar8;\n        pmVar8 = pmVar8 + 1;\n        *pmVar6 = mVar4;\n        pmVar6 = pmVar6 + 1;\n      } while (pmVar8 != pmVar11 + n);\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar2 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,n);\n    uVar5 = *puVar7 + iVar2;\n  }" if (parenthesized_expression "(x3n < n)" ( (binary_expression "x3n < n" identifier < identifier) )) (compound_statement "{\n    iVar2 = x3n + 1;\n    if ((iVar2 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,iVar2), iVar3 != 0)) {\n      uVar5 = 1;\n      if (n <= iVar2) goto LAB_00062354;\n      iVar2 = x3n + 2;\n      mVar4 = pmVar11[x3n + 1];\n      tp[x3n + 1] = mVar4 + 1;\n      if (mVar4 + 1 == 0) {\n        pmVar8 = pmVar11 + x3n;\n        pmVar12 = tp + x3n;\n        do {\n          uVar5 = 1;\n          if (n == iVar2) goto LAB_00062354;\n          mVar4 = pmVar8[2];\n          iVar2 = iVar2 + 1;\n          pmVar8 = pmVar8 + 1;\n          pmVar12[2] = mVar4 + 1;\n          pmVar12 = pmVar12 + 1;\n        } while (mVar4 + 1 == 0);\n      }\n    }\n    uVar5 = 0;\n    if ((tp != pmVar11) && (uVar5 = 0, iVar2 < n)) {\n      pmVar8 = pmVar11 + iVar2;\n      pmVar6 = tp + iVar2;\n      do {\n        mVar4 = *pmVar8;\n        pmVar8 = pmVar8 + 1;\n        *pmVar6 = mVar4;\n        pmVar6 = pmVar6 + 1;\n      } while (pmVar8 != pmVar11 + n);\n      uVar5 = 0;\n    }\n  }" { (expression_statement "iVar2 = x3n + 1;" (assignment_expression "iVar2 = x3n + 1" identifier = (binary_expression "x3n + 1" identifier + number_literal)) ;) (if_statement "if ((iVar2 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,iVar2), iVar3 != 0)) {\n      uVar5 = 1;\n      if (n <= iVar2) goto LAB_00062354;\n      iVar2 = x3n + 2;\n      mVar4 = pmVar11[x3n + 1];\n      tp[x3n + 1] = mVar4 + 1;\n      if (mVar4 + 1 == 0) {\n        pmVar8 = pmVar11 + x3n;\n        pmVar12 = tp + x3n;\n        do {\n          uVar5 = 1;\n          if (n == iVar2) goto LAB_00062354;\n          mVar4 = pmVar8[2];\n          iVar2 = iVar2 + 1;\n          pmVar8 = pmVar8 + 1;\n          pmVar12[2] = mVar4 + 1;\n          pmVar12 = pmVar12 + 1;\n        } while (mVar4 + 1 == 0);\n      }\n    }" if (parenthesized_expression "((iVar2 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,iVar2), iVar3 != 0))" ( (binary_expression "(iVar2 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,iVar2), iVar3 != 0)" (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,iVar2), iVar3 != 0)" ( (comma_expression "iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,iVar2), iVar3 != 0" (assignment_expression "iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,iVar2)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,iVar2)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(tp,pmVar11,tp,iVar2)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      uVar5 = 1;\n      if (n <= iVar2) goto LAB_00062354;\n      iVar2 = x3n + 2;\n      mVar4 = pmVar11[x3n + 1];\n      tp[x3n + 1] = mVar4 + 1;\n      if (mVar4 + 1 == 0) {\n        pmVar8 = pmVar11 + x3n;\n        pmVar12 = tp + x3n;\n        do {\n          uVar5 = 1;\n          if (n == iVar2) goto LAB_00062354;\n          mVar4 = pmVar8[2];\n          iVar2 = iVar2 + 1;\n          pmVar8 = pmVar8 + 1;\n          pmVar12[2] = mVar4 + 1;\n          pmVar12 = pmVar12 + 1;\n        } while (mVar4 + 1 == 0);\n      }\n    }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (n <= iVar2) goto LAB_00062354;" if (parenthesized_expression "(n <= iVar2)" ( (binary_expression "n <= iVar2" identifier <= identifier) )) (goto_statement "goto LAB_00062354;" goto statement_identifier ;)) (expression_statement "iVar2 = x3n + 2;" (assignment_expression "iVar2 = x3n + 2" identifier = (binary_expression "x3n + 2" identifier + number_literal)) ;) (expression_statement "mVar4 = pmVar11[x3n + 1];" (assignment_expression "mVar4 = pmVar11[x3n + 1]" identifier = (subscript_expression "pmVar11[x3n + 1]" identifier [ (binary_expression "x3n + 1" identifier + number_literal) ])) ;) (expression_statement "tp[x3n + 1] = mVar4 + 1;" (assignment_expression "tp[x3n + 1] = mVar4 + 1" (subscript_expression "tp[x3n + 1]" identifier [ (binary_expression "x3n + 1" identifier + number_literal) ]) = (binary_expression "mVar4 + 1" identifier + number_literal)) ;) (if_statement "if (mVar4 + 1 == 0) {\n        pmVar8 = pmVar11 + x3n;\n        pmVar12 = tp + x3n;\n        do {\n          uVar5 = 1;\n          if (n == iVar2) goto LAB_00062354;\n          mVar4 = pmVar8[2];\n          iVar2 = iVar2 + 1;\n          pmVar8 = pmVar8 + 1;\n          pmVar12[2] = mVar4 + 1;\n          pmVar12 = pmVar12 + 1;\n        } while (mVar4 + 1 == 0);\n      }" if (parenthesized_expression "(mVar4 + 1 == 0)" ( (binary_expression "mVar4 + 1 == 0" (binary_expression "mVar4 + 1" identifier + number_literal) == number_literal) )) (compound_statement "{\n        pmVar8 = pmVar11 + x3n;\n        pmVar12 = tp + x3n;\n        do {\n          uVar5 = 1;\n          if (n == iVar2) goto LAB_00062354;\n          mVar4 = pmVar8[2];\n          iVar2 = iVar2 + 1;\n          pmVar8 = pmVar8 + 1;\n          pmVar12[2] = mVar4 + 1;\n          pmVar12 = pmVar12 + 1;\n        } while (mVar4 + 1 == 0);\n      }" { (expression_statement "pmVar8 = pmVar11 + x3n;" (assignment_expression "pmVar8 = pmVar11 + x3n" identifier = (binary_expression "pmVar11 + x3n" identifier + identifier)) ;) (expression_statement "pmVar12 = tp + x3n;" (assignment_expression "pmVar12 = tp + x3n" identifier = (binary_expression "tp + x3n" identifier + identifier)) ;) (do_statement "do {\n          uVar5 = 1;\n          if (n == iVar2) goto LAB_00062354;\n          mVar4 = pmVar8[2];\n          iVar2 = iVar2 + 1;\n          pmVar8 = pmVar8 + 1;\n          pmVar12[2] = mVar4 + 1;\n          pmVar12 = pmVar12 + 1;\n        } while (mVar4 + 1 == 0);" do (compound_statement "{\n          uVar5 = 1;\n          if (n == iVar2) goto LAB_00062354;\n          mVar4 = pmVar8[2];\n          iVar2 = iVar2 + 1;\n          pmVar8 = pmVar8 + 1;\n          pmVar12[2] = mVar4 + 1;\n          pmVar12 = pmVar12 + 1;\n        }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (n == iVar2) goto LAB_00062354;" if (parenthesized_expression "(n == iVar2)" ( (binary_expression "n == iVar2" identifier == identifier) )) (goto_statement "goto LAB_00062354;" goto statement_identifier ;)) (expression_statement "mVar4 = pmVar8[2];" (assignment_expression "mVar4 = pmVar8[2]" identifier = (subscript_expression "pmVar8[2]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "pmVar8 = pmVar8 + 1;" (assignment_expression "pmVar8 = pmVar8 + 1" identifier = (binary_expression "pmVar8 + 1" identifier + number_literal)) ;) (expression_statement "pmVar12[2] = mVar4 + 1;" (assignment_expression "pmVar12[2] = mVar4 + 1" (subscript_expression "pmVar12[2]" identifier [ number_literal ]) = (binary_expression "mVar4 + 1" identifier + number_literal)) ;) (expression_statement "pmVar12 = pmVar12 + 1;" (assignment_expression "pmVar12 = pmVar12 + 1" identifier = (binary_expression "pmVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(mVar4 + 1 == 0)" ( (binary_expression "mVar4 + 1 == 0" (binary_expression "mVar4 + 1" identifier + number_literal) == number_literal) )) ;) })) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (if_statement "if ((tp != pmVar11) && (uVar5 = 0, iVar2 < n)) {\n      pmVar8 = pmVar11 + iVar2;\n      pmVar6 = tp + iVar2;\n      do {\n        mVar4 = *pmVar8;\n        pmVar8 = pmVar8 + 1;\n        *pmVar6 = mVar4;\n        pmVar6 = pmVar6 + 1;\n      } while (pmVar8 != pmVar11 + n);\n      uVar5 = 0;\n    }" if (parenthesized_expression "((tp != pmVar11) && (uVar5 = 0, iVar2 < n))" ( (binary_expression "(tp != pmVar11) && (uVar5 = 0, iVar2 < n)" (parenthesized_expression "(tp != pmVar11)" ( (binary_expression "tp != pmVar11" identifier != identifier) )) && (parenthesized_expression "(uVar5 = 0, iVar2 < n)" ( (comma_expression "uVar5 = 0, iVar2 < n" (assignment_expression "uVar5 = 0" identifier = number_literal) , (binary_expression "iVar2 < n" identifier < identifier)) ))) )) (compound_statement "{\n      pmVar8 = pmVar11 + iVar2;\n      pmVar6 = tp + iVar2;\n      do {\n        mVar4 = *pmVar8;\n        pmVar8 = pmVar8 + 1;\n        *pmVar6 = mVar4;\n        pmVar6 = pmVar6 + 1;\n      } while (pmVar8 != pmVar11 + n);\n      uVar5 = 0;\n    }" { (expression_statement "pmVar8 = pmVar11 + iVar2;" (assignment_expression "pmVar8 = pmVar11 + iVar2" identifier = (binary_expression "pmVar11 + iVar2" identifier + identifier)) ;) (expression_statement "pmVar6 = tp + iVar2;" (assignment_expression "pmVar6 = tp + iVar2" identifier = (binary_expression "tp + iVar2" identifier + identifier)) ;) (do_statement "do {\n        mVar4 = *pmVar8;\n        pmVar8 = pmVar8 + 1;\n        *pmVar6 = mVar4;\n        pmVar6 = pmVar6 + 1;\n      } while (pmVar8 != pmVar11 + n);" do (compound_statement "{\n        mVar4 = *pmVar8;\n        pmVar8 = pmVar8 + 1;\n        *pmVar6 = mVar4;\n        pmVar6 = pmVar6 + 1;\n      }" { (expression_statement "mVar4 = *pmVar8;" (assignment_expression "mVar4 = *pmVar8" identifier = (pointer_expression "*pmVar8" * identifier)) ;) (expression_statement "pmVar8 = pmVar8 + 1;" (assignment_expression "pmVar8 = pmVar8 + 1" identifier = (binary_expression "pmVar8 + 1" identifier + number_literal)) ;) (expression_statement "*pmVar6 = mVar4;" (assignment_expression "*pmVar6 = mVar4" (pointer_expression "*pmVar6" * identifier) = identifier) ;) (expression_statement "pmVar6 = pmVar6 + 1;" (assignment_expression "pmVar6 = pmVar6 + 1" identifier = (binary_expression "pmVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pmVar8 != pmVar11 + n)" ( (binary_expression "pmVar8 != pmVar11 + n" identifier != (binary_expression "pmVar11 + n" identifier + identifier)) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n    iVar2 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,n);\n    uVar5 = *puVar7 + iVar2;\n  }" else (compound_statement "{\n    iVar2 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,n);\n    uVar5 = *puVar7 + iVar2;\n  }" { (expression_statement "iVar2 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,n);" (assignment_expression "iVar2 = (*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,n)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(tp,pmVar11,tp,n)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(tp,pmVar11,tp,n)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar5 = *puVar7 + iVar2;" (assignment_expression "uVar5 = *puVar7 + iVar2" identifier = (binary_expression "*puVar7 + iVar2" (pointer_expression "*puVar7" * identifier) + identifier)) ;) }))) (labeled_statement "LAB_00062354:\n  puVar1 = PTR___gmpn_lshift_0009756c;" statement_identifier : (expression_statement "puVar1 = PTR___gmpn_lshift_0009756c;" (assignment_expression "puVar1 = PTR___gmpn_lshift_0009756c" identifier = identifier) ;)) (expression_statement "iVar3 = n + 1;" (assignment_expression "iVar3 = n + 1" identifier = (binary_expression "n + 1" identifier + number_literal)) ;) (expression_statement "*puVar7 = uVar5;" (assignment_expression "*puVar7 = uVar5" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "(*(code *)puVar1)(tp,tp,iVar3,1);" (call_expression "(*(code *)puVar1)(tp,tp,iVar3,1)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(tp,tp,iVar3,1)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "iVar2 = iVar3;" (assignment_expression "iVar2 = iVar3" identifier = identifier) ;) (do_statement "do {\n    iVar2 = iVar2 + -1;\n    if (iVar2 < 0) goto LAB_000623a4;\n    uVar5 = *pmVar9;\n    uVar10 = *puVar7;\n    pmVar9 = pmVar9 + -1;\n    puVar7 = puVar7 + -1;\n  } while (uVar5 == uVar10);" do (compound_statement "{\n    iVar2 = iVar2 + -1;\n    if (iVar2 < 0) goto LAB_000623a4;\n    uVar5 = *pmVar9;\n    uVar10 = *puVar7;\n    pmVar9 = pmVar9 + -1;\n    puVar7 = puVar7 + -1;\n  }" { (expression_statement "iVar2 = iVar2 + -1;" (assignment_expression "iVar2 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ;) (if_statement "if (iVar2 < 0) goto LAB_000623a4;" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (goto_statement "goto LAB_000623a4;" goto statement_identifier ;)) (expression_statement "uVar5 = *pmVar9;" (assignment_expression "uVar5 = *pmVar9" identifier = (pointer_expression "*pmVar9" * identifier)) ;) (expression_statement "uVar10 = *puVar7;" (assignment_expression "uVar10 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "pmVar9 = pmVar9 + -1;" (assignment_expression "pmVar9 = pmVar9 + -1" identifier = (binary_expression "pmVar9 + -1" identifier + number_literal)) ;) (expression_statement "puVar7 = puVar7 + -1;" (assignment_expression "puVar7 = puVar7 + -1" identifier = (binary_expression "puVar7 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 == uVar10)" ( (binary_expression "uVar5 == uVar10" identifier == identifier) )) ;) (if_statement "if (uVar10 < uVar5) {\nLAB_000623a4:\n    iVar2 = 0;\n    (*(code *)PTR___gmpn_sub_n_00097514)(xm2,xp2,tp,iVar3);\n  }\n  else {\n    iVar2 = -1;\n    (*(code *)PTR___gmpn_sub_n_00097514)(xm2,tp,xp2,iVar3);\n  }" if (parenthesized_expression "(uVar10 < uVar5)" ( (binary_expression "uVar10 < uVar5" identifier < identifier) )) (compound_statement "{\nLAB_000623a4:\n    iVar2 = 0;\n    (*(code *)PTR___gmpn_sub_n_00097514)(xm2,xp2,tp,iVar3);\n  }" { (labeled_statement "LAB_000623a4:\n    iVar2 = 0;" statement_identifier : (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;)) (expression_statement "(*(code *)PTR___gmpn_sub_n_00097514)(xm2,xp2,tp,iVar3);" (call_expression "(*(code *)PTR___gmpn_sub_n_00097514)(xm2,xp2,tp,iVar3)" (parenthesized_expression "(*(code *)PTR___gmpn_sub_n_00097514)" ( (pointer_expression "*(code *)PTR___gmpn_sub_n_00097514" * (cast_expression "(code *)PTR___gmpn_sub_n_00097514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(xm2,xp2,tp,iVar3)" ( identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n    iVar2 = -1;\n    (*(code *)PTR___gmpn_sub_n_00097514)(xm2,tp,xp2,iVar3);\n  }" else (compound_statement "{\n    iVar2 = -1;\n    (*(code *)PTR___gmpn_sub_n_00097514)(xm2,tp,xp2,iVar3);\n  }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) (expression_statement "(*(code *)PTR___gmpn_sub_n_00097514)(xm2,tp,xp2,iVar3);" (call_expression "(*(code *)PTR___gmpn_sub_n_00097514)(xm2,tp,xp2,iVar3)" (parenthesized_expression "(*(code *)PTR___gmpn_sub_n_00097514)" ( (pointer_expression "*(code *)PTR___gmpn_sub_n_00097514" * (cast_expression "(code *)PTR___gmpn_sub_n_00097514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(xm2,tp,xp2,iVar3)" ( identifier , identifier , identifier , identifier ))) ;) }))) (expression_statement "(*(code *)PTR___gmpn_add_n_00097334)(xp2,xp2,tp,iVar3);" (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(xp2,xp2,tp,iVar3)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(xp2,xp2,tp,iVar3)" ( identifier , identifier , identifier , identifier ))) ;) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit "undefined4\n__gmpn_toom_eval_dgr3_pm2\n          (int param_1,undefined4 param_2,int param_3,int param_4,int param_5,int param_6)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  uint *puVar11;\n  uint *puVar12;\n  int iVar13;\n  int iVar14;\n  \n  iVar9 = param_3 + param_4 * 8;\n  iVar13 = param_4 * 4;\n  iVar10 = iVar9 + iVar13;\n  iVar9 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar9,param_4,2);\n  puVar12 = (uint *)(param_1 + iVar13);\n  iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_6,param_3,param_4);\n  iVar14 = param_5 * 4;\n  *puVar12 = iVar3 + iVar9;\n  uVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar10,param_5,2);\n  iVar10 = iVar10 + param_4 * -8;\n  *(undefined4 *)(param_6 + iVar14) = uVar4;\n  puVar11 = (uint *)(param_6 + iVar13);\n  if (param_5 < param_4) {\n    iVar9 = param_5 + 1;\n    if ((iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)) {\n      uVar5 = 1;\n      if (param_4 <= iVar9) goto LAB_00062354;\n      iVar9 = param_5 + 2;\n      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;\n      *(int *)(param_6 + iVar14 + 4) = iVar3;\n      if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }\n    }\n    uVar5 = 0;\n    if ((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)) {\n      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);\n      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);\n      do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);\n    uVar5 = *puVar11 + iVar9;\n  }\nLAB_00062354:\n  puVar2 = PTR___gmpn_lshift_0009756c;\n  param_4 = param_4 + 1;\n  *puVar11 = uVar5;\n  (*(code *)puVar2)(param_6,param_6,param_4,1);\n  iVar9 = param_4;\n  do {\n    iVar9 = iVar9 + -1;\n    if (iVar9 < 0) goto LAB_000623a4;\n    uVar5 = *puVar12;\n    uVar8 = *puVar11;\n    puVar12 = puVar12 + -1;\n    puVar11 = puVar11 + -1;\n  } while (uVar5 == uVar8);\n  if (uVar8 < uVar5) {\nLAB_000623a4:\n    uVar4 = 0;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4);\n  }\n  else {\n    uVar4 = 0xffffffff;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);\n  }\n  (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,param_6,param_4);\n  return uVar4;\n}\n\n" (function_definition "undefined4\n__gmpn_toom_eval_dgr3_pm2\n          (int param_1,undefined4 param_2,int param_3,int param_4,int param_5,int param_6)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  uint *puVar11;\n  uint *puVar12;\n  int iVar13;\n  int iVar14;\n  \n  iVar9 = param_3 + param_4 * 8;\n  iVar13 = param_4 * 4;\n  iVar10 = iVar9 + iVar13;\n  iVar9 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar9,param_4,2);\n  puVar12 = (uint *)(param_1 + iVar13);\n  iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_6,param_3,param_4);\n  iVar14 = param_5 * 4;\n  *puVar12 = iVar3 + iVar9;\n  uVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar10,param_5,2);\n  iVar10 = iVar10 + param_4 * -8;\n  *(undefined4 *)(param_6 + iVar14) = uVar4;\n  puVar11 = (uint *)(param_6 + iVar13);\n  if (param_5 < param_4) {\n    iVar9 = param_5 + 1;\n    if ((iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)) {\n      uVar5 = 1;\n      if (param_4 <= iVar9) goto LAB_00062354;\n      iVar9 = param_5 + 2;\n      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;\n      *(int *)(param_6 + iVar14 + 4) = iVar3;\n      if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }\n    }\n    uVar5 = 0;\n    if ((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)) {\n      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);\n      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);\n      do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);\n    uVar5 = *puVar11 + iVar9;\n  }\nLAB_00062354:\n  puVar2 = PTR___gmpn_lshift_0009756c;\n  param_4 = param_4 + 1;\n  *puVar11 = uVar5;\n  (*(code *)puVar2)(param_6,param_6,param_4,1);\n  iVar9 = param_4;\n  do {\n    iVar9 = iVar9 + -1;\n    if (iVar9 < 0) goto LAB_000623a4;\n    uVar5 = *puVar12;\n    uVar8 = *puVar11;\n    puVar12 = puVar12 + -1;\n    puVar11 = puVar11 + -1;\n  } while (uVar5 == uVar8);\n  if (uVar8 < uVar5) {\nLAB_000623a4:\n    uVar4 = 0;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4);\n  }\n  else {\n    uVar4 = 0xffffffff;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);\n  }\n  (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,param_6,param_4);\n  return uVar4;\n}" type_identifier (function_declarator "__gmpn_toom_eval_dgr3_pm2\n          (int param_1,undefined4 param_2,int param_3,int param_4,int param_5,int param_6)" identifier (parameter_list "(int param_1,undefined4 param_2,int param_3,int param_4,int param_5,int param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  uint *puVar11;\n  uint *puVar12;\n  int iVar13;\n  int iVar14;\n  \n  iVar9 = param_3 + param_4 * 8;\n  iVar13 = param_4 * 4;\n  iVar10 = iVar9 + iVar13;\n  iVar9 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar9,param_4,2);\n  puVar12 = (uint *)(param_1 + iVar13);\n  iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_6,param_3,param_4);\n  iVar14 = param_5 * 4;\n  *puVar12 = iVar3 + iVar9;\n  uVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar10,param_5,2);\n  iVar10 = iVar10 + param_4 * -8;\n  *(undefined4 *)(param_6 + iVar14) = uVar4;\n  puVar11 = (uint *)(param_6 + iVar13);\n  if (param_5 < param_4) {\n    iVar9 = param_5 + 1;\n    if ((iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)) {\n      uVar5 = 1;\n      if (param_4 <= iVar9) goto LAB_00062354;\n      iVar9 = param_5 + 2;\n      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;\n      *(int *)(param_6 + iVar14 + 4) = iVar3;\n      if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }\n    }\n    uVar5 = 0;\n    if ((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)) {\n      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);\n      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);\n      do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);\n    uVar5 = *puVar11 + iVar9;\n  }\nLAB_00062354:\n  puVar2 = PTR___gmpn_lshift_0009756c;\n  param_4 = param_4 + 1;\n  *puVar11 = uVar5;\n  (*(code *)puVar2)(param_6,param_6,param_4,1);\n  iVar9 = param_4;\n  do {\n    iVar9 = iVar9 + -1;\n    if (iVar9 < 0) goto LAB_000623a4;\n    uVar5 = *puVar12;\n    uVar8 = *puVar11;\n    puVar12 = puVar12 + -1;\n    puVar11 = puVar11 + -1;\n  } while (uVar5 == uVar8);\n  if (uVar8 < uVar5) {\nLAB_000623a4:\n    uVar4 = 0;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4);\n  }\n  else {\n    uVar4 = 0xffffffff;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);\n  }\n  (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,param_6,param_4);\n  return uVar4;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (expression_statement "iVar9 = param_3 + param_4 * 8;" (assignment_expression "iVar9 = param_3 + param_4 * 8" identifier = (binary_expression "param_3 + param_4 * 8" identifier + (binary_expression "param_4 * 8" identifier * number_literal))) ;) (expression_statement "iVar13 = param_4 * 4;" (assignment_expression "iVar13 = param_4 * 4" identifier = (binary_expression "param_4 * 4" identifier * number_literal)) ;) (expression_statement "iVar10 = iVar9 + iVar13;" (assignment_expression "iVar10 = iVar9 + iVar13" identifier = (binary_expression "iVar9 + iVar13" identifier + identifier)) ;) (expression_statement "iVar9 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar9,param_4,2);" (assignment_expression "iVar9 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar9,param_4,2)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar9,param_4,2)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009756c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009756c" * (cast_expression "(code *)PTR___gmpn_lshift_0009756c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,iVar9,param_4,2)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "puVar12 = (uint *)(param_1 + iVar13);" (assignment_expression "puVar12 = (uint *)(param_1 + iVar13)" identifier = (cast_expression "(uint *)(param_1 + iVar13)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar13)" ( (binary_expression "param_1 + iVar13" identifier + identifier) )))) ;) (expression_statement "iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_6,param_3,param_4);" (assignment_expression "iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_6,param_3,param_4)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_6,param_3,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_6,param_3,param_4)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar14 = param_5 * 4;" (assignment_expression "iVar14 = param_5 * 4" identifier = (binary_expression "param_5 * 4" identifier * number_literal)) ;) (expression_statement "*puVar12 = iVar3 + iVar9;" (assignment_expression "*puVar12 = iVar3 + iVar9" (pointer_expression "*puVar12" * identifier) = (binary_expression "iVar3 + iVar9" identifier + identifier)) ;) (expression_statement "uVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar10,param_5,2);" (assignment_expression "uVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar10,param_5,2)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar10,param_5,2)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009756c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009756c" * (cast_expression "(code *)PTR___gmpn_lshift_0009756c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,iVar10,param_5,2)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar10 = iVar10 + param_4 * -8;" (assignment_expression "iVar10 = iVar10 + param_4 * -8" identifier = (binary_expression "iVar10 + param_4 * -8" identifier + (binary_expression "param_4 * -8" identifier * number_literal))) ;) (expression_statement "*(undefined4 *)(param_6 + iVar14) = uVar4;" (assignment_expression "*(undefined4 *)(param_6 + iVar14) = uVar4" (pointer_expression "*(undefined4 *)(param_6 + iVar14)" * (cast_expression "(undefined4 *)(param_6 + iVar14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + iVar14)" ( (binary_expression "param_6 + iVar14" identifier + identifier) )))) = identifier) ;) (expression_statement "puVar11 = (uint *)(param_6 + iVar13);" (assignment_expression "puVar11 = (uint *)(param_6 + iVar13)" identifier = (cast_expression "(uint *)(param_6 + iVar13)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + iVar13)" ( (binary_expression "param_6 + iVar13" identifier + identifier) )))) ;) (if_statement "if (param_5 < param_4) {\n    iVar9 = param_5 + 1;\n    if ((iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)) {\n      uVar5 = 1;\n      if (param_4 <= iVar9) goto LAB_00062354;\n      iVar9 = param_5 + 2;\n      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;\n      *(int *)(param_6 + iVar14 + 4) = iVar3;\n      if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }\n    }\n    uVar5 = 0;\n    if ((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)) {\n      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);\n      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);\n      do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);\n    uVar5 = *puVar11 + iVar9;\n  }" if (parenthesized_expression "(param_5 < param_4)" ( (binary_expression "param_5 < param_4" identifier < identifier) )) (compound_statement "{\n    iVar9 = param_5 + 1;\n    if ((iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)) {\n      uVar5 = 1;\n      if (param_4 <= iVar9) goto LAB_00062354;\n      iVar9 = param_5 + 2;\n      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;\n      *(int *)(param_6 + iVar14 + 4) = iVar3;\n      if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }\n    }\n    uVar5 = 0;\n    if ((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)) {\n      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);\n      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);\n      do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));\n      uVar5 = 0;\n    }\n  }" { (expression_statement "iVar9 = param_5 + 1;" (assignment_expression "iVar9 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (if_statement "if ((iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)) {\n      uVar5 = 1;\n      if (param_4 <= iVar9) goto LAB_00062354;\n      iVar9 = param_5 + 2;\n      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;\n      *(int *)(param_6 + iVar14 + 4) = iVar3;\n      if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }\n    }" if (parenthesized_expression "((iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0))" ( (binary_expression "(iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)" ( (comma_expression "iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0" (assignment_expression "iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,iVar10,param_6,iVar9)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      uVar5 = 1;\n      if (param_4 <= iVar9) goto LAB_00062354;\n      iVar9 = param_5 + 2;\n      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;\n      *(int *)(param_6 + iVar14 + 4) = iVar3;\n      if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }\n    }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (param_4 <= iVar9) goto LAB_00062354;" if (parenthesized_expression "(param_4 <= iVar9)" ( (binary_expression "param_4 <= iVar9" identifier <= identifier) )) (goto_statement "goto LAB_00062354;" goto statement_identifier ;)) (expression_statement "iVar9 = param_5 + 2;" (assignment_expression "iVar9 = param_5 + 2" identifier = (binary_expression "param_5 + 2" identifier + number_literal)) ;) (expression_statement "iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;" (assignment_expression "iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1" identifier = (binary_expression "*(int *)(iVar10 + iVar14 + 4) + 1" (pointer_expression "*(int *)(iVar10 + iVar14 + 4)" * (cast_expression "(int *)(iVar10 + iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar14 + 4)" ( (binary_expression "iVar10 + iVar14 + 4" (binary_expression "iVar10 + iVar14" identifier + identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(param_6 + iVar14 + 4) = iVar3;" (assignment_expression "*(int *)(param_6 + iVar14 + 4) = iVar3" (pointer_expression "*(int *)(param_6 + iVar14 + 4)" * (cast_expression "(int *)(param_6 + iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + iVar14 + 4)" ( (binary_expression "param_6 + iVar14 + 4" (binary_expression "param_6 + iVar14" identifier + identifier) + number_literal) )))) = identifier) ;) (if_statement "if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }" { (expression_statement "iVar3 = iVar10 + iVar14;" (assignment_expression "iVar3 = iVar10 + iVar14" identifier = (binary_expression "iVar10 + iVar14" identifier + identifier)) ;) (expression_statement "puVar6 = (undefined4 *)(param_6 + iVar14);" (assignment_expression "puVar6 = (undefined4 *)(param_6 + iVar14)" identifier = (cast_expression "(undefined4 *)(param_6 + iVar14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + iVar14)" ( (binary_expression "param_6 + iVar14" identifier + identifier) )))) ;) (do_statement "do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);" do (compound_statement "{\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (param_4 == iVar9) goto LAB_00062354;" if (parenthesized_expression "(param_4 == iVar9)" ( (binary_expression "param_4 == iVar9" identifier == identifier) )) (goto_statement "goto LAB_00062354;" goto statement_identifier ;)) (expression_statement "piVar1 = (int *)(iVar3 + 8);" (assignment_expression "piVar1 = (int *)(iVar3 + 8)" identifier = (cast_expression "(int *)(iVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = iVar3 + 4;" (assignment_expression "iVar3 = iVar3 + 4" identifier = (binary_expression "iVar3 + 4" identifier + number_literal)) ;) (expression_statement "iVar14 = *piVar1 + 1;" (assignment_expression "iVar14 = *piVar1 + 1" identifier = (binary_expression "*piVar1 + 1" (pointer_expression "*piVar1" * identifier) + number_literal)) ;) (expression_statement "puVar6[2] = iVar14;" (assignment_expression "puVar6[2] = iVar14" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) ;) })) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (if_statement "if ((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)) {\n      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);\n      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);\n      do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));\n      uVar5 = 0;\n    }" if (parenthesized_expression "((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4))" ( (binary_expression "(param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)" (parenthesized_expression "(param_6 != iVar10)" ( (binary_expression "param_6 != iVar10" identifier != identifier) )) && (parenthesized_expression "(uVar5 = 0, iVar9 < param_4)" ( (comma_expression "uVar5 = 0, iVar9 < param_4" (assignment_expression "uVar5 = 0" identifier = number_literal) , (binary_expression "iVar9 < param_4" identifier < identifier)) ))) )) (compound_statement "{\n      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);\n      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);\n      do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));\n      uVar5 = 0;\n    }" { (expression_statement "puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);" (assignment_expression "puVar7 = (undefined4 *)(iVar10 + iVar9 * 4)" identifier = (cast_expression "(undefined4 *)(iVar10 + iVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar9 * 4)" ( (binary_expression "iVar10 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) ;) (expression_statement "puVar6 = (undefined4 *)(param_6 + iVar9 * 4);" (assignment_expression "puVar6 = (undefined4 *)(param_6 + iVar9 * 4)" identifier = (cast_expression "(undefined4 *)(param_6 + iVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + iVar9 * 4)" ( (binary_expression "param_6 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) ;) (do_statement "do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));" do (compound_statement "{\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      }" { (expression_statement "uVar4 = *puVar7;" (assignment_expression "uVar4 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) (expression_statement "*puVar6 = uVar4;" (assignment_expression "*puVar6 = uVar4" (pointer_expression "*puVar6" * identifier) = identifier) ;) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar7 != (undefined4 *)(iVar10 + iVar13))" ( (binary_expression "puVar7 != (undefined4 *)(iVar10 + iVar13)" identifier != (cast_expression "(undefined4 *)(iVar10 + iVar13)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar13)" ( (binary_expression "iVar10 + iVar13" identifier + identifier) )))) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);\n    uVar5 = *puVar11 + iVar9;\n  }" else (compound_statement "{\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);\n    uVar5 = *puVar11 + iVar9;\n  }" { (expression_statement "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);" (assignment_expression "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4)" identifier = (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,iVar10,param_6,param_4)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar5 = *puVar11 + iVar9;" (assignment_expression "uVar5 = *puVar11 + iVar9" identifier = (binary_expression "*puVar11 + iVar9" (pointer_expression "*puVar11" * identifier) + identifier)) ;) }))) (labeled_statement "LAB_00062354:\n  puVar2 = PTR___gmpn_lshift_0009756c;" statement_identifier : (expression_statement "puVar2 = PTR___gmpn_lshift_0009756c;" (assignment_expression "puVar2 = PTR___gmpn_lshift_0009756c" identifier = identifier) ;)) (expression_statement "param_4 = param_4 + 1;" (assignment_expression "param_4 = param_4 + 1" identifier = (binary_expression "param_4 + 1" identifier + number_literal)) ;) (expression_statement "*puVar11 = uVar5;" (assignment_expression "*puVar11 = uVar5" (pointer_expression "*puVar11" * identifier) = identifier) ;) (expression_statement "(*(code *)puVar2)(param_6,param_6,param_4,1);" (call_expression "(*(code *)puVar2)(param_6,param_6,param_4,1)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,param_6,param_4,1)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "iVar9 = param_4;" (assignment_expression "iVar9 = param_4" identifier = identifier) ;) (do_statement "do {\n    iVar9 = iVar9 + -1;\n    if (iVar9 < 0) goto LAB_000623a4;\n    uVar5 = *puVar12;\n    uVar8 = *puVar11;\n    puVar12 = puVar12 + -1;\n    puVar11 = puVar11 + -1;\n  } while (uVar5 == uVar8);" do (compound_statement "{\n    iVar9 = iVar9 + -1;\n    if (iVar9 < 0) goto LAB_000623a4;\n    uVar5 = *puVar12;\n    uVar8 = *puVar11;\n    puVar12 = puVar12 + -1;\n    puVar11 = puVar11 + -1;\n  }" { (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (if_statement "if (iVar9 < 0) goto LAB_000623a4;" if (parenthesized_expression "(iVar9 < 0)" ( (binary_expression "iVar9 < 0" identifier < number_literal) )) (goto_statement "goto LAB_000623a4;" goto statement_identifier ;)) (expression_statement "uVar5 = *puVar12;" (assignment_expression "uVar5 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "uVar8 = *puVar11;" (assignment_expression "uVar8 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "puVar12 = puVar12 + -1;" (assignment_expression "puVar12 = puVar12 + -1" identifier = (binary_expression "puVar12 + -1" identifier + number_literal)) ;) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" identifier = (binary_expression "puVar11 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 == uVar8)" ( (binary_expression "uVar5 == uVar8" identifier == identifier) )) ;) (if_statement "if (uVar8 < uVar5) {\nLAB_000623a4:\n    uVar4 = 0;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4);\n  }\n  else {\n    uVar4 = 0xffffffff;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);\n  }" if (parenthesized_expression "(uVar8 < uVar5)" ( (binary_expression "uVar8 < uVar5" identifier < identifier) )) (compound_statement "{\nLAB_000623a4:\n    uVar4 = 0;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4);\n  }" { (labeled_statement "LAB_000623a4:\n    uVar4 = 0;" statement_identifier : (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;)) (expression_statement "(*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4);" (call_expression "(*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_sub_n_00097514)" ( (pointer_expression "*(code *)PTR___gmpn_sub_n_00097514" * (cast_expression "(code *)PTR___gmpn_sub_n_00097514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,param_1,param_6,param_4)" ( identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n    uVar4 = 0xffffffff;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);\n  }" else (compound_statement "{\n    uVar4 = 0xffffffff;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);\n  }" { (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "(*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);" (call_expression "(*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_sub_n_00097514)" ( (pointer_expression "*(code *)PTR___gmpn_sub_n_00097514" * (cast_expression "(code *)PTR___gmpn_sub_n_00097514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,param_6,param_1,param_4)" ( identifier , identifier , identifier , identifier ))) ;) }))) (expression_statement "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,param_6,param_4);" (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,param_6,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" ( (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" * (cast_expression "(code *)PTR___gmpn_add_n_00097334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_1,param_6,param_4)" ( identifier , identifier , identifier , identifier ))) ;) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_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 ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return IDENT ;) })))
(function_definition "undefined4\n__gmpn_toom_eval_dgr3_pm2\n          (int param_1,undefined4 param_2,int param_3,int param_4,int param_5,int param_6)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  uint *puVar11;\n  uint *puVar12;\n  int iVar13;\n  int iVar14;\n  \n  iVar9 = param_3 + param_4 * 8;\n  iVar13 = param_4 * 4;\n  iVar10 = iVar9 + iVar13;\n  iVar9 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar9,param_4,2);\n  puVar12 = (uint *)(param_1 + iVar13);\n  iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_6,param_3,param_4);\n  iVar14 = param_5 * 4;\n  *puVar12 = iVar3 + iVar9;\n  uVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar10,param_5,2);\n  iVar10 = iVar10 + param_4 * -8;\n  *(undefined4 *)(param_6 + iVar14) = uVar4;\n  puVar11 = (uint *)(param_6 + iVar13);\n  if (param_5 < param_4) {\n    iVar9 = param_5 + 1;\n    if ((iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)) {\n      uVar5 = 1;\n      if (param_4 <= iVar9) goto LAB_00062354;\n      iVar9 = param_5 + 2;\n      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;\n      *(int *)(param_6 + iVar14 + 4) = iVar3;\n      if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }\n    }\n    uVar5 = 0;\n    if ((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)) {\n      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);\n      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);\n      do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);\n    uVar5 = *puVar11 + iVar9;\n  }\nLAB_00062354:\n  puVar2 = PTR___gmpn_lshift_0009756c;\n  param_4 = param_4 + 1;\n  *puVar11 = uVar5;\n  (*(code *)puVar2)(param_6,param_6,param_4,1);\n  iVar9 = param_4;\n  do {\n    iVar9 = iVar9 + -1;\n    if (iVar9 < 0) goto LAB_000623a4;\n    uVar5 = *puVar12;\n    uVar8 = *puVar11;\n    puVar12 = puVar12 + -1;\n    puVar11 = puVar11 + -1;\n  } while (uVar5 == uVar8);\n  if (uVar8 < uVar5) {\nLAB_000623a4:\n    uVar4 = 0;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4);\n  }\n  else {\n    uVar4 = 0xffffffff;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);\n  }\n  (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,param_6,param_4);\n  return uVar4;\n}" (type_identifier "undefined4") (function_declarator "__gmpn_toom_eval_dgr3_pm2\n          (int param_1,undefined4 param_2,int param_3,int param_4,int param_5,int param_6)" (identifier "__gmpn_toom_eval_dgr3_pm2") (parameter_list "(int param_1,undefined4 param_2,int param_3,int param_4,int param_5,int param_6)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) () ")"))) (compound_statement "{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  uint *puVar11;\n  uint *puVar12;\n  int iVar13;\n  int iVar14;\n  \n  iVar9 = param_3 + param_4 * 8;\n  iVar13 = param_4 * 4;\n  iVar10 = iVar9 + iVar13;\n  iVar9 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar9,param_4,2);\n  puVar12 = (uint *)(param_1 + iVar13);\n  iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_6,param_3,param_4);\n  iVar14 = param_5 * 4;\n  *puVar12 = iVar3 + iVar9;\n  uVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar10,param_5,2);\n  iVar10 = iVar10 + param_4 * -8;\n  *(undefined4 *)(param_6 + iVar14) = uVar4;\n  puVar11 = (uint *)(param_6 + iVar13);\n  if (param_5 < param_4) {\n    iVar9 = param_5 + 1;\n    if ((iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)) {\n      uVar5 = 1;\n      if (param_4 <= iVar9) goto LAB_00062354;\n      iVar9 = param_5 + 2;\n      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;\n      *(int *)(param_6 + iVar14 + 4) = iVar3;\n      if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }\n    }\n    uVar5 = 0;\n    if ((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)) {\n      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);\n      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);\n      do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);\n    uVar5 = *puVar11 + iVar9;\n  }\nLAB_00062354:\n  puVar2 = PTR___gmpn_lshift_0009756c;\n  param_4 = param_4 + 1;\n  *puVar11 = uVar5;\n  (*(code *)puVar2)(param_6,param_6,param_4,1);\n  iVar9 = param_4;\n  do {\n    iVar9 = iVar9 + -1;\n    if (iVar9 < 0) goto LAB_000623a4;\n    uVar5 = *puVar12;\n    uVar8 = *puVar11;\n    puVar12 = puVar12 + -1;\n    puVar11 = puVar11 + -1;\n  } while (uVar5 == uVar8);\n  if (uVar8 < uVar5) {\nLAB_000623a4:\n    uVar4 = 0;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4);\n  }\n  else {\n    uVar4 = 0xffffffff;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);\n  }\n  (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,param_6,param_4);\n  return uVar4;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "uint *puVar11;" (type_identifier "uint") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "uint *puVar12;" (type_identifier "uint") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (expression_statement "iVar9 = param_3 + param_4 * 8;" (assignment_expression "iVar9 = param_3 + param_4 * 8" (identifier "iVar9") (= "=") (binary_expression "param_3 + param_4 * 8" (identifier "param_3") (+ "+") (binary_expression "param_4 * 8" (identifier "param_4") (* "*") (number_literal "8")))) (; ";")) (expression_statement "iVar13 = param_4 * 4;" (assignment_expression "iVar13 = param_4 * 4" (identifier "iVar13") (= "=") (binary_expression "param_4 * 4" (identifier "param_4") (* "*") (number_literal "4"))) (; ";")) (expression_statement "iVar10 = iVar9 + iVar13;" (assignment_expression "iVar10 = iVar9 + iVar13" (identifier "iVar10") (= "=") (binary_expression "iVar9 + iVar13" (identifier "iVar9") (+ "+") (identifier "iVar13"))) (; ";")) (expression_statement "iVar9 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar9,param_4,2);" (assignment_expression "iVar9 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar9,param_4,2)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar9,param_4,2)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009756c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_lshift_0009756c" (* "*") (cast_expression "(code *)PTR___gmpn_lshift_0009756c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_lshift_0009756c"))) () ")")) (argument_list "(param_6,iVar9,param_4,2)" (( "(") (identifier "param_6") (, ",") (identifier "iVar9") (, ",") (identifier "param_4") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "puVar12 = (uint *)(param_1 + iVar13);" (assignment_expression "puVar12 = (uint *)(param_1 + iVar13)" (identifier "puVar12") (= "=") (cast_expression "(uint *)(param_1 + iVar13)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar13)" (( "(") (binary_expression "param_1 + iVar13" (identifier "param_1") (+ "+") (identifier "iVar13")) () ")")))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_6,param_3,param_4);" (assignment_expression "iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_6,param_3,param_4)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_6,param_3,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" (( "(") (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" (* "*") (cast_expression "(code *)PTR___gmpn_add_n_00097334" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_add_n_00097334"))) () ")")) (argument_list "(param_1,param_6,param_3,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_6") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "iVar14 = param_5 * 4;" (assignment_expression "iVar14 = param_5 * 4" (identifier "iVar14") (= "=") (binary_expression "param_5 * 4" (identifier "param_5") (* "*") (number_literal "4"))) (; ";")) (expression_statement "*puVar12 = iVar3 + iVar9;" (assignment_expression "*puVar12 = iVar3 + iVar9" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (binary_expression "iVar3 + iVar9" (identifier "iVar3") (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "uVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar10,param_5,2);" (assignment_expression "uVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar10,param_5,2)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar10,param_5,2)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009756c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_lshift_0009756c" (* "*") (cast_expression "(code *)PTR___gmpn_lshift_0009756c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_lshift_0009756c"))) () ")")) (argument_list "(param_6,iVar10,param_5,2)" (( "(") (identifier "param_6") (, ",") (identifier "iVar10") (, ",") (identifier "param_5") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "iVar10 = iVar10 + param_4 * -8;" (assignment_expression "iVar10 = iVar10 + param_4 * -8" (identifier "iVar10") (= "=") (binary_expression "iVar10 + param_4 * -8" (identifier "iVar10") (+ "+") (binary_expression "param_4 * -8" (identifier "param_4") (* "*") (number_literal "-8")))) (; ";")) (expression_statement "*(undefined4 *)(param_6 + iVar14) = uVar4;" (assignment_expression "*(undefined4 *)(param_6 + iVar14) = uVar4" (pointer_expression "*(undefined4 *)(param_6 + iVar14)" (* "*") (cast_expression "(undefined4 *)(param_6 + iVar14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + iVar14)" (( "(") (binary_expression "param_6 + iVar14" (identifier "param_6") (+ "+") (identifier "iVar14")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar11 = (uint *)(param_6 + iVar13);" (assignment_expression "puVar11 = (uint *)(param_6 + iVar13)" (identifier "puVar11") (= "=") (cast_expression "(uint *)(param_6 + iVar13)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + iVar13)" (( "(") (binary_expression "param_6 + iVar13" (identifier "param_6") (+ "+") (identifier "iVar13")) () ")")))) (; ";")) (if_statement "if (param_5 < param_4) {\n    iVar9 = param_5 + 1;\n    if ((iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)) {\n      uVar5 = 1;\n      if (param_4 <= iVar9) goto LAB_00062354;\n      iVar9 = param_5 + 2;\n      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;\n      *(int *)(param_6 + iVar14 + 4) = iVar3;\n      if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }\n    }\n    uVar5 = 0;\n    if ((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)) {\n      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);\n      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);\n      do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);\n    uVar5 = *puVar11 + iVar9;\n  }" (if "if") (parenthesized_expression "(param_5 < param_4)" (( "(") (binary_expression "param_5 < param_4" (identifier "param_5") (< "<") (identifier "param_4")) () ")")) (compound_statement "{\n    iVar9 = param_5 + 1;\n    if ((iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)) {\n      uVar5 = 1;\n      if (param_4 <= iVar9) goto LAB_00062354;\n      iVar9 = param_5 + 2;\n      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;\n      *(int *)(param_6 + iVar14 + 4) = iVar3;\n      if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }\n    }\n    uVar5 = 0;\n    if ((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)) {\n      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);\n      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);\n      do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));\n      uVar5 = 0;\n    }\n  }" ({ "{") (expression_statement "iVar9 = param_5 + 1;" (assignment_expression "iVar9 = param_5 + 1" (identifier "iVar9") (= "=") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)) {\n      uVar5 = 1;\n      if (param_4 <= iVar9) goto LAB_00062354;\n      iVar9 = param_5 + 2;\n      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;\n      *(int *)(param_6 + iVar14 + 4) = iVar3;\n      if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }\n    }" (if "if") (parenthesized_expression "((iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0))" (( "(") (binary_expression "(iVar9 != 0) &&\n       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)" (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)" (( "(") (comma_expression "iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0" (assignment_expression "iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" (( "(") (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" (* "*") (cast_expression "(code *)PTR___gmpn_add_n_00097334" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_add_n_00097334"))) () ")")) (argument_list "(param_6,iVar10,param_6,iVar9)" (( "(") (identifier "param_6") (, ",") (identifier "iVar10") (, ",") (identifier "param_6") (, ",") (identifier "iVar9") () ")")))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      uVar5 = 1;\n      if (param_4 <= iVar9) goto LAB_00062354;\n      iVar9 = param_5 + 2;\n      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;\n      *(int *)(param_6 + iVar14 + 4) = iVar3;\n      if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }\n    }" ({ "{") (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (if_statement "if (param_4 <= iVar9) goto LAB_00062354;" (if "if") (parenthesized_expression "(param_4 <= iVar9)" (( "(") (binary_expression "param_4 <= iVar9" (identifier "param_4") (<= "<=") (identifier "iVar9")) () ")")) (goto_statement "goto LAB_00062354;" (goto "goto") (statement_identifier "LAB_00062354") (; ";"))) (expression_statement "iVar9 = param_5 + 2;" (assignment_expression "iVar9 = param_5 + 2" (identifier "iVar9") (= "=") (binary_expression "param_5 + 2" (identifier "param_5") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;" (assignment_expression "iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1" (identifier "iVar3") (= "=") (binary_expression "*(int *)(iVar10 + iVar14 + 4) + 1" (pointer_expression "*(int *)(iVar10 + iVar14 + 4)" (* "*") (cast_expression "(int *)(iVar10 + iVar14 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + iVar14 + 4)" (( "(") (binary_expression "iVar10 + iVar14 + 4" (binary_expression "iVar10 + iVar14" (identifier "iVar10") (+ "+") (identifier "iVar14")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(param_6 + iVar14 + 4) = iVar3;" (assignment_expression "*(int *)(param_6 + iVar14 + 4) = iVar3" (pointer_expression "*(int *)(param_6 + iVar14 + 4)" (* "*") (cast_expression "(int *)(param_6 + iVar14 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + iVar14 + 4)" (( "(") (binary_expression "param_6 + iVar14 + 4" (binary_expression "param_6 + iVar14" (identifier "param_6") (+ "+") (identifier "iVar14")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar3 == 0) {\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = iVar10 + iVar14;\n        puVar6 = (undefined4 *)(param_6 + iVar14);\n        do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);\n      }" ({ "{") (expression_statement "iVar3 = iVar10 + iVar14;" (assignment_expression "iVar3 = iVar10 + iVar14" (identifier "iVar3") (= "=") (binary_expression "iVar10 + iVar14" (identifier "iVar10") (+ "+") (identifier "iVar14"))) (; ";")) (expression_statement "puVar6 = (undefined4 *)(param_6 + iVar14);" (assignment_expression "puVar6 = (undefined4 *)(param_6 + iVar14)" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(param_6 + iVar14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + iVar14)" (( "(") (binary_expression "param_6 + iVar14" (identifier "param_6") (+ "+") (identifier "iVar14")) () ")")))) (; ";")) (do_statement "do {\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        } while (iVar14 == 0);" (do "do") (compound_statement "{\n          uVar5 = 1;\n          if (param_4 == iVar9) goto LAB_00062354;\n          piVar1 = (int *)(iVar3 + 8);\n          iVar9 = iVar9 + 1;\n          iVar3 = iVar3 + 4;\n          iVar14 = *piVar1 + 1;\n          puVar6[2] = iVar14;\n          puVar6 = puVar6 + 1;\n        }" ({ "{") (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (if_statement "if (param_4 == iVar9) goto LAB_00062354;" (if "if") (parenthesized_expression "(param_4 == iVar9)" (( "(") (binary_expression "param_4 == iVar9" (identifier "param_4") (== "==") (identifier "iVar9")) () ")")) (goto_statement "goto LAB_00062354;" (goto "goto") (statement_identifier "LAB_00062354") (; ";"))) (expression_statement "piVar1 = (int *)(iVar3 + 8);" (assignment_expression "piVar1 = (int *)(iVar3 + 8)" (identifier "piVar1") (= "=") (cast_expression "(int *)(iVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = iVar3 + 4;" (assignment_expression "iVar3 = iVar3 + 4" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar14 = *piVar1 + 1;" (assignment_expression "iVar14 = *piVar1 + 1" (identifier "iVar14") (= "=") (binary_expression "*piVar1 + 1" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar6[2] = iVar14;" (assignment_expression "puVar6[2] = iVar14" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar14")) (; ";")) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" (identifier "puVar6") (= "=") (binary_expression "puVar6 + 1" (identifier "puVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)) {\n      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);\n      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);\n      do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));\n      uVar5 = 0;\n    }" (if "if") (parenthesized_expression "((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4))" (( "(") (binary_expression "(param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)" (parenthesized_expression "(param_6 != iVar10)" (( "(") (binary_expression "param_6 != iVar10" (identifier "param_6") (!= "!=") (identifier "iVar10")) () ")")) (&& "&&") (parenthesized_expression "(uVar5 = 0, iVar9 < param_4)" (( "(") (comma_expression "uVar5 = 0, iVar9 < param_4" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (, ",") (binary_expression "iVar9 < param_4" (identifier "iVar9") (< "<") (identifier "param_4"))) () ")"))) () ")")) (compound_statement "{\n      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);\n      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);\n      do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));\n      uVar5 = 0;\n    }" ({ "{") (expression_statement "puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);" (assignment_expression "puVar7 = (undefined4 *)(iVar10 + iVar9 * 4)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(iVar10 + iVar9 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + iVar9 * 4)" (( "(") (binary_expression "iVar10 + iVar9 * 4" (identifier "iVar10") (+ "+") (binary_expression "iVar9 * 4" (identifier "iVar9") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "puVar6 = (undefined4 *)(param_6 + iVar9 * 4);" (assignment_expression "puVar6 = (undefined4 *)(param_6 + iVar9 * 4)" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(param_6 + iVar9 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + iVar9 * 4)" (( "(") (binary_expression "param_6 + iVar9 * 4" (identifier "param_6") (+ "+") (binary_expression "iVar9 * 4" (identifier "iVar9") (* "*") (number_literal "4"))) () ")")))) (; ";")) (do_statement "do {\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));" (do "do") (compound_statement "{\n        uVar4 = *puVar7;\n        puVar7 = puVar7 + 1;\n        *puVar6 = uVar4;\n        puVar6 = puVar6 + 1;\n      }" ({ "{") (expression_statement "uVar4 = *puVar7;" (assignment_expression "uVar4 = *puVar7" (identifier "uVar4") (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar6 = uVar4;" (assignment_expression "*puVar6 = uVar4" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" (identifier "puVar6") (= "=") (binary_expression "puVar6 + 1" (identifier "puVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar7 != (undefined4 *)(iVar10 + iVar13))" (( "(") (binary_expression "puVar7 != (undefined4 *)(iVar10 + iVar13)" (identifier "puVar7") (!= "!=") (cast_expression "(undefined4 *)(iVar10 + iVar13)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + iVar13)" (( "(") (binary_expression "iVar10 + iVar13" (identifier "iVar10") (+ "+") (identifier "iVar13")) () ")")))) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);\n    uVar5 = *puVar11 + iVar9;\n  }" (else "else") (compound_statement "{\n    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);\n    uVar5 = *puVar11 + iVar9;\n  }" ({ "{") (expression_statement "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);" (assignment_expression "iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" (( "(") (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" (* "*") (cast_expression "(code *)PTR___gmpn_add_n_00097334" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_add_n_00097334"))) () ")")) (argument_list "(param_6,iVar10,param_6,param_4)" (( "(") (identifier "param_6") (, ",") (identifier "iVar10") (, ",") (identifier "param_6") (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "uVar5 = *puVar11 + iVar9;" (assignment_expression "uVar5 = *puVar11 + iVar9" (identifier "uVar5") (= "=") (binary_expression "*puVar11 + iVar9" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (+ "+") (identifier "iVar9"))) (; ";")) (} "}")))) (labeled_statement "LAB_00062354:\n  puVar2 = PTR___gmpn_lshift_0009756c;" (statement_identifier "LAB_00062354") (: ":") (expression_statement "puVar2 = PTR___gmpn_lshift_0009756c;" (assignment_expression "puVar2 = PTR___gmpn_lshift_0009756c" (identifier "puVar2") (= "=") (identifier "PTR___gmpn_lshift_0009756c")) (; ";"))) (expression_statement "param_4 = param_4 + 1;" (assignment_expression "param_4 = param_4 + 1" (identifier "param_4") (= "=") (binary_expression "param_4 + 1" (identifier "param_4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar11 = uVar5;" (assignment_expression "*puVar11 = uVar5" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "(*(code *)puVar2)(param_6,param_6,param_4,1);" (call_expression "(*(code *)puVar2)(param_6,param_6,param_4,1)" (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 "(param_6,param_6,param_4,1)" (( "(") (identifier "param_6") (, ",") (identifier "param_6") (, ",") (identifier "param_4") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "iVar9 = param_4;" (assignment_expression "iVar9 = param_4" (identifier "iVar9") (= "=") (identifier "param_4")) (; ";")) (do_statement "do {\n    iVar9 = iVar9 + -1;\n    if (iVar9 < 0) goto LAB_000623a4;\n    uVar5 = *puVar12;\n    uVar8 = *puVar11;\n    puVar12 = puVar12 + -1;\n    puVar11 = puVar11 + -1;\n  } while (uVar5 == uVar8);" (do "do") (compound_statement "{\n    iVar9 = iVar9 + -1;\n    if (iVar9 < 0) goto LAB_000623a4;\n    uVar5 = *puVar12;\n    uVar8 = *puVar11;\n    puVar12 = puVar12 + -1;\n    puVar11 = puVar11 + -1;\n  }" ({ "{") (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar9 < 0) goto LAB_000623a4;" (if "if") (parenthesized_expression "(iVar9 < 0)" (( "(") (binary_expression "iVar9 < 0" (identifier "iVar9") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_000623a4;" (goto "goto") (statement_identifier "LAB_000623a4") (; ";"))) (expression_statement "uVar5 = *puVar12;" (assignment_expression "uVar5 = *puVar12" (identifier "uVar5") (= "=") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) (; ";")) (expression_statement "uVar8 = *puVar11;" (assignment_expression "uVar8 = *puVar11" (identifier "uVar8") (= "=") (pointer_expression "*puVar11" (* "*") (identifier "puVar11"))) (; ";")) (expression_statement "puVar12 = puVar12 + -1;" (assignment_expression "puVar12 = puVar12 + -1" (identifier "puVar12") (= "=") (binary_expression "puVar12 + -1" (identifier "puVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" (identifier "puVar11") (= "=") (binary_expression "puVar11 + -1" (identifier "puVar11") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 == uVar8)" (( "(") (binary_expression "uVar5 == uVar8" (identifier "uVar5") (== "==") (identifier "uVar8")) () ")")) (; ";")) (if_statement "if (uVar8 < uVar5) {\nLAB_000623a4:\n    uVar4 = 0;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4);\n  }\n  else {\n    uVar4 = 0xffffffff;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);\n  }" (if "if") (parenthesized_expression "(uVar8 < uVar5)" (( "(") (binary_expression "uVar8 < uVar5" (identifier "uVar8") (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\nLAB_000623a4:\n    uVar4 = 0;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4);\n  }" ({ "{") (labeled_statement "LAB_000623a4:\n    uVar4 = 0;" (statement_identifier "LAB_000623a4") (: ":") (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";"))) (expression_statement "(*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4);" (call_expression "(*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_sub_n_00097514)" (( "(") (pointer_expression "*(code *)PTR___gmpn_sub_n_00097514" (* "*") (cast_expression "(code *)PTR___gmpn_sub_n_00097514" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_sub_n_00097514"))) () ")")) (argument_list "(param_2,param_1,param_6,param_4)" (( "(") (identifier "param_2") (, ",") (identifier "param_1") (, ",") (identifier "param_6") (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    uVar4 = 0xffffffff;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);\n  }" (else "else") (compound_statement "{\n    uVar4 = 0xffffffff;\n    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);\n  }" ({ "{") (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" (identifier "uVar4") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "(*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);" (call_expression "(*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_sub_n_00097514)" (( "(") (pointer_expression "*(code *)PTR___gmpn_sub_n_00097514" (* "*") (cast_expression "(code *)PTR___gmpn_sub_n_00097514" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_sub_n_00097514"))) () ")")) (argument_list "(param_2,param_6,param_1,param_4)" (( "(") (identifier "param_2") (, ",") (identifier "param_6") (, ",") (identifier "param_1") (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}")))) (expression_statement "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,param_6,param_4);" (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,param_6,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_add_n_00097334)" (( "(") (pointer_expression "*(code *)PTR___gmpn_add_n_00097334" (* "*") (cast_expression "(code *)PTR___gmpn_add_n_00097334" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_add_n_00097334"))) () ")")) (argument_list "(param_1,param_1,param_6,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_1") (, ",") (identifier "param_6") (, ",") (identifier "param_4") () ")"))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))

int function_1
              (type_1 var_3,type_1 xm2,type_2 var_1,type_3 var_2,type_3 var_8,type_1 var_7)

{
  type_4 *puVar1;
  type_5 __gmp_c;
  int var_5;
  int var_4;
  type_5 var_9;
  type_6 var_15;
  type_5 *var_12;
  type_6 *var_14;
  type_2 var_10;
  type_1 var_13;
  type_6 var_16;
  type_2 var_6;
  type_1 var_11;
  
  var_6 = var_1 + var_2 * 2;
  var_5 = (*(type_7 *)PTR___gmpn_lshift_0009756c)(var_7,var_6,var_2,2);
  var_13 = var_3 + var_2;
  var_4 = (*(type_7 *)PTR___gmpn_add_n_00097334)(var_3,var_7,var_1,var_2);
  *var_13 = var_4 + var_5;
  var_9 = (*(type_7 *)PTR___gmpn_lshift_0009756c)(var_7,var_6 + var_2,var_8,2);
  var_6 = var_6 + var_2 + var_2 * -2;
  var_7[var_8] = var_9;
  var_14 = var_7 + var_2;
  if (var_8 < var_2) {
    var_5 = var_8 + 1;
    if ((var_5 != 0) &&
       (var_4 = (*(type_7 *)PTR___gmpn_add_n_00097334)(var_7,var_6,var_7,var_5), var_4 != 0)) {
      var_15 = 1;
      if (var_2 <= var_5) goto LAB_00062354;
      var_5 = var_8 + 2;
      var_9 = var_6[var_8 + 1];
      var_7[var_8 + 1] = var_9 + 1;
      if (var_9 + 1 == 0) {
        var_10 = var_6 + var_8;
        var_11 = var_7 + var_8;
        do {
          var_15 = 1;
          if (var_2 == var_5) goto LAB_00062354;
          var_9 = var_10[2];
          var_5 = var_5 + 1;
          var_10 = var_10 + 1;
          var_11[2] = var_9 + 1;
          var_11 = var_11 + 1;
        } while (var_9 + 1 == 0);
      }
    }
    var_15 = 0;
    if ((var_7 != var_6) && (var_15 = 0, var_5 < var_2)) {
      var_10 = var_6 + var_5;
      var_12 = var_7 + var_5;
      do {
        var_9 = *var_10;
        var_10 = var_10 + 1;
        *var_12 = var_9;
        var_12 = var_12 + 1;
      } while (var_10 != var_6 + var_2);
      var_15 = 0;
    }
  }
  else {
    var_5 = (*(type_7 *)PTR___gmpn_add_n_00097334)(var_7,var_6,var_7,var_2);
    var_15 = *var_14 + var_5;
  }
LAB_00062354:
  puVar1 = PTR___gmpn_lshift_0009756c;
  var_4 = var_2 + 1;
  *var_14 = var_15;
  (*(type_7 *)puVar1)(var_7,var_7,var_4,1);
  var_5 = var_4;
  do {
    var_5 = var_5 + -1;
    if (var_5 < 0) goto LAB_000623a4;
    var_15 = *var_13;
    var_16 = *var_14;
    var_13 = var_13 + -1;
    var_14 = var_14 + -1;
  } while (var_15 == var_16);
  if (var_16 < var_15) {
LAB_000623a4:
    var_5 = 0;
    (*(type_7 *)PTR___gmpn_sub_n_00097514)(xm2,var_3,var_7,var_4);
  }
  else {
    var_5 = -1;
    (*(type_7 *)PTR___gmpn_sub_n_00097514)(xm2,var_7,var_3,var_4);
  }
  (*(type_7 *)PTR___gmpn_add_n_00097334)(var_3,var_3,var_7,var_4);
  return var_5;
}


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

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

{
  int *piVar1;
  undefined *puVar2;
  int iVar3;
  undefined4 uVar4;
  uint uVar5;
  undefined4 *puVar6;
  undefined4 *puVar7;
  uint uVar8;
  int iVar9;
  int iVar10;
  uint *puVar11;
  uint *puVar12;
  int iVar13;
  int iVar14;
  
  iVar9 = param_3 + param_4 * 8;
  iVar13 = param_4 * 4;
  iVar10 = iVar9 + iVar13;
  iVar9 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar9,param_4,2);
  puVar12 = (uint *)(param_1 + iVar13);
  iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_6,param_3,param_4);
  iVar14 = param_5 * 4;
  *puVar12 = iVar3 + iVar9;
  uVar4 = (*(code *)PTR___gmpn_lshift_0009756c)(param_6,iVar10,param_5,2);
  iVar10 = iVar10 + param_4 * -8;
  *(undefined4 *)(param_6 + iVar14) = uVar4;
  puVar11 = (uint *)(param_6 + iVar13);
  if (param_5 < param_4) {
    iVar9 = param_5 + 1;
    if ((iVar9 != 0) &&
       (iVar3 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,iVar9), iVar3 != 0)) {
      uVar5 = 1;
      if (param_4 <= iVar9) goto LAB_00062354;
      iVar9 = param_5 + 2;
      iVar3 = *(int *)(iVar10 + iVar14 + 4) + 1;
      *(int *)(param_6 + iVar14 + 4) = iVar3;
      if (iVar3 == 0) {
        iVar3 = iVar10 + iVar14;
        puVar6 = (undefined4 *)(param_6 + iVar14);
        do {
          uVar5 = 1;
          if (param_4 == iVar9) goto LAB_00062354;
          piVar1 = (int *)(iVar3 + 8);
          iVar9 = iVar9 + 1;
          iVar3 = iVar3 + 4;
          iVar14 = *piVar1 + 1;
          puVar6[2] = iVar14;
          puVar6 = puVar6 + 1;
        } while (iVar14 == 0);
      }
    }
    uVar5 = 0;
    if ((param_6 != iVar10) && (uVar5 = 0, iVar9 < param_4)) {
      puVar7 = (undefined4 *)(iVar10 + iVar9 * 4);
      puVar6 = (undefined4 *)(param_6 + iVar9 * 4);
      do {
        uVar4 = *puVar7;
        puVar7 = puVar7 + 1;
        *puVar6 = uVar4;
        puVar6 = puVar6 + 1;
      } while (puVar7 != (undefined4 *)(iVar10 + iVar13));
      uVar5 = 0;
    }
  }
  else {
    iVar9 = (*(code *)PTR___gmpn_add_n_00097334)(param_6,iVar10,param_6,param_4);
    uVar5 = *puVar11 + iVar9;
  }
LAB_00062354:
  puVar2 = PTR___gmpn_lshift_0009756c;
  param_4 = param_4 + 1;
  *puVar11 = uVar5;
  (*(code *)puVar2)(param_6,param_6,param_4,1);
  iVar9 = param_4;
  do {
    iVar9 = iVar9 + -1;
    if (iVar9 < 0) goto LAB_000623a4;
    uVar5 = *puVar12;
    uVar8 = *puVar11;
    puVar12 = puVar12 + -1;
    puVar11 = puVar11 + -1;
  } while (uVar5 == uVar8);
  if (uVar8 < uVar5) {
LAB_000623a4:
    uVar4 = 0;
    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_1,param_6,param_4);
  }
  else {
    uVar4 = 0xffffffff;
    (*(code *)PTR___gmpn_sub_n_00097514)(param_2,param_6,param_1,param_4);
  }
  (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,param_6,param_4);
  return uVar4;
}

