
void __gmpn_mulmid(mp_ptr rp,mp_srcptr ap,mp_size_t an,mp_srcptr bp,mp_size_t bn)

{
  mp_ptr pmVar1;
  tmp_reentrant_t *ptVar2;
  uint uVar3;
  uint *puVar4;
  char *pcVar5;
  uint uVar6;
  mp_limb_t mVar7;
  tmp_reentrant_t *ptVar8;
  mp_srcptr pmVar9;
  mp_ptr pmVar10;
  int *piVar11;
  uint unaff_s1;
  int iVar12;
  uint unaff_s2;
  mp_srcptr pmVar13;
  int iVar14;
  int iVar15;
  mp_srcptr pmVar16;
  int in_t9;
  code *pcVar17;
  code *pcVar18;
  undefined1 *puVar19;
  undefined1 *puVar20;
  undefined4 uVar21;
  undefined1 auStack_60 [16];
  mp_size_t mStack_50;
  mp_limb_t amStack_48 [4];
  int *piStack_38;
  uint uStack_34;
  tmp_reentrant_t *__tmp_marker;
  int iStack_2c;
  
  amStack_48[0] = in_t9 + 0x5ba00;
  puVar20 = auStack_60;
  puVar19 = auStack_60;
  piStack_38 = *(int **)(in_t9 + 0x53f00);
  iStack_2c = *piStack_38;
  pmVar10 = (mp_ptr)bn;
  if (bn < 0x14) {
    pcVar17 = *(code **)(in_t9 + 0x53e6c);
    if (0xdb < an) {
      mStack_50 = bn;
      uVar6 = 0xdd - bn;
      ptVar8 = (tmp_reentrant_t *)rp;
      pmVar13 = ap;
      uStack_34 = uVar6;
      (*pcVar17)(rp,ap,0xdc);
      unaff_s1 = uVar6;
      pmVar9 = ap;
      ap = pmVar13;
      for (iVar14 = an - uVar6; 0xdb < iVar14; iVar14 = iVar14 - uStack_34) {
        while( true ) {
          rp = rp + uVar6;
          pmVar9 = pmVar9 + uVar6;
          mStack_50 = bn;
          unaff_s2 = *rp;
          unaff_s1 = rp[1];
          (**(code **)(amStack_48[0] - 0x7b94))(rp,pmVar9,0xdc,bp);
          pmVar1 = (mp_ptr)*rp;
          ap = (mp_srcptr)(unaff_s2 + (int)pmVar1);
          *rp = (mp_limb_t)ap;
          ptVar2 = (tmp_reentrant_t *)((ap < pmVar1) + unaff_s1);
          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + rp[1]);
          rp[1] = (mp_limb_t)ptVar8;
          if (ptVar2 <= ptVar8) break;
          ptVar8 = (tmp_reentrant_t *)(rp + 1);
          do {
            ptVar8 = (tmp_reentrant_t *)((int)ptVar8 + 4);
            uVar3 = *(uint *)ptVar8;
            *(uint *)ptVar8 = uVar3 + 1;
          } while (uVar3 + 1 == 0);
          iVar14 = iVar14 - uStack_34;
          if (iVar14 < 0xdc) goto LAB_00043788;
        }
      }
LAB_00043788:
      puVar19 = auStack_60;
      if (bn <= iVar14) {
        mStack_50 = bn;
        puVar4 = rp + uStack_34;
        ap = pmVar9 + uStack_34;
        unaff_s1 = *puVar4;
        unaff_s2 = puVar4[1];
        (**(code **)(amStack_48[0] - 0x7b94))(puVar4,ap,iVar14,bp);
        ptVar2 = (tmp_reentrant_t *)*puVar4;
        ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);
        *puVar4 = (uint)ptVar8;
        uVar6 = (ptVar8 < ptVar2) + unaff_s2;
        uVar3 = uVar6 + puVar4[1];
        puVar4[1] = uVar3;
        puVar19 = auStack_60;
        if (uVar3 < uVar6) {
          puVar4 = puVar4 + 1;
          do {
            puVar4 = puVar4 + 1;
            uVar6 = *puVar4;
            *puVar4 = uVar6 + 1;
            puVar19 = auStack_60;
          } while (uVar6 + 1 == 0);
        }
      }
      goto LAB_0004383c;
    }
LAB_0004382c:
    mStack_50 = bn;
    (*pcVar17)();
    ptVar8 = (tmp_reentrant_t *)rp;
    puVar19 = auStack_60;
  }
  else {
    unaff_s2 = an - bn;
    unaff_s1 = unaff_s2 + 1;
    if ((int)unaff_s1 < 0x14) {
      pcVar17 = *(code **)(in_t9 + 0x53e6c);
      if (bn < 0xdc) goto LAB_0004382c;
      iVar14 = unaff_s2 + 3;
      __tmp_marker = (tmp_reentrant_t *)0x0;
      if ((uint)(iVar14 * 4) < 0x7f01) {
        iVar15 = -(iVar14 * 4 + 7U & 0xfffffff8);
        iVar12 = (int)amStack_48 + iVar15;
        puVar20 = auStack_60 + iVar15;
      }
      else {
        iVar12 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);
        puVar20 = auStack_60;
      }
      pcVar17 = *(code **)(amStack_48[0] - 0x7b94);
      pmVar10 = (mp_ptr)(bn + -0xdc);
      iVar15 = an - (int)pmVar10;
      pmVar9 = bp + bn + -0xdc;
      *(undefined4 *)(puVar20 + 0x10) = 0xdc;
      pmVar16 = ap;
      (*pcVar17)(rp,ap,iVar15,pmVar9);
      pmVar13 = ap;
      ap = pmVar16;
      for (; 0xdb < (int)pmVar10; pmVar10 = pmVar10 + -0x37) {
        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);
        pmVar13 = pmVar13 + 0xdc;
        pmVar9 = pmVar9 + -0xdc;
        *(undefined4 *)(puVar20 + 0x10) = 0xdc;
        (*pcVar17)(iVar12,pmVar13,iVar15,pmVar9);
        ap = rp;
        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);
      }
      if (pmVar10 != (mp_ptr)0x0) {
        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);
        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;
        (*pcVar17)(iVar12,pmVar13 + 0xdc,(int)pmVar10 + unaff_s2,pmVar9 + -(int)pmVar10);
        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);
        ap = rp;
      }
    }
    else {
      if (bn <= (int)unaff_s1) {
        uVar6 = (bn * 3 + 0x20) * 4;
        __tmp_marker = (tmp_reentrant_t *)0x0;
        if (uVar6 < 0x7f01) {
          iVar14 = -(uVar6 + 7 & 0xfffffff8);
          puVar19 = auStack_60 + iVar14;
          uStack_34 = (int)amStack_48 + iVar14;
        }
        else {
          uStack_34 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);
        }
        unaff_s1 = unaff_s1 - bn;
        pcVar17 = *(code **)(amStack_48[0] - 0x7c50);
        *(uint *)(puVar19 + 0x10) = uStack_34;
        pmVar13 = ap;
        (*pcVar17)(rp,ap,bp,bn);
        pmVar9 = ap;
        ap = pmVar13;
        for (; bn <= (int)unaff_s1; unaff_s1 = unaff_s1 - bn) {
          while( true ) {
            rp = rp + bn;
            pcVar17 = *(code **)(amStack_48[0] - 0x7c50);
            pmVar9 = pmVar9 + bn;
            *(uint *)(puVar19 + 0x10) = uStack_34;
            uVar6 = *rp;
            unaff_s2 = rp[1];
            (*pcVar17)(rp,pmVar9,bp,bn);
            pmVar1 = (mp_ptr)*rp;
            ap = (mp_srcptr)(uVar6 + (int)pmVar1);
            *rp = (mp_limb_t)ap;
            uVar6 = (ap < pmVar1) + unaff_s2;
            uVar3 = uVar6 + rp[1];
            rp[1] = uVar3;
            if (uVar6 <= uVar3) break;
            puVar4 = rp + 1;
            do {
              puVar4 = puVar4 + 1;
              uVar6 = *puVar4;
              *puVar4 = uVar6 + 1;
            } while (uVar6 + 1 == 0);
            unaff_s1 = unaff_s1 - bn;
            if ((int)unaff_s1 < bn) goto LAB_00043988;
          }
        }
LAB_00043988:
        ptVar8 = __tmp_marker;
        if (__tmp_marker != (tmp_reentrant_t *)0x0) {
          (**(code **)(amStack_48[0] - 0x7a2c))();
        }
        if (unaff_s1 != 0) {
          iVar14 = bn + unaff_s1;
          *(mp_size_t *)(puVar19 + 0x10) = bn;
          pmVar10 = rp + bn;
          ap = pmVar9 + bn;
          unaff_s1 = *pmVar10;
          unaff_s2 = pmVar10[1];
          __gmpn_mulmid(pmVar10,ap,iVar14 + -1,bp,*(mp_size_t *)(puVar19 + 0x10));
          ptVar2 = (tmp_reentrant_t *)*pmVar10;
          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);
          *pmVar10 = (mp_limb_t)ptVar8;
          uVar6 = (ptVar8 < ptVar2) + unaff_s2;
          uVar3 = uVar6 + pmVar10[1];
          pmVar10[1] = uVar3;
          if (uVar3 < uVar6) {
            pmVar1 = pmVar10 + 1;
            do {
              pmVar1 = pmVar1 + 1;
              mVar7 = *pmVar1;
              *pmVar1 = mVar7 + 1;
            } while (mVar7 + 1 == 0);
          }
        }
        goto LAB_0004383c;
      }
      iVar14 = unaff_s2 + 3;
      uVar6 = (unaff_s1 * 3 + 0x20 + iVar14) * 4;
      __tmp_marker = (tmp_reentrant_t *)0x0;
      if (uVar6 < 0x7f01) {
        iVar12 = -(uVar6 + 7 & 0xfffffff8);
        puVar20 = auStack_60 + iVar12;
        pmVar1 = (mp_ptr)((int)amStack_48 + iVar12);
      }
      else {
        pmVar1 = (mp_ptr)(**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);
      }
      pmVar10 = (mp_ptr)(bn - unaff_s1);
      pcVar17 = *(code **)(amStack_48[0] - 0x7c50);
      pmVar16 = bp + (int)pmVar10;
      *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;
      pmVar9 = ap;
      (*pcVar17)(rp,ap,pmVar16,unaff_s1);
      pmVar13 = ap;
      if ((int)unaff_s1 <= (int)pmVar10) {
        uStack_34 = unaff_s1 * 4;
        amStack_48[3] = unaff_s1 * -4;
        do {
          uVar6 = uStack_34;
          pcVar17 = *(code **)(amStack_48[0] - 0x7c50);
          *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;
          pmVar10 = (mp_ptr)((int)pmVar10 - unaff_s1);
          pmVar13 = (mp_srcptr)((int)pmVar13 + uVar6);
          pmVar16 = (mp_srcptr)((int)pmVar16 + amStack_48[3]);
          (*pcVar17)(pmVar1,pmVar13,pmVar16,unaff_s1);
          pmVar9 = rp;
          (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);
        } while ((int)unaff_s1 <= (int)pmVar10);
      }
      ap = pmVar9;
      if (pmVar10 != (mp_ptr)0x0) {
        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;
        __gmpn_mulmid(pmVar1,pmVar13 + unaff_s1,(int)pmVar10 + unaff_s2,pmVar16 + -(int)pmVar10,
                      *(mp_size_t *)(puVar20 + 0x10));
        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);
        ap = rp;
      }
    }
    unaff_s2 = unaff_s2 + 3;
    ptVar8 = __tmp_marker;
    puVar19 = puVar20;
    if (__tmp_marker != (tmp_reentrant_t *)0x0) {
      (**(code **)(amStack_48[0] - 0x7a2c))();
    }
  }
LAB_0004383c:
  if (iStack_2c == *piStack_38) {
    return;
  }
  pcVar17 = *(code **)(amStack_48[0] - 0x7b70);
  uVar21 = 0x43cd4;
  (*pcVar17)();
  pcVar18 = pcVar17 + 0x5b360;
  if (ap != (mp_ptr)0x0) {
    pcVar5 = *(char **)(pcVar17 + 0x534a8);
    *(uint *)(puVar19 + -8) = unaff_s2;
    *(mp_ptr *)(puVar19 + -0x10) = pmVar10;
    *(code **)(puVar19 + -0x18) = pcVar18;
    *(undefined4 *)(puVar19 + -4) = uVar21;
    *(uint *)(puVar19 + -0xc) = unaff_s1;
    if (*pcVar5 == '\0') {
      pcVar18 = *(code **)(pcVar17 + 0x53920);
      uVar21 = *(undefined4 *)(pcVar17 + 0x5359c);
      *pcVar5 = '\x01';
      (*pcVar18)(uVar21);
      pcVar18 = *(code **)(puVar19 + -0x18);
    }
    iVar12 = *(int *)(pcVar18 + -0x7dc4);
    (**(code **)(*(int *)(iVar12 + 0x10) + 4))(iVar12,ptVar8,(int)ap << 5);
    piVar11 = (int *)((int)ptVar8 + (int)ap * 4 + -4);
    iVar14 = *piVar11;
    while (iVar14 == 0) {
      (**(code **)(*(int *)(iVar12 + 0x10) + 4))(iVar12,piVar11,0x20);
      iVar14 = *piVar11;
    }
    return;
  }
  return;
}



void __gmpn_mulmid(uint *param_1,uint *param_2,int param_3,int param_4,uint *param_5)

{
  int iVar1;
  uint *puVar2;
  uint *puVar3;
  uint uVar4;
  uint *puVar5;
  undefined1 *puVar6;
  char *pcVar7;
  uint uVar8;
  uint *puVar9;
  uint unaff_s1;
  int iVar10;
  uint unaff_s2;
  undefined *puVar11;
  code *pcVar12;
  undefined *puVar13;
  undefined1 *puVar14;
  undefined4 uVar15;
  undefined1 auStack_60 [16];
  uint *local_50;
  undefined1 *local_34;
  uint *local_30;
  int local_2c;
  
  puVar11 = PTR___stack_chk_guard_00097540;
  puVar14 = auStack_60;
  puVar6 = auStack_60;
  local_2c = *(int *)PTR___stack_chk_guard_00097540;
  puVar9 = param_5;
  if ((int)param_5 < 0x14) {
    if (0xdb < param_3) {
      local_50 = param_5;
      uVar8 = 0xdd - (int)param_5;
      puVar2 = param_1;
      puVar3 = param_2;
      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);
      unaff_s1 = uVar8;
      puVar5 = param_2;
      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {
        while( true ) {
          param_1 = param_1 + uVar8;
          puVar5 = puVar5 + uVar8;
          local_50 = param_5;
          unaff_s2 = *param_1;
          unaff_s1 = param_1[1];
          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);
          puVar2 = (uint *)*param_1;
          param_2 = (uint *)(unaff_s2 + (int)puVar2);
          *param_1 = (uint)param_2;
          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);
          puVar2 = (uint *)((int)puVar3 + param_1[1]);
          param_1[1] = (uint)puVar2;
          if (puVar3 <= puVar2) break;
          puVar2 = param_1 + 1;
          do {
            puVar2 = puVar2 + 1;
            uVar4 = *puVar2;
            *puVar2 = uVar4 + 1;
          } while (uVar4 + 1 == 0);
          param_3 = param_3 - uVar8;
          if (param_3 < 0xdc) goto LAB_00043788;
        }
        puVar3 = param_2;
      }
LAB_00043788:
      puVar6 = auStack_60;
      if ((int)param_5 <= param_3) {
        local_50 = param_5;
        param_1 = param_1 + uVar8;
        param_2 = puVar5 + uVar8;
        unaff_s1 = *param_1;
        unaff_s2 = param_1[1];
        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);
        puVar5 = (uint *)*param_1;
        puVar2 = (uint *)(unaff_s1 + (int)puVar5);
        *param_1 = (uint)puVar2;
        uVar8 = (puVar2 < puVar5) + unaff_s2;
        uVar4 = uVar8 + param_1[1];
        param_1[1] = uVar4;
        puVar6 = auStack_60;
        if (uVar4 < uVar8) {
          param_1 = param_1 + 1;
          do {
            param_1 = param_1 + 1;
            uVar8 = *param_1;
            *param_1 = uVar8 + 1;
            puVar6 = auStack_60;
          } while (uVar8 + 1 == 0);
        }
      }
      goto LAB_0004383c;
    }
LAB_0004382c:
    local_50 = param_5;
    (*(code *)PTR___gmpn_mulmid_basecase_000974ac)();
    puVar2 = param_1;
    puVar6 = auStack_60;
  }
  else {
    unaff_s2 = param_3 - (int)param_5;
    unaff_s1 = unaff_s2 + 1;
    if ((int)unaff_s1 < 0x14) {
      if ((int)param_5 < 0xdc) goto LAB_0004382c;
      iVar10 = unaff_s2 + 3;
      local_30 = (uint *)0x0;
      if ((uint)(iVar10 * 4) < 0x7f01) {
        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);
        puVar6 = &stack0xffffffb8 + iVar1;
        puVar14 = auStack_60 + iVar1;
      }
      else {
        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);
        puVar14 = auStack_60;
      }
      puVar9 = param_5 + -0x37;
      param_3 = param_3 - (int)puVar9;
      param_4 = param_4 + (int)param_5 * 4 + -0x370;
      *(undefined4 *)(puVar14 + 0x10) = 0xdc;
      puVar5 = param_2;
      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);
      puVar2 = param_2;
      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {
        puVar2 = puVar2 + 0xdc;
        param_4 = param_4 + -0x370;
        *(undefined4 *)(puVar14 + 0x10) = 0xdc;
        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);
        puVar5 = param_1;
        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);
      }
      param_2 = puVar5;
      if (puVar9 != (uint *)0x0) {
        *(uint **)(puVar14 + 0x10) = puVar9;
        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)
                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);
        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);
        param_2 = param_1;
      }
    }
    else {
      if ((int)param_5 <= (int)unaff_s1) {
        uVar8 = ((int)param_5 * 3 + 0x20) * 4;
        local_30 = (uint *)0x0;
        if (uVar8 < 0x7f01) {
          iVar10 = -(uVar8 + 7 & 0xfffffff8);
          puVar6 = auStack_60 + iVar10;
          local_34 = &stack0xffffffb8 + iVar10;
        }
        else {
          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);
        }
        unaff_s1 = unaff_s1 - (int)param_5;
        *(undefined1 **)(puVar6 + 0x10) = local_34;
        puVar2 = param_2;
        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);
        puVar5 = param_2;
        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)
        {
          while( true ) {
            param_1 = param_1 + (int)param_5;
            puVar5 = puVar5 + (int)param_5;
            *(undefined1 **)(puVar6 + 0x10) = local_34;
            uVar8 = *param_1;
            unaff_s2 = param_1[1];
            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);
            puVar2 = (uint *)*param_1;
            param_2 = (uint *)(uVar8 + (int)puVar2);
            *param_1 = (uint)param_2;
            uVar8 = (param_2 < puVar2) + unaff_s2;
            uVar4 = uVar8 + param_1[1];
            param_1[1] = uVar4;
            if (uVar8 <= uVar4) break;
            puVar2 = param_1 + 1;
            do {
              puVar2 = puVar2 + 1;
              uVar8 = *puVar2;
              *puVar2 = uVar8 + 1;
            } while (uVar8 + 1 == 0);
            unaff_s1 = unaff_s1 - (int)param_5;
            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;
          }
          puVar2 = param_2;
        }
LAB_00043988:
        puVar2 = local_30;
        if (local_30 != (uint *)0x0) {
          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();
        }
        if (unaff_s1 != 0) {
          *(uint **)(puVar6 + 0x10) = param_5;
          puVar9 = param_1 + (int)param_5;
          iVar10 = unaff_s1 - 1;
          param_2 = puVar5 + (int)param_5;
          unaff_s1 = *puVar9;
          unaff_s2 = puVar9[1];
          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);
          puVar5 = (uint *)*puVar9;
          puVar2 = (uint *)(unaff_s1 + (int)puVar5);
          *puVar9 = (uint)puVar2;
          uVar8 = (puVar2 < puVar5) + unaff_s2;
          uVar4 = uVar8 + puVar9[1];
          puVar9[1] = uVar4;
          if (uVar4 < uVar8) {
            puVar5 = puVar9 + 1;
            do {
              puVar5 = puVar5 + 1;
              uVar8 = *puVar5;
              *puVar5 = uVar8 + 1;
            } while (uVar8 + 1 == 0);
          }
        }
        goto LAB_0004383c;
      }
      iVar10 = unaff_s2 + 3;
      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;
      local_30 = (uint *)0x0;
      if (uVar8 < 0x7f01) {
        iVar1 = -(uVar8 + 7 & 0xfffffff8);
        puVar14 = auStack_60 + iVar1;
        puVar6 = &stack0xffffffb8 + iVar1;
      }
      else {
        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);
      }
      puVar9 = (uint *)((int)param_5 - unaff_s1);
      param_4 = param_4 + (int)puVar9 * 4;
      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;
      puVar5 = param_2;
      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);
      puVar2 = param_2;
      if ((int)unaff_s1 <= (int)puVar9) {
        do {
          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;
          puVar9 = (uint *)((int)puVar9 - unaff_s1);
          puVar2 = puVar2 + unaff_s1;
          param_4 = param_4 + unaff_s1 * -4;
          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);
          puVar5 = param_1;
          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);
        } while ((int)unaff_s1 <= (int)puVar9);
      }
      param_2 = puVar5;
      if (puVar9 != (uint *)0x0) {
        *(uint **)(puVar14 + 0x10) = puVar9;
        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);
        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);
        param_2 = param_1;
      }
    }
    unaff_s2 = unaff_s2 + 3;
    puVar2 = local_30;
    puVar6 = puVar14;
    if (local_30 != (uint *)0x0) {
      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();
    }
  }
LAB_0004383c:
  if (local_2c == *(int *)puVar11) {
    return;
  }
  uVar15 = 0x43cd4;
  puVar11 = PTR___stack_chk_fail_000974d0;
  (*(code *)PTR___stack_chk_fail_000974d0)();
  puVar13 = puVar11 + 0x5b360;
  if (param_2 != (uint *)0x0) {
    pcVar7 = *(char **)(puVar11 + 0x534a8);
    *(uint *)(puVar6 + -8) = unaff_s2;
    *(uint **)(puVar6 + -0x10) = puVar9;
    *(undefined **)(puVar6 + -0x18) = puVar13;
    *(undefined4 *)(puVar6 + -4) = uVar15;
    *(uint *)(puVar6 + -0xc) = unaff_s1;
    if (*pcVar7 == '\0') {
      pcVar12 = *(code **)(puVar11 + 0x53920);
      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);
      *pcVar7 = '\x01';
      (*pcVar12)(uVar15);
      puVar13 = *(undefined **)(puVar6 + -0x18);
    }
    iVar10 = *(int *)(puVar13 + -0x7dc4);
    (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5);
    puVar2 = puVar2 + (int)param_2 + -1;
    uVar8 = *puVar2;
    while (uVar8 == 0) {
      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);
      uVar8 = *puVar2;
    }
    return;
  }
  return;
}


lui gp,0x6
addiu gp,gp,-0x4600
addu gp,gp,t9
addiu sp,sp,-0x60
lw v0,-0x7b00(gp)
sw s8,0x58(sp)
or s8,sp,zero
sw s0,0x38(sp)
sw v0,0x28(s8)
sw s7,0x54(sp)
or s7,a0,zero
sw s6,0x50(sp)
or s6,a3,zero
sw s4,0x48(sp)
or s4,a2,zero
sw s3,0x44(sp)
or s3,a1,zero
sw ra,0x5c(sp)
sw s5,0x4c(sp)
sw s2,0x40(sp)
sw s1,0x3c(sp)
sw gp,0x18(sp)
lw s0,0x70(s8)
lw t1,0x0(v0)
slti v0,s0,0x14
sw t1,0x34(s8)
beq v0,zero,0x0004380c
_slti v0,a2,0xdc
bne v0,zero,0x0004382c
_lw t9,-0x7b94(gp)
li s1,0xdd
sw s0,0x10(sp)
li a2,0xdc
subu v1,s1,s0
or s1,v1,zero
sw v1,0x2c(s8)
jalr t9
_subu s4,s4,s1
slti v0,s4,0xdc
bne v0,zero,0x00043784
_lw gp,0x18(s8)
b 0x00043700
_sll s5,s1,0x2
lw v0,0x2c(s8)
subu s4,s4,v0
slti v0,s4,0xdc
bne v0,zero,0x00043788
_slt v0,s4,s0
addu s7,s7,s5
lw t9,-0x7b94(gp)
addu s3,s3,s5
sw s0,0x10(sp)
li a2,0xdc
or a1,s3,zero
lw s2,0x0(s7)
or a0,s7,zero
lw s1,0x4(s7)
jalr t9
_or a3,s6,zero
lw v0,0x0(s7)
lw a0,0x4(s7)
lw gp,0x18(s8)
addu a1,s2,v0
sltu v0,a1,v0
sw a1,0x0(s7)
addu v0,v0,s1
addu a0,v0,a0
sltu v0,a0,v0
beq v0,zero,0x000436ec
_sw a0,0x4(s7)
addiu a0,s7,0x4
addiu a0,a0,0x4
lw v0,0x0(a0)
addiu v0,v0,0x1
beq v0,zero,0x0004375c
_sw v0,0x0(a0)
lw v0,0x2c(s8)
subu s4,s4,v0
slti v0,s4,0xdc
beq v0,zero,0x00043700
_nop
slt v0,s4,s0
bne v0,zero,0x0004383c
_lw v0,0x28(s8)
lw v0,0x2c(s8)
or a3,s6,zero
lw t9,-0x7b94(gp)
or a2,s4,zero
sw s0,0x10(sp)
sll a1,v0,0x2
addu s7,s7,a1
addu a1,s3,a1
or a0,s7,zero
lw s1,0x0(s7)
jalr t9
_lw s2,0x4(s7)
lw v0,0x0(s7)
lw v1,0x4(s7)
lw gp,0x18(s8)
addu a0,s1,v0
sltu v0,a0,v0
sw a0,0x0(s7)
addu v0,v0,s2
addu v1,v0,v1
sltu v0,v1,v0
beq v0,zero,0x00043838
_sw v1,0x4(s7)
addiu v0,s7,0x4
addiu v0,v0,0x4
lw v1,0x0(v0)
addiu v1,v1,0x1
beq v1,zero,0x000437f0
_sw v1,0x0(v0)
b 0x0004383c
_lw v0,0x28(s8)
subu s2,a2,s0
addiu s1,s2,0x1
slti v0,s1,0x14
beq v0,zero,0x0004387c
_slt v0,s1,s0
slti v0,s0,0xdc
beq v0,zero,0x00043a18
_lw t9,-0x7b94(gp)
jalr t9
_sw s0,0x10(sp)
lw gp,0x18(s8)
lw v0,0x28(s8)
lw v1,0x34(s8)
lw v0,0x0(v0)
bne v1,v0,0x00043cc8
_lw ra,0x5c(s8)
or sp,s8,zero
lw s8,0x58(sp)
lw s7,0x54(sp)
lw s6,0x50(sp)
lw s5,0x4c(sp)
lw s4,0x48(sp)
lw s3,0x44(sp)
lw s2,0x40(sp)
lw s1,0x3c(sp)
lw s0,0x38(sp)
jr ra
_addiu sp,sp,0x60
bne v0,zero,0x00043afc
_sll a1,s1,0x1
sll a1,s0,0x1
addu a1,a1,s0
addiu a1,a1,0x20
sll a1,a1,0x2
sltiu v0,a1,0x7f01
beq v0,zero,0x00043c88
_sw zero,0x30(s8)
addiu v0,a1,0x7
srl v0,v0,0x3
sll v0,v0,0x3
subu sp,sp,v0
addiu v0,sp,0x18
sw v0,0x2c(s8)
lw v0,0x2c(s8)
subu s1,s1,s0
lw t9,-0x7c50(gp)
or a3,s0,zero
or a2,s6,zero
sw v0,0x10(sp)
or a1,s3,zero
jalr t9
_or a0,s7,zero
slt v0,s1,s0
bne v0,zero,0x00043984
_lw gp,0x18(s8)
b 0x00043900
_sll s5,s0,0x2
subu s1,s1,s0
slt v0,s1,s0
bne v0,zero,0x00043988
_lw a0,0x30(s8)
lw v0,0x2c(s8)
addu s7,s7,s5
lw t9,-0x7c50(gp)
addu s3,s3,s5
or a0,s7,zero
sw v0,0x10(sp)
or a1,s3,zero
or a3,s0,zero
lw s4,0x0(s7)
or a2,s6,zero
jalr t9
_lw s2,0x4(s7)
lw v0,0x0(s7)
lw a0,0x4(s7)
lw gp,0x18(s8)
addu a1,s4,v0
sltu v0,a1,v0
sw a1,0x0(s7)
addu v0,v0,s2
addu a0,v0,a0
sltu v0,a0,v0
beq v0,zero,0x000438f0
_sw a0,0x4(s7)
addiu a0,s7,0x4
addiu a0,a0,0x4
lw v0,0x0(a0)
addiu v0,v0,0x1
beq v0,zero,0x00043960
_sw v0,0x0(a0)
subu s1,s1,s0
slt v0,s1,s0
beq v0,zero,0x00043904
_lw v0,0x2c(s8)
lw a0,0x30(s8)
bne a0,zero,0x00043ca0
_lw t9,-0x7a2c(gp)
beq s1,zero,0x0004383c
_lw v0,0x28(s8)
lw t9,-0x7fc8(gp)
sll a1,s0,0x2
addu s1,s0,s1
sw s0,0x10(sp)
addu s0,s7,a1
addiu a2,s1,-0x1
addu a1,s3,a1
addiu t9,t9,0x3640
lw s1,0x0(s0)
or a0,s0,zero
lw s2,0x4(s0)
bal 0x00043640
_or a3,s6,zero
lw v0,0x0(s0)
lw v1,0x4(s0)
lw gp,0x18(s8)
addu a0,s1,v0
sltu v0,a0,v0
sw a0,0x0(s0)
addu v0,v0,s2
addu v1,v0,v1
sltu v0,v1,v0
beq v0,zero,0x00043838
_sw v1,0x4(s0)
addiu v0,s0,0x4
addiu v0,v0,0x4
lw v1,0x0(v0)
addiu v1,v1,0x1
beq v1,zero,0x000439fc
_sw v1,0x0(v0)
b 0x0004383c
_lw v0,0x28(s8)
addiu s2,s2,0x3
sll a1,s2,0x2
sltiu v0,a1,0x7f01
beq v0,zero,0x00043c70
_sw zero,0x30(s8)
addiu v0,a1,0x7
srl v0,v0,0x3
sll v0,v0,0x3
subu sp,sp,v0
addiu s5,sp,0x18
sll v0,s0,0x2
lw t9,-0x7b94(gp)
addiu s0,s0,-0xdc
addiu v0,v0,-0x370
subu s4,s4,s0
addu s6,s6,v0
li v0,0xdc
or a3,s6,zero
sw v0,0x10(sp)
or a2,s4,zero
or a1,s3,zero
jalr t9
_or a0,s7,zero
slti v0,s0,0xdc
bne v0,zero,0x00043ad4
_lw gp,0x18(s8)
lw t9,-0x7b94(gp)
li v0,0xdc
addiu s3,s3,0x370
addiu s6,s6,-0x370
sw v0,0x10(sp)
or a2,s4,zero
or a3,s6,zero
or a1,s3,zero
jalr t9
_or a0,s5,zero
addiu s0,s0,-0xdc
lw gp,0x18(s8)
or a3,s2,zero
or a2,s5,zero
or a1,s7,zero
lw t9,-0x7d0c(gp)
jalr t9
_or a0,s7,zero
slti v0,s0,0xdc
beq v0,zero,0x00043a80
_lw gp,0x18(s8)
bne s0,zero,0x00043c2c
_sll a3,s0,0x2
lw a0,0x30(s8)
beq a0,zero,0x0004383c
_lw v0,0x28(s8)
lw t9,-0x7a2c(gp)
jalr t9
_nop
b 0x00043838
_lw gp,0x18(s8)
addiu s2,s2,0x3
addu a1,a1,s1
addiu a1,a1,0x20
addu a1,a1,s2
sll a1,a1,0x2
sltiu v0,a1,0x7f01
beq v0,zero,0x00043cb0
_sw zero,0x30(s8)
addiu v0,a1,0x7
srl v0,v0,0x3
sll v0,v0,0x3
subu sp,sp,v0
addiu s4,sp,0x18
subu s0,s0,s1
lw t9,-0x7c50(gp)
sll s5,s2,0x2
sll t1,s0,0x2
addu s5,s4,s5
addu s6,s6,t1
sw s5,0x10(sp)
or a3,s1,zero
or a2,s6,zero
or a1,s3,zero
jalr t9
_or a0,s7,zero
slt v0,s0,s1
bne v0,zero,0x00043bd4
_lw gp,0x18(s8)
sll v0,s1,0x2
sw v0,0x2c(s8)
subu v0,zero,v0
sw v0,0x24(s8)
lw v0,0x2c(s8)
or a3,s1,zero
lw t9,-0x7c50(gp)
or a0,s4,zero
sw s5,0x10(sp)
subu s0,s0,s1
addu s3,s3,v0
lw v0,0x24(s8)
or a1,s3,zero
addu s6,s6,v0
jalr t9
_or a2,s6,zero
or a3,s2,zero
lw gp,0x18(s8)
or a2,s4,zero
or a1,s7,zero
lw t9,-0x7d0c(gp)
jalr t9
_or a0,s7,zero
slt v0,s0,s1
beq v0,zero,0x00043b7c
_lw gp,0x18(s8)
beq s0,zero,0x00043ae0
_lw a0,0x30(s8)
lw t9,-0x7fc8(gp)
sll a3,s0,0x2
addu a2,s1,s0
sw s0,0x10(sp)
sll a1,s1,0x2
subu a3,s6,a3
addiu a2,a2,-0x1
addu a1,s3,a1
addiu t9,t9,0x3640
bal 0x00043640
_or a0,s4,zero
or a3,s2,zero
lw gp,0x18(s8)
or a2,s4,zero
or a1,s7,zero
lw t9,-0x7d0c(gp)
jalr t9
_or a0,s7,zero
b 0x00043adc
_lw gp,0x18(s8)
lw t9,-0x7b94(gp)
addu a2,s1,s0
sw s0,0x10(sp)
subu a3,s6,a3
addiu a2,a2,-0x1
addiu a1,s3,0x370
jalr t9
_or a0,s5,zero
or a3,s2,zero
lw gp,0x18(s8)
or a2,s5,zero
or a1,s7,zero
lw t9,-0x7d0c(gp)
jalr t9
_or a0,s7,zero
b 0x00043adc
_lw gp,0x18(s8)
lw t9,-0x7d50(gp)
jalr t9
_addiu a0,s8,0x30
lw gp,0x18(s8)
b 0x00043a40
_or s5,v0,zero
lw t9,-0x7d50(gp)
jalr t9
_addiu a0,s8,0x30
lw gp,0x18(s8)
b 0x000438b8
_sw v0,0x2c(s8)
jalr t9
_nop
b 0x00043990
_lw gp,0x18(s8)
lw t9,-0x7d50(gp)
jalr t9
_addiu a0,s8,0x30
lw gp,0x18(s8)
b 0x00043b30
_or s4,v0,zero
lw t9,-0x7b70(gp)
jalr t9
_nop
nop
nop
nop
(translation_unit "void __gmpn_mulmid(uint *param_1,uint *param_2,int param_3,int param_4,uint *param_5)\n\n{\n  int iVar1;\n  uint *puVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint *puVar5;\n  undefined1 *puVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint unaff_s1;\n  int iVar10;\n  uint unaff_s2;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined *puVar13;\n  undefined1 *puVar14;\n  undefined4 uVar15;\n  undefined1 auStack_60 [16];\n  uint *local_50;\n  undefined1 *local_34;\n  uint *local_30;\n  int local_2c;\n  \n  puVar11 = PTR___stack_chk_guard_00097540;\n  puVar14 = auStack_60;\n  puVar6 = auStack_60;\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  puVar9 = param_5;\n  if ((int)param_5 < 0x14) {\n    if (0xdb < param_3) {\n      local_50 = param_5;\n      uVar8 = 0xdd - (int)param_5;\n      puVar2 = param_1;\n      puVar3 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);\n      unaff_s1 = uVar8;\n      puVar5 = param_2;\n      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }\nLAB_00043788:\n      puVar6 = auStack_60;\n      if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }\nLAB_0004382c:\n    local_50 = param_5;\n    (*(code *)PTR___gmpn_mulmid_basecase_000974ac)();\n    puVar2 = param_1;\n    puVar6 = auStack_60;\n  }\n  else {\n    unaff_s2 = param_3 - (int)param_5;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    puVar2 = local_30;\n    puVar6 = puVar14;\n    if (local_30 != (uint *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }\n  }\nLAB_0004383c:\n  if (local_2c == *(int *)puVar11) {\n    return;\n  }\n  uVar15 = 0x43cd4;\n  puVar11 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  puVar13 = puVar11 + 0x5b360;\n  if (param_2 != (uint *)0x0) {\n    pcVar7 = *(char **)(puVar11 + 0x534a8);\n    *(uint *)(puVar6 + -8) = unaff_s2;\n    *(uint **)(puVar6 + -0x10) = puVar9;\n    *(undefined **)(puVar6 + -0x18) = puVar13;\n    *(undefined4 *)(puVar6 + -4) = uVar15;\n    *(uint *)(puVar6 + -0xc) = unaff_s1;\n    if (*pcVar7 == '\0') {\n      pcVar12 = *(code **)(puVar11 + 0x53920);\n      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);\n      *pcVar7 = '\x01';\n      (*pcVar12)(uVar15);\n      puVar13 = *(undefined **)(puVar6 + -0x18);\n    }\n    iVar10 = *(int *)(puVar13 + -0x7dc4);\n    (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5);\n    puVar2 = puVar2 + (int)param_2 + -1;\n    uVar8 = *puVar2;\n    while (uVar8 == 0) {\n      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);\n      uVar8 = *puVar2;\n    }\n    return;\n  }\n  return;\n}\n\n" (function_definition "void __gmpn_mulmid(uint *param_1,uint *param_2,int param_3,int param_4,uint *param_5)\n\n{\n  int iVar1;\n  uint *puVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint *puVar5;\n  undefined1 *puVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint unaff_s1;\n  int iVar10;\n  uint unaff_s2;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined *puVar13;\n  undefined1 *puVar14;\n  undefined4 uVar15;\n  undefined1 auStack_60 [16];\n  uint *local_50;\n  undefined1 *local_34;\n  uint *local_30;\n  int local_2c;\n  \n  puVar11 = PTR___stack_chk_guard_00097540;\n  puVar14 = auStack_60;\n  puVar6 = auStack_60;\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  puVar9 = param_5;\n  if ((int)param_5 < 0x14) {\n    if (0xdb < param_3) {\n      local_50 = param_5;\n      uVar8 = 0xdd - (int)param_5;\n      puVar2 = param_1;\n      puVar3 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);\n      unaff_s1 = uVar8;\n      puVar5 = param_2;\n      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }\nLAB_00043788:\n      puVar6 = auStack_60;\n      if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }\nLAB_0004382c:\n    local_50 = param_5;\n    (*(code *)PTR___gmpn_mulmid_basecase_000974ac)();\n    puVar2 = param_1;\n    puVar6 = auStack_60;\n  }\n  else {\n    unaff_s2 = param_3 - (int)param_5;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    puVar2 = local_30;\n    puVar6 = puVar14;\n    if (local_30 != (uint *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }\n  }\nLAB_0004383c:\n  if (local_2c == *(int *)puVar11) {\n    return;\n  }\n  uVar15 = 0x43cd4;\n  puVar11 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  puVar13 = puVar11 + 0x5b360;\n  if (param_2 != (uint *)0x0) {\n    pcVar7 = *(char **)(puVar11 + 0x534a8);\n    *(uint *)(puVar6 + -8) = unaff_s2;\n    *(uint **)(puVar6 + -0x10) = puVar9;\n    *(undefined **)(puVar6 + -0x18) = puVar13;\n    *(undefined4 *)(puVar6 + -4) = uVar15;\n    *(uint *)(puVar6 + -0xc) = unaff_s1;\n    if (*pcVar7 == '\0') {\n      pcVar12 = *(code **)(puVar11 + 0x53920);\n      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);\n      *pcVar7 = '\x01';\n      (*pcVar12)(uVar15);\n      puVar13 = *(undefined **)(puVar6 + -0x18);\n    }\n    iVar10 = *(int *)(puVar13 + -0x7dc4);\n    (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5);\n    puVar2 = puVar2 + (int)param_2 + -1;\n    uVar8 = *puVar2;\n    while (uVar8 == 0) {\n      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);\n      uVar8 = *puVar2;\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "__gmpn_mulmid(uint *param_1,uint *param_2,int param_3,int param_4,uint *param_5)" identifier (parameter_list "(uint *param_1,uint *param_2,int param_3,int param_4,uint *param_5)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "uint *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  uint *puVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint *puVar5;\n  undefined1 *puVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint unaff_s1;\n  int iVar10;\n  uint unaff_s2;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined *puVar13;\n  undefined1 *puVar14;\n  undefined4 uVar15;\n  undefined1 auStack_60 [16];\n  uint *local_50;\n  undefined1 *local_34;\n  uint *local_30;\n  int local_2c;\n  \n  puVar11 = PTR___stack_chk_guard_00097540;\n  puVar14 = auStack_60;\n  puVar6 = auStack_60;\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  puVar9 = param_5;\n  if ((int)param_5 < 0x14) {\n    if (0xdb < param_3) {\n      local_50 = param_5;\n      uVar8 = 0xdd - (int)param_5;\n      puVar2 = param_1;\n      puVar3 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);\n      unaff_s1 = uVar8;\n      puVar5 = param_2;\n      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }\nLAB_00043788:\n      puVar6 = auStack_60;\n      if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }\nLAB_0004382c:\n    local_50 = param_5;\n    (*(code *)PTR___gmpn_mulmid_basecase_000974ac)();\n    puVar2 = param_1;\n    puVar6 = auStack_60;\n  }\n  else {\n    unaff_s2 = param_3 - (int)param_5;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    puVar2 = local_30;\n    puVar6 = puVar14;\n    if (local_30 != (uint *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }\n  }\nLAB_0004383c:\n  if (local_2c == *(int *)puVar11) {\n    return;\n  }\n  uVar15 = 0x43cd4;\n  puVar11 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  puVar13 = puVar11 + 0x5b360;\n  if (param_2 != (uint *)0x0) {\n    pcVar7 = *(char **)(puVar11 + 0x534a8);\n    *(uint *)(puVar6 + -8) = unaff_s2;\n    *(uint **)(puVar6 + -0x10) = puVar9;\n    *(undefined **)(puVar6 + -0x18) = puVar13;\n    *(undefined4 *)(puVar6 + -4) = uVar15;\n    *(uint *)(puVar6 + -0xc) = unaff_s1;\n    if (*pcVar7 == '\0') {\n      pcVar12 = *(code **)(puVar11 + 0x53920);\n      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);\n      *pcVar7 = '\x01';\n      (*pcVar12)(uVar15);\n      puVar13 = *(undefined **)(puVar6 + -0x18);\n    }\n    iVar10 = *(int *)(puVar13 + -0x7dc4);\n    (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5);\n    puVar2 = puVar2 + (int)param_2 + -1;\n    uVar8 = *puVar2;\n    while (uVar8 == 0) {\n      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);\n      uVar8 = *puVar2;\n    }\n    return;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint unaff_s1;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint unaff_s2;" type_identifier identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined1 auStack_60 [16];" type_identifier (array_declarator "auStack_60 [16]" identifier [ number_literal ]) ;) (declaration "uint *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "undefined1 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "uint *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar11 = PTR___stack_chk_guard_00097540;" (assignment_expression "puVar11 = PTR___stack_chk_guard_00097540" identifier = identifier) ;) (expression_statement "puVar14 = auStack_60;" (assignment_expression "puVar14 = auStack_60" identifier = identifier) ;) (expression_statement "puVar6 = auStack_60;" (assignment_expression "puVar6 = auStack_60" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00097540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00097540" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00097540" * (cast_expression "(int *)PTR___stack_chk_guard_00097540" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar9 = param_5;" (assignment_expression "puVar9 = param_5" identifier = identifier) ;) (if_statement "if ((int)param_5 < 0x14) {\n    if (0xdb < param_3) {\n      local_50 = param_5;\n      uVar8 = 0xdd - (int)param_5;\n      puVar2 = param_1;\n      puVar3 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);\n      unaff_s1 = uVar8;\n      puVar5 = param_2;\n      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }\nLAB_00043788:\n      puVar6 = auStack_60;\n      if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }\nLAB_0004382c:\n    local_50 = param_5;\n    (*(code *)PTR___gmpn_mulmid_basecase_000974ac)();\n    puVar2 = param_1;\n    puVar6 = auStack_60;\n  }\n  else {\n    unaff_s2 = param_3 - (int)param_5;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    puVar2 = local_30;\n    puVar6 = puVar14;\n    if (local_30 != (uint *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }\n  }" if (parenthesized_expression "((int)param_5 < 0x14)" ( (binary_expression "(int)param_5 < 0x14" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    if (0xdb < param_3) {\n      local_50 = param_5;\n      uVar8 = 0xdd - (int)param_5;\n      puVar2 = param_1;\n      puVar3 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);\n      unaff_s1 = uVar8;\n      puVar5 = param_2;\n      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }\nLAB_00043788:\n      puVar6 = auStack_60;\n      if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }\nLAB_0004382c:\n    local_50 = param_5;\n    (*(code *)PTR___gmpn_mulmid_basecase_000974ac)();\n    puVar2 = param_1;\n    puVar6 = auStack_60;\n  }" { (if_statement "if (0xdb < param_3) {\n      local_50 = param_5;\n      uVar8 = 0xdd - (int)param_5;\n      puVar2 = param_1;\n      puVar3 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);\n      unaff_s1 = uVar8;\n      puVar5 = param_2;\n      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }\nLAB_00043788:\n      puVar6 = auStack_60;\n      if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }" if (parenthesized_expression "(0xdb < param_3)" ( (binary_expression "0xdb < param_3" number_literal < identifier) )) (compound_statement "{\n      local_50 = param_5;\n      uVar8 = 0xdd - (int)param_5;\n      puVar2 = param_1;\n      puVar3 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);\n      unaff_s1 = uVar8;\n      puVar5 = param_2;\n      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }\nLAB_00043788:\n      puVar6 = auStack_60;\n      if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }" { (expression_statement "local_50 = param_5;" (assignment_expression "local_50 = param_5" identifier = identifier) ;) (expression_statement "uVar8 = 0xdd - (int)param_5;" (assignment_expression "uVar8 = 0xdd - (int)param_5" identifier = (binary_expression "0xdd - (int)param_5" number_literal - (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar2 = param_1;" (assignment_expression "puVar2 = param_1" identifier = identifier) ;) (expression_statement "puVar3 = param_2;" (assignment_expression "puVar3 = param_2" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc)" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" ( (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" * (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,0xdc)" ( identifier , identifier , number_literal ))) ;) (expression_statement "unaff_s1 = uVar8;" (assignment_expression "unaff_s1 = uVar8" identifier = identifier) ;) (expression_statement "puVar5 = param_2;" (assignment_expression "puVar5 = param_2" identifier = identifier) ;) (for_statement "for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }" for ( (assignment_expression "param_3 = param_3 - uVar8" identifier = (binary_expression "param_3 - uVar8" identifier - identifier)) ; (comma_expression "param_2 = puVar3, 0xdb < param_3" (assignment_expression "param_2 = puVar3" identifier = identifier) , (binary_expression "0xdb < param_3" number_literal < identifier)) ; (assignment_expression "param_3 = param_3 - uVar8" identifier = (binary_expression "param_3 - uVar8" identifier - identifier)) ) (compound_statement "{\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }" { (while_statement "while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }" { (expression_statement "param_1 = param_1 + uVar8;" (assignment_expression "param_1 = param_1 + uVar8" identifier = (binary_expression "param_1 + uVar8" identifier + identifier)) ;) (expression_statement "puVar5 = puVar5 + uVar8;" (assignment_expression "puVar5 = puVar5 + uVar8" identifier = (binary_expression "puVar5 + uVar8" identifier + identifier)) ;) (expression_statement "local_50 = param_5;" (assignment_expression "local_50 = param_5" identifier = identifier) ;) (expression_statement "unaff_s2 = *param_1;" (assignment_expression "unaff_s2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "unaff_s1 = param_1[1];" (assignment_expression "unaff_s1 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" ( (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" * (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,puVar5,0xdc,param_4)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "puVar2 = (uint *)*param_1;" (assignment_expression "puVar2 = (uint *)*param_1" identifier = (cast_expression "(uint *)*param_1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "param_2 = (uint *)(unaff_s2 + (int)puVar2);" (assignment_expression "param_2 = (uint *)(unaff_s2 + (int)puVar2)" identifier = (cast_expression "(uint *)(unaff_s2 + (int)puVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s2 + (int)puVar2)" ( (binary_expression "unaff_s2 + (int)puVar2" identifier + (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*param_1 = (uint)param_2;" (assignment_expression "*param_1 = (uint)param_2" (pointer_expression "*param_1" * identifier) = (cast_expression "(uint)param_2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);" (assignment_expression "puVar3 = (uint *)((param_2 < puVar2) + unaff_s1)" identifier = (cast_expression "(uint *)((param_2 < puVar2) + unaff_s1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((param_2 < puVar2) + unaff_s1)" ( (binary_expression "(param_2 < puVar2) + unaff_s1" (parenthesized_expression "(param_2 < puVar2)" ( (binary_expression "param_2 < puVar2" identifier < identifier) )) + identifier) )))) ;) (expression_statement "puVar2 = (uint *)((int)puVar3 + param_1[1]);" (assignment_expression "puVar2 = (uint *)((int)puVar3 + param_1[1])" identifier = (cast_expression "(uint *)((int)puVar3 + param_1[1])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar3 + param_1[1])" ( (binary_expression "(int)puVar3 + param_1[1]" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_1[1]" identifier [ number_literal ])) )))) ;) (expression_statement "param_1[1] = (uint)puVar2;" (assignment_expression "param_1[1] = (uint)puVar2" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (puVar3 <= puVar2) break;" if (parenthesized_expression "(puVar3 <= puVar2)" ( (binary_expression "puVar3 <= puVar2" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "puVar2 = param_1 + 1;" (assignment_expression "puVar2 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (do_statement "do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);" do (compound_statement "{\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          }" { (expression_statement "puVar2 = puVar2 + 1;" (assignment_expression "puVar2 = puVar2 + 1" identifier = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = *puVar2;" (assignment_expression "uVar4 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "*puVar2 = uVar4 + 1;" (assignment_expression "*puVar2 = uVar4 + 1" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar4 + 1 == 0)" ( (binary_expression "uVar4 + 1 == 0" (binary_expression "uVar4 + 1" identifier + number_literal) == number_literal) )) ;) (expression_statement "param_3 = param_3 - uVar8;" (assignment_expression "param_3 = param_3 - uVar8" identifier = (binary_expression "param_3 - uVar8" identifier - identifier)) ;) (if_statement "if (param_3 < 0xdc) goto LAB_00043788;" if (parenthesized_expression "(param_3 < 0xdc)" ( (binary_expression "param_3 < 0xdc" identifier < number_literal) )) (goto_statement "goto LAB_00043788;" goto statement_identifier ;)) })) (expression_statement "puVar3 = param_2;" (assignment_expression "puVar3 = param_2" identifier = identifier) ;) })) (labeled_statement "LAB_00043788:\n      puVar6 = auStack_60;" statement_identifier : (expression_statement "puVar6 = auStack_60;" (assignment_expression "puVar6 = auStack_60" identifier = identifier) ;)) (if_statement "if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }" if (parenthesized_expression "((int)param_5 <= param_3)" ( (binary_expression "(int)param_5 <= param_3" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }" { (expression_statement "local_50 = param_5;" (assignment_expression "local_50 = param_5" identifier = identifier) ;) (expression_statement "param_1 = param_1 + uVar8;" (assignment_expression "param_1 = param_1 + uVar8" identifier = (binary_expression "param_1 + uVar8" identifier + identifier)) ;) (expression_statement "param_2 = puVar5 + uVar8;" (assignment_expression "param_2 = puVar5 + uVar8" identifier = (binary_expression "puVar5 + uVar8" identifier + identifier)) ;) (expression_statement "unaff_s1 = *param_1;" (assignment_expression "unaff_s1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "unaff_s2 = param_1[1];" (assignment_expression "unaff_s2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" ( (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" * (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,param_3,param_4)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar5 = (uint *)*param_1;" (assignment_expression "puVar5 = (uint *)*param_1" identifier = (cast_expression "(uint *)*param_1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "puVar2 = (uint *)(unaff_s1 + (int)puVar5);" (assignment_expression "puVar2 = (uint *)(unaff_s1 + (int)puVar5)" identifier = (cast_expression "(uint *)(unaff_s1 + (int)puVar5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + (int)puVar5)" ( (binary_expression "unaff_s1 + (int)puVar5" identifier + (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*param_1 = (uint)puVar2;" (assignment_expression "*param_1 = (uint)puVar2" (pointer_expression "*param_1" * identifier) = (cast_expression "(uint)puVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar8 = (puVar2 < puVar5) + unaff_s2;" (assignment_expression "uVar8 = (puVar2 < puVar5) + unaff_s2" identifier = (binary_expression "(puVar2 < puVar5) + unaff_s2" (parenthesized_expression "(puVar2 < puVar5)" ( (binary_expression "puVar2 < puVar5" identifier < identifier) )) + identifier)) ;) (expression_statement "uVar4 = uVar8 + param_1[1];" (assignment_expression "uVar4 = uVar8 + param_1[1]" identifier = (binary_expression "uVar8 + param_1[1]" identifier + (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "param_1[1] = uVar4;" (assignment_expression "param_1[1] = uVar4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6 = auStack_60;" (assignment_expression "puVar6 = auStack_60" identifier = identifier) ;) (if_statement "if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }" if (parenthesized_expression "(uVar4 < uVar8)" ( (binary_expression "uVar4 < uVar8" identifier < identifier) )) (compound_statement "{\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }" { (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (do_statement "do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);" do (compound_statement "{\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          }" { (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = *param_1;" (assignment_expression "uVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*param_1 = uVar8 + 1;" (assignment_expression "*param_1 = uVar8 + 1" (pointer_expression "*param_1" * identifier) = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (expression_statement "puVar6 = auStack_60;" (assignment_expression "puVar6 = auStack_60" identifier = identifier) ;) }) while (parenthesized_expression "(uVar8 + 1 == 0)" ( (binary_expression "uVar8 + 1 == 0" (binary_expression "uVar8 + 1" identifier + number_literal) == number_literal) )) ;) })) })) (goto_statement "goto LAB_0004383c;" goto statement_identifier ;) })) (labeled_statement "LAB_0004382c:\n    local_50 = param_5;" statement_identifier : (expression_statement "local_50 = param_5;" (assignment_expression "local_50 = param_5" identifier = identifier) ;)) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)();" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)()" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" ( (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" * (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar2 = param_1;" (assignment_expression "puVar2 = param_1" identifier = identifier) ;) (expression_statement "puVar6 = auStack_60;" (assignment_expression "puVar6 = auStack_60" identifier = identifier) ;) }) (else_clause "else {\n    unaff_s2 = param_3 - (int)param_5;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    puVar2 = local_30;\n    puVar6 = puVar14;\n    if (local_30 != (uint *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }\n  }" else (compound_statement "{\n    unaff_s2 = param_3 - (int)param_5;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    puVar2 = local_30;\n    puVar6 = puVar14;\n    if (local_30 != (uint *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }\n  }" { (expression_statement "unaff_s2 = param_3 - (int)param_5;" (assignment_expression "unaff_s2 = param_3 - (int)param_5" identifier = (binary_expression "param_3 - (int)param_5" identifier - (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "unaff_s1 = unaff_s2 + 1;" (assignment_expression "unaff_s1 = unaff_s2 + 1" identifier = (binary_expression "unaff_s2 + 1" identifier + number_literal)) ;) (if_statement "if ((int)unaff_s1 < 0x14) {\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }" if (parenthesized_expression "((int)unaff_s1 < 0x14)" ( (binary_expression "(int)unaff_s1 < 0x14" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }" { (if_statement "if ((int)param_5 < 0xdc) goto LAB_0004382c;" if (parenthesized_expression "((int)param_5 < 0xdc)" ( (binary_expression "(int)param_5 < 0xdc" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0004382c;" goto statement_identifier ;)) (expression_statement "iVar10 = unaff_s2 + 3;" (assignment_expression "iVar10 = unaff_s2 + 3" identifier = (binary_expression "unaff_s2 + 3" identifier + number_literal)) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }" if (parenthesized_expression "((uint)(iVar10 * 4) < 0x7f01)" ( (binary_expression "(uint)(iVar10 * 4) < 0x7f01" (call_expression "(uint)(iVar10 * 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar10 * 4)" ( (binary_expression "iVar10 * 4" identifier * number_literal) ))) < number_literal) )) (compound_statement "{\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }" { (expression_statement "iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-(iVar10 * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "(iVar10 * 4 + 7U & 0xfffffff8)" ( (binary_expression "iVar10 * 4 + 7U & 0xfffffff8" (binary_expression "iVar10 * 4 + 7U" (binary_expression "iVar10 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "puVar6 = &stack0xffffffb8 + iVar1;" (assignment_expression "puVar6 = &stack0xffffffb8 + iVar1" identifier = (binary_expression "&stack0xffffffb8 + iVar1" (pointer_expression "&stack0xffffffb8" & identifier) + identifier)) ;) (expression_statement "puVar14 = auStack_60 + iVar1;" (assignment_expression "puVar14 = auStack_60 + iVar1" identifier = (binary_expression "auStack_60 + iVar1" identifier + identifier)) ;) }) (else_clause "else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }" else (compound_statement "{\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }" { (expression_statement "puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);" (assignment_expression "puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) (expression_statement "puVar14 = auStack_60;" (assignment_expression "puVar14 = auStack_60" identifier = identifier) ;) }))) (expression_statement "puVar9 = param_5 + -0x37;" (assignment_expression "puVar9 = param_5 + -0x37" identifier = (binary_expression "param_5 + -0x37" identifier + number_literal)) ;) (expression_statement "param_3 = param_3 - (int)puVar9;" (assignment_expression "param_3 = param_3 - (int)puVar9" identifier = (binary_expression "param_3 - (int)puVar9" identifier - (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_4 = param_4 + (int)param_5 * 4 + -0x370;" (assignment_expression "param_4 = param_4 + (int)param_5 * 4 + -0x370" identifier = (binary_expression "param_4 + (int)param_5 * 4 + -0x370" (binary_expression "param_4 + (int)param_5 * 4" identifier + (binary_expression "(int)param_5 * 4" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar14 + 0x10) = 0xdc;" (assignment_expression "*(undefined4 *)(puVar14 + 0x10) = 0xdc" (pointer_expression "*(undefined4 *)(puVar14 + 0x10)" * (cast_expression "(undefined4 *)(puVar14 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x10)" ( (binary_expression "puVar14 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar5 = param_2;" (assignment_expression "puVar5 = param_2" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" ( (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" * (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,param_3,param_4)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar2 = param_2;" (assignment_expression "puVar2 = param_2" identifier = identifier) ;) (for_statement "for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }" for ( ; (binary_expression "0xdb < (int)puVar9" number_literal < (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "puVar9 = puVar9 + -0x37" identifier = (binary_expression "puVar9 + -0x37" identifier + number_literal)) ) (compound_statement "{\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }" { (expression_statement "puVar2 = puVar2 + 0xdc;" (assignment_expression "puVar2 = puVar2 + 0xdc" identifier = (binary_expression "puVar2 + 0xdc" identifier + number_literal)) ;) (expression_statement "param_4 = param_4 + -0x370;" (assignment_expression "param_4 = param_4 + -0x370" identifier = (binary_expression "param_4 + -0x370" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar14 + 0x10) = 0xdc;" (assignment_expression "*(undefined4 *)(puVar14 + 0x10) = 0xdc" (pointer_expression "*(undefined4 *)(puVar14 + 0x10)" * (cast_expression "(undefined4 *)(puVar14 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x10)" ( (binary_expression "puVar14 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" ( (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" * (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,puVar2,param_3,param_4)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar5 = param_1;" (assignment_expression "puVar5 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);" (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10)" (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,puVar6,iVar10)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "param_2 = puVar5;" (assignment_expression "param_2 = puVar5" identifier = identifier) ;) (if_statement "if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }" if (parenthesized_expression "(puVar9 != (uint *)0x0)" ( (binary_expression "puVar9 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }" { (expression_statement "*(uint **)(puVar14 + 0x10) = puVar9;" (assignment_expression "*(uint **)(puVar14 + 0x10) = puVar9" (pointer_expression "*(uint **)(puVar14 + 0x10)" * (cast_expression "(uint **)(puVar14 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x10)" ( (binary_expression "puVar14 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4)" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" ( (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" * (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4)" ( identifier , (binary_expression "puVar2 + 0xdc" identifier + number_literal) , (binary_expression "(int)puVar9 + unaff_s2" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , (binary_expression "param_4 + (int)puVar9 * -4" identifier + (binary_expression "(int)puVar9 * -4" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))) ;) (expression_statement "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);" (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10)" (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,puVar6,iVar10)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "param_2 = param_1;" (assignment_expression "param_2 = param_1" identifier = identifier) ;) })) }) (else_clause "else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }" else (compound_statement "{\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }" { (if_statement "if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }" if (parenthesized_expression "((int)param_5 <= (int)unaff_s1)" ( (binary_expression "(int)param_5 <= (int)unaff_s1" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }" { (expression_statement "uVar8 = ((int)param_5 * 3 + 0x20) * 4;" (assignment_expression "uVar8 = ((int)param_5 * 3 + 0x20) * 4" identifier = (binary_expression "((int)param_5 * 3 + 0x20) * 4" (parenthesized_expression "((int)param_5 * 3 + 0x20)" ( (binary_expression "(int)param_5 * 3 + 0x20" (binary_expression "(int)param_5 * 3" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) )) * number_literal)) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }" if (parenthesized_expression "(uVar8 < 0x7f01)" ( (binary_expression "uVar8 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }" { (expression_statement "iVar10 = -(uVar8 + 7 & 0xfffffff8);" (assignment_expression "iVar10 = -(uVar8 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar8 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar8 + 7 & 0xfffffff8)" ( (binary_expression "uVar8 + 7 & 0xfffffff8" (binary_expression "uVar8 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar6 = auStack_60 + iVar10;" (assignment_expression "puVar6 = auStack_60 + iVar10" identifier = (binary_expression "auStack_60 + iVar10" identifier + identifier)) ;) (expression_statement "local_34 = &stack0xffffffb8 + iVar10;" (assignment_expression "local_34 = &stack0xffffffb8 + iVar10" identifier = (binary_expression "&stack0xffffffb8 + iVar10" (pointer_expression "&stack0xffffffb8" & identifier) + identifier)) ;) }) (else_clause "else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }" else (compound_statement "{\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }" { (expression_statement "local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);" (assignment_expression "local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) }))) (expression_statement "unaff_s1 = unaff_s1 - (int)param_5;" (assignment_expression "unaff_s1 = unaff_s1 - (int)param_5" identifier = (binary_expression "unaff_s1 - (int)param_5" identifier - (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(undefined1 **)(puVar6 + 0x10) = local_34;" (assignment_expression "*(undefined1 **)(puVar6 + 0x10) = local_34" (pointer_expression "*(undefined1 **)(puVar6 + 0x10)" * (cast_expression "(undefined1 **)(puVar6 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + 0x10)" ( (binary_expression "puVar6 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2 = param_2;" (assignment_expression "puVar2 = param_2" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);" (call_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)" ( (pointer_expression "*(code *)PTR___gmpn_toom42_mulmid_000973f0" * (cast_expression "(code *)PTR___gmpn_toom42_mulmid_000973f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,param_4,param_5)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar5 = param_2;" (assignment_expression "puVar5 = param_2" identifier = identifier) ;) (for_statement "for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }" for ( ; (comma_expression "param_2 = puVar2, (int)param_5 <= (int)unaff_s1" (assignment_expression "param_2 = puVar2" identifier = identifier) , (binary_expression "(int)param_5 <= (int)unaff_s1" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier))) ; (assignment_expression "unaff_s1 = unaff_s1 - (int)param_5" identifier = (binary_expression "unaff_s1 - (int)param_5" identifier - (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier))) ) (compound_statement "{\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }" { (while_statement "while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }" { (expression_statement "param_1 = param_1 + (int)param_5;" (assignment_expression "param_1 = param_1 + (int)param_5" identifier = (binary_expression "param_1 + (int)param_5" identifier + (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar5 = puVar5 + (int)param_5;" (assignment_expression "puVar5 = puVar5 + (int)param_5" identifier = (binary_expression "puVar5 + (int)param_5" identifier + (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(undefined1 **)(puVar6 + 0x10) = local_34;" (assignment_expression "*(undefined1 **)(puVar6 + 0x10) = local_34" (pointer_expression "*(undefined1 **)(puVar6 + 0x10)" * (cast_expression "(undefined1 **)(puVar6 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + 0x10)" ( (binary_expression "puVar6 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar8 = *param_1;" (assignment_expression "uVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "unaff_s2 = param_1[1];" (assignment_expression "unaff_s2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);" (call_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)" ( (pointer_expression "*(code *)PTR___gmpn_toom42_mulmid_000973f0" * (cast_expression "(code *)PTR___gmpn_toom42_mulmid_000973f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,puVar5,param_4,param_5)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar2 = (uint *)*param_1;" (assignment_expression "puVar2 = (uint *)*param_1" identifier = (cast_expression "(uint *)*param_1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "param_2 = (uint *)(uVar8 + (int)puVar2);" (assignment_expression "param_2 = (uint *)(uVar8 + (int)puVar2)" identifier = (cast_expression "(uint *)(uVar8 + (int)puVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + (int)puVar2)" ( (binary_expression "uVar8 + (int)puVar2" identifier + (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*param_1 = (uint)param_2;" (assignment_expression "*param_1 = (uint)param_2" (pointer_expression "*param_1" * identifier) = (cast_expression "(uint)param_2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar8 = (param_2 < puVar2) + unaff_s2;" (assignment_expression "uVar8 = (param_2 < puVar2) + unaff_s2" identifier = (binary_expression "(param_2 < puVar2) + unaff_s2" (parenthesized_expression "(param_2 < puVar2)" ( (binary_expression "param_2 < puVar2" identifier < identifier) )) + identifier)) ;) (expression_statement "uVar4 = uVar8 + param_1[1];" (assignment_expression "uVar4 = uVar8 + param_1[1]" identifier = (binary_expression "uVar8 + param_1[1]" identifier + (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "param_1[1] = uVar4;" (assignment_expression "param_1[1] = uVar4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar8 <= uVar4) break;" if (parenthesized_expression "(uVar8 <= uVar4)" ( (binary_expression "uVar8 <= uVar4" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "puVar2 = param_1 + 1;" (assignment_expression "puVar2 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (do_statement "do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);" do (compound_statement "{\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            }" { (expression_statement "puVar2 = puVar2 + 1;" (assignment_expression "puVar2 = puVar2 + 1" identifier = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = *puVar2;" (assignment_expression "uVar8 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "*puVar2 = uVar8 + 1;" (assignment_expression "*puVar2 = uVar8 + 1" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 + 1 == 0)" ( (binary_expression "uVar8 + 1 == 0" (binary_expression "uVar8 + 1" identifier + number_literal) == number_literal) )) ;) (expression_statement "unaff_s1 = unaff_s1 - (int)param_5;" (assignment_expression "unaff_s1 = unaff_s1 - (int)param_5" identifier = (binary_expression "unaff_s1 - (int)param_5" identifier - (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;" if (parenthesized_expression "((int)unaff_s1 < (int)param_5)" ( (binary_expression "(int)unaff_s1 < (int)param_5" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00043988;" goto statement_identifier ;)) })) (expression_statement "puVar2 = param_2;" (assignment_expression "puVar2 = param_2" identifier = identifier) ;) })) (labeled_statement "LAB_00043988:\n        puVar2 = local_30;" statement_identifier : (expression_statement "puVar2 = local_30;" (assignment_expression "puVar2 = local_30" identifier = identifier) ;)) (if_statement "if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }" if (parenthesized_expression "(local_30 != (uint *)0x0)" ( (binary_expression "local_30 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_00097614" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_00097614" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }" if (parenthesized_expression "(unaff_s1 != 0)" ( (binary_expression "unaff_s1 != 0" identifier != number_literal) )) (compound_statement "{\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }" { (expression_statement "*(uint **)(puVar6 + 0x10) = param_5;" (assignment_expression "*(uint **)(puVar6 + 0x10) = param_5" (pointer_expression "*(uint **)(puVar6 + 0x10)" * (cast_expression "(uint **)(puVar6 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + 0x10)" ( (binary_expression "puVar6 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar9 = param_1 + (int)param_5;" (assignment_expression "puVar9 = param_1 + (int)param_5" identifier = (binary_expression "param_1 + (int)param_5" identifier + (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar10 = unaff_s1 - 1;" (assignment_expression "iVar10 = unaff_s1 - 1" identifier = (binary_expression "unaff_s1 - 1" identifier - number_literal)) ;) (expression_statement "param_2 = puVar5 + (int)param_5;" (assignment_expression "param_2 = puVar5 + (int)param_5" identifier = (binary_expression "puVar5 + (int)param_5" identifier + (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "unaff_s1 = *puVar9;" (assignment_expression "unaff_s1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "unaff_s2 = puVar9[1];" (assignment_expression "unaff_s2 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "__gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);" (call_expression "__gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4)" identifier (argument_list "(puVar9,param_2,(int)param_5 + iVar10,param_4)" ( identifier , identifier , (binary_expression "(int)param_5 + iVar10" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , identifier ))) ;) (expression_statement "puVar5 = (uint *)*puVar9;" (assignment_expression "puVar5 = (uint *)*puVar9" identifier = (cast_expression "(uint *)*puVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ;) (expression_statement "puVar2 = (uint *)(unaff_s1 + (int)puVar5);" (assignment_expression "puVar2 = (uint *)(unaff_s1 + (int)puVar5)" identifier = (cast_expression "(uint *)(unaff_s1 + (int)puVar5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + (int)puVar5)" ( (binary_expression "unaff_s1 + (int)puVar5" identifier + (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*puVar9 = (uint)puVar2;" (assignment_expression "*puVar9 = (uint)puVar2" (pointer_expression "*puVar9" * identifier) = (cast_expression "(uint)puVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar8 = (puVar2 < puVar5) + unaff_s2;" (assignment_expression "uVar8 = (puVar2 < puVar5) + unaff_s2" identifier = (binary_expression "(puVar2 < puVar5) + unaff_s2" (parenthesized_expression "(puVar2 < puVar5)" ( (binary_expression "puVar2 < puVar5" identifier < identifier) )) + identifier)) ;) (expression_statement "uVar4 = uVar8 + puVar9[1];" (assignment_expression "uVar4 = uVar8 + puVar9[1]" identifier = (binary_expression "uVar8 + puVar9[1]" identifier + (subscript_expression "puVar9[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar9[1] = uVar4;" (assignment_expression "puVar9[1] = uVar4" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }" if (parenthesized_expression "(uVar4 < uVar8)" ( (binary_expression "uVar4 < uVar8" identifier < identifier) )) (compound_statement "{\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }" { (expression_statement "puVar5 = puVar9 + 1;" (assignment_expression "puVar5 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (do_statement "do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);" do (compound_statement "{\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            }" { (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = *puVar5;" (assignment_expression "uVar8 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "*puVar5 = uVar8 + 1;" (assignment_expression "*puVar5 = uVar8 + 1" (pointer_expression "*puVar5" * identifier) = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 + 1 == 0)" ( (binary_expression "uVar8 + 1 == 0" (binary_expression "uVar8 + 1" identifier + number_literal) == number_literal) )) ;) })) })) (goto_statement "goto LAB_0004383c;" goto statement_identifier ;) })) (expression_statement "iVar10 = unaff_s2 + 3;" (assignment_expression "iVar10 = unaff_s2 + 3" identifier = (binary_expression "unaff_s2 + 3" identifier + number_literal)) ;) (expression_statement "uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;" (assignment_expression "uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4" identifier = (binary_expression "(unaff_s1 * 3 + 0x20 + iVar10) * 4" (parenthesized_expression "(unaff_s1 * 3 + 0x20 + iVar10)" ( (binary_expression "unaff_s1 * 3 + 0x20 + iVar10" (binary_expression "unaff_s1 * 3 + 0x20" (binary_expression "unaff_s1 * 3" identifier * number_literal) + number_literal) + identifier) )) * number_literal)) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }" if (parenthesized_expression "(uVar8 < 0x7f01)" ( (binary_expression "uVar8 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }" { (expression_statement "iVar1 = -(uVar8 + 7 & 0xfffffff8);" (assignment_expression "iVar1 = -(uVar8 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar8 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar8 + 7 & 0xfffffff8)" ( (binary_expression "uVar8 + 7 & 0xfffffff8" (binary_expression "uVar8 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar14 = auStack_60 + iVar1;" (assignment_expression "puVar14 = auStack_60 + iVar1" identifier = (binary_expression "auStack_60 + iVar1" identifier + identifier)) ;) (expression_statement "puVar6 = &stack0xffffffb8 + iVar1;" (assignment_expression "puVar6 = &stack0xffffffb8 + iVar1" identifier = (binary_expression "&stack0xffffffb8 + iVar1" (pointer_expression "&stack0xffffffb8" & identifier) + identifier)) ;) }) (else_clause "else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }" else (compound_statement "{\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }" { (expression_statement "puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);" (assignment_expression "puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) }))) (expression_statement "puVar9 = (uint *)((int)param_5 - unaff_s1);" (assignment_expression "puVar9 = (uint *)((int)param_5 - unaff_s1)" identifier = (cast_expression "(uint *)((int)param_5 - unaff_s1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_5 - unaff_s1)" ( (binary_expression "(int)param_5 - unaff_s1" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "param_4 = param_4 + (int)puVar9 * 4;" (assignment_expression "param_4 = param_4 + (int)puVar9 * 4" identifier = (binary_expression "param_4 + (int)puVar9 * 4" identifier + (binary_expression "(int)puVar9 * 4" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "*(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;" (assignment_expression "*(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4" (pointer_expression "*(undefined1 **)(puVar14 + 0x10)" * (cast_expression "(undefined1 **)(puVar14 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x10)" ( (binary_expression "puVar14 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar6 + iVar10 * 4" identifier + (binary_expression "iVar10 * 4" identifier * number_literal))) ;) (expression_statement "puVar5 = param_2;" (assignment_expression "puVar5 = param_2" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);" (call_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1)" (parenthesized_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)" ( (pointer_expression "*(code *)PTR___gmpn_toom42_mulmid_000973f0" * (cast_expression "(code *)PTR___gmpn_toom42_mulmid_000973f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,param_4,unaff_s1)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar2 = param_2;" (assignment_expression "puVar2 = param_2" identifier = identifier) ;) (if_statement "if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }" if (parenthesized_expression "((int)unaff_s1 <= (int)puVar9)" ( (binary_expression "(int)unaff_s1 <= (int)puVar9" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }" { (do_statement "do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);" do (compound_statement "{\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        }" { (expression_statement "*(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;" (assignment_expression "*(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4" (pointer_expression "*(undefined1 **)(puVar14 + 0x10)" * (cast_expression "(undefined1 **)(puVar14 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x10)" ( (binary_expression "puVar14 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar6 + iVar10 * 4" identifier + (binary_expression "iVar10 * 4" identifier * number_literal))) ;) (expression_statement "puVar9 = (uint *)((int)puVar9 - unaff_s1);" (assignment_expression "puVar9 = (uint *)((int)puVar9 - unaff_s1)" identifier = (cast_expression "(uint *)((int)puVar9 - unaff_s1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 - unaff_s1)" ( (binary_expression "(int)puVar9 - unaff_s1" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "puVar2 = puVar2 + unaff_s1;" (assignment_expression "puVar2 = puVar2 + unaff_s1" identifier = (binary_expression "puVar2 + unaff_s1" identifier + identifier)) ;) (expression_statement "param_4 = param_4 + unaff_s1 * -4;" (assignment_expression "param_4 = param_4 + unaff_s1 * -4" identifier = (binary_expression "param_4 + unaff_s1 * -4" identifier + (binary_expression "unaff_s1 * -4" identifier * number_literal))) ;) (expression_statement "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);" (call_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1)" (parenthesized_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)" ( (pointer_expression "*(code *)PTR___gmpn_toom42_mulmid_000973f0" * (cast_expression "(code *)PTR___gmpn_toom42_mulmid_000973f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,puVar2,param_4,unaff_s1)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar5 = param_1;" (assignment_expression "puVar5 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);" (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10)" (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,puVar6,iVar10)" ( identifier , identifier , identifier , identifier ))) ;) }) while (parenthesized_expression "((int)unaff_s1 <= (int)puVar9)" ( (binary_expression "(int)unaff_s1 <= (int)puVar9" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "param_2 = puVar5;" (assignment_expression "param_2 = puVar5" identifier = identifier) ;) (if_statement "if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }" if (parenthesized_expression "(puVar9 != (uint *)0x0)" ( (binary_expression "puVar9 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }" { (expression_statement "*(uint **)(puVar14 + 0x10) = puVar9;" (assignment_expression "*(uint **)(puVar14 + 0x10) = puVar9" (pointer_expression "*(uint **)(puVar14 + 0x10)" * (cast_expression "(uint **)(puVar14 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x10)" ( (binary_expression "puVar14 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "__gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);" (call_expression "__gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4)" identifier (argument_list "(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4)" ( identifier , (binary_expression "puVar2 + unaff_s1" identifier + identifier) , (binary_expression "(int)puVar9 + unaff_s2" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , (binary_expression "param_4 + (int)puVar9 * -4" identifier + (binary_expression "(int)puVar9 * -4" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))) ;) (expression_statement "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);" (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10)" (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,puVar6,iVar10)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "param_2 = param_1;" (assignment_expression "param_2 = param_1" identifier = identifier) ;) })) }))) (expression_statement "unaff_s2 = unaff_s2 + 3;" (assignment_expression "unaff_s2 = unaff_s2 + 3" identifier = (binary_expression "unaff_s2 + 3" identifier + number_literal)) ;) (expression_statement "puVar2 = local_30;" (assignment_expression "puVar2 = local_30" identifier = identifier) ;) (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (if_statement "if (local_30 != (uint *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }" if (parenthesized_expression "(local_30 != (uint *)0x0)" ( (binary_expression "local_30 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_00097614" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_00097614" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) }))) (labeled_statement "LAB_0004383c:\n  if (local_2c == *(int *)puVar11) {\n    return;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar11) {\n    return;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar11)" ( (binary_expression "local_2c == *(int *)puVar11" identifier == (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "uVar15 = 0x43cd4;" (assignment_expression "uVar15 = 0x43cd4" identifier = number_literal) ;) (expression_statement "puVar11 = PTR___stack_chk_fail_000974d0;" (assignment_expression "puVar11 = PTR___stack_chk_fail_000974d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000974d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000974d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000974d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000974d0" * (cast_expression "(code *)PTR___stack_chk_fail_000974d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar13 = puVar11 + 0x5b360;" (assignment_expression "puVar13 = puVar11 + 0x5b360" identifier = (binary_expression "puVar11 + 0x5b360" identifier + number_literal)) ;) (if_statement "if (param_2 != (uint *)0x0) {\n    pcVar7 = *(char **)(puVar11 + 0x534a8);\n    *(uint *)(puVar6 + -8) = unaff_s2;\n    *(uint **)(puVar6 + -0x10) = puVar9;\n    *(undefined **)(puVar6 + -0x18) = puVar13;\n    *(undefined4 *)(puVar6 + -4) = uVar15;\n    *(uint *)(puVar6 + -0xc) = unaff_s1;\n    if (*pcVar7 == '\0') {\n      pcVar12 = *(code **)(puVar11 + 0x53920);\n      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);\n      *pcVar7 = '\x01';\n      (*pcVar12)(uVar15);\n      puVar13 = *(undefined **)(puVar6 + -0x18);\n    }\n    iVar10 = *(int *)(puVar13 + -0x7dc4);\n    (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5);\n    puVar2 = puVar2 + (int)param_2 + -1;\n    uVar8 = *puVar2;\n    while (uVar8 == 0) {\n      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);\n      uVar8 = *puVar2;\n    }\n    return;\n  }" if (parenthesized_expression "(param_2 != (uint *)0x0)" ( (binary_expression "param_2 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar7 = *(char **)(puVar11 + 0x534a8);\n    *(uint *)(puVar6 + -8) = unaff_s2;\n    *(uint **)(puVar6 + -0x10) = puVar9;\n    *(undefined **)(puVar6 + -0x18) = puVar13;\n    *(undefined4 *)(puVar6 + -4) = uVar15;\n    *(uint *)(puVar6 + -0xc) = unaff_s1;\n    if (*pcVar7 == '\0') {\n      pcVar12 = *(code **)(puVar11 + 0x53920);\n      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);\n      *pcVar7 = '\x01';\n      (*pcVar12)(uVar15);\n      puVar13 = *(undefined **)(puVar6 + -0x18);\n    }\n    iVar10 = *(int *)(puVar13 + -0x7dc4);\n    (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5);\n    puVar2 = puVar2 + (int)param_2 + -1;\n    uVar8 = *puVar2;\n    while (uVar8 == 0) {\n      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);\n      uVar8 = *puVar2;\n    }\n    return;\n  }" { (expression_statement "pcVar7 = *(char **)(puVar11 + 0x534a8);" (assignment_expression "pcVar7 = *(char **)(puVar11 + 0x534a8)" identifier = (pointer_expression "*(char **)(puVar11 + 0x534a8)" * (cast_expression "(char **)(puVar11 + 0x534a8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x534a8)" ( (binary_expression "puVar11 + 0x534a8" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar6 + -8) = unaff_s2;" (assignment_expression "*(uint *)(puVar6 + -8) = unaff_s2" (pointer_expression "*(uint *)(puVar6 + -8)" * (cast_expression "(uint *)(puVar6 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -8)" ( (binary_expression "puVar6 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar6 + -0x10) = puVar9;" (assignment_expression "*(uint **)(puVar6 + -0x10) = puVar9" (pointer_expression "*(uint **)(puVar6 + -0x10)" * (cast_expression "(uint **)(puVar6 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x10)" ( (binary_expression "puVar6 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar6 + -0x18) = puVar13;" (assignment_expression "*(undefined **)(puVar6 + -0x18) = puVar13" (pointer_expression "*(undefined **)(puVar6 + -0x18)" * (cast_expression "(undefined **)(puVar6 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x18)" ( (binary_expression "puVar6 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar6 + -4) = uVar15;" (assignment_expression "*(undefined4 *)(puVar6 + -4) = uVar15" (pointer_expression "*(undefined4 *)(puVar6 + -4)" * (cast_expression "(undefined4 *)(puVar6 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -4)" ( (binary_expression "puVar6 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar6 + -0xc) = unaff_s1;" (assignment_expression "*(uint *)(puVar6 + -0xc) = unaff_s1" (pointer_expression "*(uint *)(puVar6 + -0xc)" * (cast_expression "(uint *)(puVar6 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xc)" ( (binary_expression "puVar6 + -0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*pcVar7 == '\0') {\n      pcVar12 = *(code **)(puVar11 + 0x53920);\n      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);\n      *pcVar7 = '\x01';\n      (*pcVar12)(uVar15);\n      puVar13 = *(undefined **)(puVar6 + -0x18);\n    }" if (parenthesized_expression "(*pcVar7 == '\0')" ( (binary_expression "*pcVar7 == '\0'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar12 = *(code **)(puVar11 + 0x53920);\n      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);\n      *pcVar7 = '\x01';\n      (*pcVar12)(uVar15);\n      puVar13 = *(undefined **)(puVar6 + -0x18);\n    }" { (expression_statement "pcVar12 = *(code **)(puVar11 + 0x53920);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x53920)" identifier = (pointer_expression "*(code **)(puVar11 + 0x53920)" * (cast_expression "(code **)(puVar11 + 0x53920)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x53920)" ( (binary_expression "puVar11 + 0x53920" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = *(undefined4 *)(puVar11 + 0x5359c);" (assignment_expression "uVar15 = *(undefined4 *)(puVar11 + 0x5359c)" identifier = (pointer_expression "*(undefined4 *)(puVar11 + 0x5359c)" * (cast_expression "(undefined4 *)(puVar11 + 0x5359c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x5359c)" ( (binary_expression "puVar11 + 0x5359c" identifier + number_literal) ))))) ;) (expression_statement "*pcVar7 = '\x01';" (assignment_expression "*pcVar7 = '\x01'" (pointer_expression "*pcVar7" * identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "(*pcVar12)(uVar15);" (call_expression "(*pcVar12)(uVar15)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(uVar15)" ( identifier ))) ;) (expression_statement "puVar13 = *(undefined **)(puVar6 + -0x18);" (assignment_expression "puVar13 = *(undefined **)(puVar6 + -0x18)" identifier = (pointer_expression "*(undefined **)(puVar6 + -0x18)" * (cast_expression "(undefined **)(puVar6 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x18)" ( (binary_expression "puVar6 + -0x18" identifier + number_literal) ))))) ;) })) (expression_statement "iVar10 = *(int *)(puVar13 + -0x7dc4);" (assignment_expression "iVar10 = *(int *)(puVar13 + -0x7dc4)" identifier = (pointer_expression "*(int *)(puVar13 + -0x7dc4)" * (cast_expression "(int *)(puVar13 + -0x7dc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x7dc4)" ( (binary_expression "puVar13 + -0x7dc4" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5);" (call_expression "(**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5)" (parenthesized_expression "(**(code **)(*(int *)(iVar10 + 0x10) + 4))" ( (pointer_expression "**(code **)(*(int *)(iVar10 + 0x10) + 4)" * (pointer_expression "*(code **)(*(int *)(iVar10 + 0x10) + 4)" * (cast_expression "(code **)(*(int *)(iVar10 + 0x10) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar10 + 0x10) + 4)" ( (binary_expression "*(int *)(iVar10 + 0x10) + 4" (pointer_expression "*(int *)(iVar10 + 0x10)" * (cast_expression "(int *)(iVar10 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar10,puVar2,(int)param_2 << 5)" ( identifier , identifier , (binary_expression "(int)param_2 << 5" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) ;) (expression_statement "puVar2 = puVar2 + (int)param_2 + -1;" (assignment_expression "puVar2 = puVar2 + (int)param_2 + -1" identifier = (binary_expression "puVar2 + (int)param_2 + -1" (binary_expression "puVar2 + (int)param_2" identifier + (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal)) ;) (expression_statement "uVar8 = *puVar2;" (assignment_expression "uVar8 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (while_statement "while (uVar8 == 0) {\n      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);\n      uVar8 = *puVar2;\n    }" while (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);\n      uVar8 = *puVar2;\n    }" { (expression_statement "(**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);" (call_expression "(**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20)" (parenthesized_expression "(**(code **)(*(int *)(iVar10 + 0x10) + 4))" ( (pointer_expression "**(code **)(*(int *)(iVar10 + 0x10) + 4)" * (pointer_expression "*(code **)(*(int *)(iVar10 + 0x10) + 4)" * (cast_expression "(code **)(*(int *)(iVar10 + 0x10) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar10 + 0x10) + 4)" ( (binary_expression "*(int *)(iVar10 + 0x10) + 4" (pointer_expression "*(int *)(iVar10 + 0x10)" * (cast_expression "(int *)(iVar10 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar10,puVar2,0x20)" ( identifier , identifier , number_literal ))) ;) (expression_statement "uVar8 = *puVar2;" (assignment_expression "uVar8 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void __gmpn_mulmid(mp_ptr rp,mp_srcptr ap,mp_size_t an,mp_srcptr bp,mp_size_t bn)\n\n{\n  mp_ptr pmVar1;\n  tmp_reentrant_t *ptVar2;\n  uint uVar3;\n  uint *puVar4;\n  char *pcVar5;\n  uint uVar6;\n  mp_limb_t mVar7;\n  tmp_reentrant_t *ptVar8;\n  mp_srcptr pmVar9;\n  mp_ptr pmVar10;\n  int *piVar11;\n  uint unaff_s1;\n  int iVar12;\n  uint unaff_s2;\n  mp_srcptr pmVar13;\n  int iVar14;\n  int iVar15;\n  mp_srcptr pmVar16;\n  int in_t9;\n  code *pcVar17;\n  code *pcVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  undefined4 uVar21;\n  undefined1 auStack_60 [16];\n  mp_size_t mStack_50;\n  mp_limb_t amStack_48 [4];\n  int *piStack_38;\n  uint uStack_34;\n  tmp_reentrant_t *__tmp_marker;\n  int iStack_2c;\n  \n  amStack_48[0] = in_t9 + 0x5ba00;\n  puVar20 = auStack_60;\n  puVar19 = auStack_60;\n  piStack_38 = *(int **)(in_t9 + 0x53f00);\n  iStack_2c = *piStack_38;\n  pmVar10 = (mp_ptr)bn;\n  if (bn < 0x14) {\n    pcVar17 = *(code **)(in_t9 + 0x53e6c);\n    if (0xdb < an) {\n      mStack_50 = bn;\n      uVar6 = 0xdd - bn;\n      ptVar8 = (tmp_reentrant_t *)rp;\n      pmVar13 = ap;\n      uStack_34 = uVar6;\n      (*pcVar17)(rp,ap,0xdc);\n      unaff_s1 = uVar6;\n      pmVar9 = ap;\n      ap = pmVar13;\n      for (iVar14 = an - uVar6; 0xdb < iVar14; iVar14 = iVar14 - uStack_34) {\n        while( true ) {\n          rp = rp + uVar6;\n          pmVar9 = pmVar9 + uVar6;\n          mStack_50 = bn;\n          unaff_s2 = *rp;\n          unaff_s1 = rp[1];\n          (**(code **)(amStack_48[0] - 0x7b94))(rp,pmVar9,0xdc,bp);\n          pmVar1 = (mp_ptr)*rp;\n          ap = (mp_srcptr)(unaff_s2 + (int)pmVar1);\n          *rp = (mp_limb_t)ap;\n          ptVar2 = (tmp_reentrant_t *)((ap < pmVar1) + unaff_s1);\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + rp[1]);\n          rp[1] = (mp_limb_t)ptVar8;\n          if (ptVar2 <= ptVar8) break;\n          ptVar8 = (tmp_reentrant_t *)(rp + 1);\n          do {\n            ptVar8 = (tmp_reentrant_t *)((int)ptVar8 + 4);\n            uVar3 = *(uint *)ptVar8;\n            *(uint *)ptVar8 = uVar3 + 1;\n          } while (uVar3 + 1 == 0);\n          iVar14 = iVar14 - uStack_34;\n          if (iVar14 < 0xdc) goto LAB_00043788;\n        }\n      }\nLAB_00043788:\n      puVar19 = auStack_60;\n      if (bn <= iVar14) {\n        mStack_50 = bn;\n        puVar4 = rp + uStack_34;\n        ap = pmVar9 + uStack_34;\n        unaff_s1 = *puVar4;\n        unaff_s2 = puVar4[1];\n        (**(code **)(amStack_48[0] - 0x7b94))(puVar4,ap,iVar14,bp);\n        ptVar2 = (tmp_reentrant_t *)*puVar4;\n        ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n        *puVar4 = (uint)ptVar8;\n        uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n        uVar3 = uVar6 + puVar4[1];\n        puVar4[1] = uVar3;\n        puVar19 = auStack_60;\n        if (uVar3 < uVar6) {\n          puVar4 = puVar4 + 1;\n          do {\n            puVar4 = puVar4 + 1;\n            uVar6 = *puVar4;\n            *puVar4 = uVar6 + 1;\n            puVar19 = auStack_60;\n          } while (uVar6 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }\nLAB_0004382c:\n    mStack_50 = bn;\n    (*pcVar17)();\n    ptVar8 = (tmp_reentrant_t *)rp;\n    puVar19 = auStack_60;\n  }\n  else {\n    unaff_s2 = an - bn;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      pcVar17 = *(code **)(in_t9 + 0x53e6c);\n      if (bn < 0xdc) goto LAB_0004382c;\n      iVar14 = unaff_s2 + 3;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      if ((uint)(iVar14 * 4) < 0x7f01) {\n        iVar15 = -(iVar14 * 4 + 7U & 0xfffffff8);\n        iVar12 = (int)amStack_48 + iVar15;\n        puVar20 = auStack_60 + iVar15;\n      }\n      else {\n        iVar12 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        puVar20 = auStack_60;\n      }\n      pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n      pmVar10 = (mp_ptr)(bn + -0xdc);\n      iVar15 = an - (int)pmVar10;\n      pmVar9 = bp + bn + -0xdc;\n      *(undefined4 *)(puVar20 + 0x10) = 0xdc;\n      pmVar16 = ap;\n      (*pcVar17)(rp,ap,iVar15,pmVar9);\n      pmVar13 = ap;\n      ap = pmVar16;\n      for (; 0xdb < (int)pmVar10; pmVar10 = pmVar10 + -0x37) {\n        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n        pmVar13 = pmVar13 + 0xdc;\n        pmVar9 = pmVar9 + -0xdc;\n        *(undefined4 *)(puVar20 + 0x10) = 0xdc;\n        (*pcVar17)(iVar12,pmVar13,iVar15,pmVar9);\n        ap = rp;\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);\n      }\n      if (pmVar10 != (mp_ptr)0x0) {\n        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        (*pcVar17)(iVar12,pmVar13 + 0xdc,(int)pmVar10 + unaff_s2,pmVar9 + -(int)pmVar10);\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);\n        ap = rp;\n      }\n    }\n    else {\n      if (bn <= (int)unaff_s1) {\n        uVar6 = (bn * 3 + 0x20) * 4;\n        __tmp_marker = (tmp_reentrant_t *)0x0;\n        if (uVar6 < 0x7f01) {\n          iVar14 = -(uVar6 + 7 & 0xfffffff8);\n          puVar19 = auStack_60 + iVar14;\n          uStack_34 = (int)amStack_48 + iVar14;\n        }\n        else {\n          uStack_34 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        }\n        unaff_s1 = unaff_s1 - bn;\n        pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n        *(uint *)(puVar19 + 0x10) = uStack_34;\n        pmVar13 = ap;\n        (*pcVar17)(rp,ap,bp,bn);\n        pmVar9 = ap;\n        ap = pmVar13;\n        for (; bn <= (int)unaff_s1; unaff_s1 = unaff_s1 - bn) {\n          while( true ) {\n            rp = rp + bn;\n            pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n            pmVar9 = pmVar9 + bn;\n            *(uint *)(puVar19 + 0x10) = uStack_34;\n            uVar6 = *rp;\n            unaff_s2 = rp[1];\n            (*pcVar17)(rp,pmVar9,bp,bn);\n            pmVar1 = (mp_ptr)*rp;\n            ap = (mp_srcptr)(uVar6 + (int)pmVar1);\n            *rp = (mp_limb_t)ap;\n            uVar6 = (ap < pmVar1) + unaff_s2;\n            uVar3 = uVar6 + rp[1];\n            rp[1] = uVar3;\n            if (uVar6 <= uVar3) break;\n            puVar4 = rp + 1;\n            do {\n              puVar4 = puVar4 + 1;\n              uVar6 = *puVar4;\n              *puVar4 = uVar6 + 1;\n            } while (uVar6 + 1 == 0);\n            unaff_s1 = unaff_s1 - bn;\n            if ((int)unaff_s1 < bn) goto LAB_00043988;\n          }\n        }\nLAB_00043988:\n        ptVar8 = __tmp_marker;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          (**(code **)(amStack_48[0] - 0x7a2c))();\n        }\n        if (unaff_s1 != 0) {\n          iVar14 = bn + unaff_s1;\n          *(mp_size_t *)(puVar19 + 0x10) = bn;\n          pmVar10 = rp + bn;\n          ap = pmVar9 + bn;\n          unaff_s1 = *pmVar10;\n          unaff_s2 = pmVar10[1];\n          __gmpn_mulmid(pmVar10,ap,iVar14 + -1,bp,*(mp_size_t *)(puVar19 + 0x10));\n          ptVar2 = (tmp_reentrant_t *)*pmVar10;\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n          *pmVar10 = (mp_limb_t)ptVar8;\n          uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n          uVar3 = uVar6 + pmVar10[1];\n          pmVar10[1] = uVar3;\n          if (uVar3 < uVar6) {\n            pmVar1 = pmVar10 + 1;\n            do {\n              pmVar1 = pmVar1 + 1;\n              mVar7 = *pmVar1;\n              *pmVar1 = mVar7 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar14 = unaff_s2 + 3;\n      uVar6 = (unaff_s1 * 3 + 0x20 + iVar14) * 4;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      if (uVar6 < 0x7f01) {\n        iVar12 = -(uVar6 + 7 & 0xfffffff8);\n        puVar20 = auStack_60 + iVar12;\n        pmVar1 = (mp_ptr)((int)amStack_48 + iVar12);\n      }\n      else {\n        pmVar1 = (mp_ptr)(**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n      }\n      pmVar10 = (mp_ptr)(bn - unaff_s1);\n      pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n      pmVar16 = bp + (int)pmVar10;\n      *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n      pmVar9 = ap;\n      (*pcVar17)(rp,ap,pmVar16,unaff_s1);\n      pmVar13 = ap;\n      if ((int)unaff_s1 <= (int)pmVar10) {\n        uStack_34 = unaff_s1 * 4;\n        amStack_48[3] = unaff_s1 * -4;\n        do {\n          uVar6 = uStack_34;\n          pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n          *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n          pmVar10 = (mp_ptr)((int)pmVar10 - unaff_s1);\n          pmVar13 = (mp_srcptr)((int)pmVar13 + uVar6);\n          pmVar16 = (mp_srcptr)((int)pmVar16 + amStack_48[3]);\n          (*pcVar17)(pmVar1,pmVar13,pmVar16,unaff_s1);\n          pmVar9 = rp;\n          (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        } while ((int)unaff_s1 <= (int)pmVar10);\n      }\n      ap = pmVar9;\n      if (pmVar10 != (mp_ptr)0x0) {\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        __gmpn_mulmid(pmVar1,pmVar13 + unaff_s1,(int)pmVar10 + unaff_s2,pmVar16 + -(int)pmVar10,\n                      *(mp_size_t *)(puVar20 + 0x10));\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        ap = rp;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    ptVar8 = __tmp_marker;\n    puVar19 = puVar20;\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      (**(code **)(amStack_48[0] - 0x7a2c))();\n    }\n  }\nLAB_0004383c:\n  if (iStack_2c == *piStack_38) {\n    return;\n  }\n  pcVar17 = *(code **)(amStack_48[0] - 0x7b70);\n  uVar21 = 0x43cd4;\n  (*pcVar17)();\n  pcVar18 = pcVar17 + 0x5b360;\n  if (ap != (mp_ptr)0x0) {\n    pcVar5 = *(char **)(pcVar17 + 0x534a8);\n    *(uint *)(puVar19 + -8) = unaff_s2;\n    *(mp_ptr *)(puVar19 + -0x10) = pmVar10;\n    *(code **)(puVar19 + -0x18) = pcVar18;\n    *(undefined4 *)(puVar19 + -4) = uVar21;\n    *(uint *)(puVar19 + -0xc) = unaff_s1;\n    if (*pcVar5 == '\0') {\n      pcVar18 = *(code **)(pcVar17 + 0x53920);\n      uVar21 = *(undefined4 *)(pcVar17 + 0x5359c);\n      *pcVar5 = '\x01';\n      (*pcVar18)(uVar21);\n      pcVar18 = *(code **)(puVar19 + -0x18);\n    }\n    iVar12 = *(int *)(pcVar18 + -0x7dc4);\n    (**(code **)(*(int *)(iVar12 + 0x10) + 4))(iVar12,ptVar8,(int)ap << 5);\n    piVar11 = (int *)((int)ptVar8 + (int)ap * 4 + -4);\n    iVar14 = *piVar11;\n    while (iVar14 == 0) {\n      (**(code **)(*(int *)(iVar12 + 0x10) + 4))(iVar12,piVar11,0x20);\n      iVar14 = *piVar11;\n    }\n    return;\n  }\n  return;\n}\n\n" (function_definition "void __gmpn_mulmid(mp_ptr rp,mp_srcptr ap,mp_size_t an,mp_srcptr bp,mp_size_t bn)\n\n{\n  mp_ptr pmVar1;\n  tmp_reentrant_t *ptVar2;\n  uint uVar3;\n  uint *puVar4;\n  char *pcVar5;\n  uint uVar6;\n  mp_limb_t mVar7;\n  tmp_reentrant_t *ptVar8;\n  mp_srcptr pmVar9;\n  mp_ptr pmVar10;\n  int *piVar11;\n  uint unaff_s1;\n  int iVar12;\n  uint unaff_s2;\n  mp_srcptr pmVar13;\n  int iVar14;\n  int iVar15;\n  mp_srcptr pmVar16;\n  int in_t9;\n  code *pcVar17;\n  code *pcVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  undefined4 uVar21;\n  undefined1 auStack_60 [16];\n  mp_size_t mStack_50;\n  mp_limb_t amStack_48 [4];\n  int *piStack_38;\n  uint uStack_34;\n  tmp_reentrant_t *__tmp_marker;\n  int iStack_2c;\n  \n  amStack_48[0] = in_t9 + 0x5ba00;\n  puVar20 = auStack_60;\n  puVar19 = auStack_60;\n  piStack_38 = *(int **)(in_t9 + 0x53f00);\n  iStack_2c = *piStack_38;\n  pmVar10 = (mp_ptr)bn;\n  if (bn < 0x14) {\n    pcVar17 = *(code **)(in_t9 + 0x53e6c);\n    if (0xdb < an) {\n      mStack_50 = bn;\n      uVar6 = 0xdd - bn;\n      ptVar8 = (tmp_reentrant_t *)rp;\n      pmVar13 = ap;\n      uStack_34 = uVar6;\n      (*pcVar17)(rp,ap,0xdc);\n      unaff_s1 = uVar6;\n      pmVar9 = ap;\n      ap = pmVar13;\n      for (iVar14 = an - uVar6; 0xdb < iVar14; iVar14 = iVar14 - uStack_34) {\n        while( true ) {\n          rp = rp + uVar6;\n          pmVar9 = pmVar9 + uVar6;\n          mStack_50 = bn;\n          unaff_s2 = *rp;\n          unaff_s1 = rp[1];\n          (**(code **)(amStack_48[0] - 0x7b94))(rp,pmVar9,0xdc,bp);\n          pmVar1 = (mp_ptr)*rp;\n          ap = (mp_srcptr)(unaff_s2 + (int)pmVar1);\n          *rp = (mp_limb_t)ap;\n          ptVar2 = (tmp_reentrant_t *)((ap < pmVar1) + unaff_s1);\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + rp[1]);\n          rp[1] = (mp_limb_t)ptVar8;\n          if (ptVar2 <= ptVar8) break;\n          ptVar8 = (tmp_reentrant_t *)(rp + 1);\n          do {\n            ptVar8 = (tmp_reentrant_t *)((int)ptVar8 + 4);\n            uVar3 = *(uint *)ptVar8;\n            *(uint *)ptVar8 = uVar3 + 1;\n          } while (uVar3 + 1 == 0);\n          iVar14 = iVar14 - uStack_34;\n          if (iVar14 < 0xdc) goto LAB_00043788;\n        }\n      }\nLAB_00043788:\n      puVar19 = auStack_60;\n      if (bn <= iVar14) {\n        mStack_50 = bn;\n        puVar4 = rp + uStack_34;\n        ap = pmVar9 + uStack_34;\n        unaff_s1 = *puVar4;\n        unaff_s2 = puVar4[1];\n        (**(code **)(amStack_48[0] - 0x7b94))(puVar4,ap,iVar14,bp);\n        ptVar2 = (tmp_reentrant_t *)*puVar4;\n        ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n        *puVar4 = (uint)ptVar8;\n        uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n        uVar3 = uVar6 + puVar4[1];\n        puVar4[1] = uVar3;\n        puVar19 = auStack_60;\n        if (uVar3 < uVar6) {\n          puVar4 = puVar4 + 1;\n          do {\n            puVar4 = puVar4 + 1;\n            uVar6 = *puVar4;\n            *puVar4 = uVar6 + 1;\n            puVar19 = auStack_60;\n          } while (uVar6 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }\nLAB_0004382c:\n    mStack_50 = bn;\n    (*pcVar17)();\n    ptVar8 = (tmp_reentrant_t *)rp;\n    puVar19 = auStack_60;\n  }\n  else {\n    unaff_s2 = an - bn;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      pcVar17 = *(code **)(in_t9 + 0x53e6c);\n      if (bn < 0xdc) goto LAB_0004382c;\n      iVar14 = unaff_s2 + 3;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      if ((uint)(iVar14 * 4) < 0x7f01) {\n        iVar15 = -(iVar14 * 4 + 7U & 0xfffffff8);\n        iVar12 = (int)amStack_48 + iVar15;\n        puVar20 = auStack_60 + iVar15;\n      }\n      else {\n        iVar12 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        puVar20 = auStack_60;\n      }\n      pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n      pmVar10 = (mp_ptr)(bn + -0xdc);\n      iVar15 = an - (int)pmVar10;\n      pmVar9 = bp + bn + -0xdc;\n      *(undefined4 *)(puVar20 + 0x10) = 0xdc;\n      pmVar16 = ap;\n      (*pcVar17)(rp,ap,iVar15,pmVar9);\n      pmVar13 = ap;\n      ap = pmVar16;\n      for (; 0xdb < (int)pmVar10; pmVar10 = pmVar10 + -0x37) {\n        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n        pmVar13 = pmVar13 + 0xdc;\n        pmVar9 = pmVar9 + -0xdc;\n        *(undefined4 *)(puVar20 + 0x10) = 0xdc;\n        (*pcVar17)(iVar12,pmVar13,iVar15,pmVar9);\n        ap = rp;\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);\n      }\n      if (pmVar10 != (mp_ptr)0x0) {\n        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        (*pcVar17)(iVar12,pmVar13 + 0xdc,(int)pmVar10 + unaff_s2,pmVar9 + -(int)pmVar10);\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);\n        ap = rp;\n      }\n    }\n    else {\n      if (bn <= (int)unaff_s1) {\n        uVar6 = (bn * 3 + 0x20) * 4;\n        __tmp_marker = (tmp_reentrant_t *)0x0;\n        if (uVar6 < 0x7f01) {\n          iVar14 = -(uVar6 + 7 & 0xfffffff8);\n          puVar19 = auStack_60 + iVar14;\n          uStack_34 = (int)amStack_48 + iVar14;\n        }\n        else {\n          uStack_34 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        }\n        unaff_s1 = unaff_s1 - bn;\n        pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n        *(uint *)(puVar19 + 0x10) = uStack_34;\n        pmVar13 = ap;\n        (*pcVar17)(rp,ap,bp,bn);\n        pmVar9 = ap;\n        ap = pmVar13;\n        for (; bn <= (int)unaff_s1; unaff_s1 = unaff_s1 - bn) {\n          while( true ) {\n            rp = rp + bn;\n            pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n            pmVar9 = pmVar9 + bn;\n            *(uint *)(puVar19 + 0x10) = uStack_34;\n            uVar6 = *rp;\n            unaff_s2 = rp[1];\n            (*pcVar17)(rp,pmVar9,bp,bn);\n            pmVar1 = (mp_ptr)*rp;\n            ap = (mp_srcptr)(uVar6 + (int)pmVar1);\n            *rp = (mp_limb_t)ap;\n            uVar6 = (ap < pmVar1) + unaff_s2;\n            uVar3 = uVar6 + rp[1];\n            rp[1] = uVar3;\n            if (uVar6 <= uVar3) break;\n            puVar4 = rp + 1;\n            do {\n              puVar4 = puVar4 + 1;\n              uVar6 = *puVar4;\n              *puVar4 = uVar6 + 1;\n            } while (uVar6 + 1 == 0);\n            unaff_s1 = unaff_s1 - bn;\n            if ((int)unaff_s1 < bn) goto LAB_00043988;\n          }\n        }\nLAB_00043988:\n        ptVar8 = __tmp_marker;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          (**(code **)(amStack_48[0] - 0x7a2c))();\n        }\n        if (unaff_s1 != 0) {\n          iVar14 = bn + unaff_s1;\n          *(mp_size_t *)(puVar19 + 0x10) = bn;\n          pmVar10 = rp + bn;\n          ap = pmVar9 + bn;\n          unaff_s1 = *pmVar10;\n          unaff_s2 = pmVar10[1];\n          __gmpn_mulmid(pmVar10,ap,iVar14 + -1,bp,*(mp_size_t *)(puVar19 + 0x10));\n          ptVar2 = (tmp_reentrant_t *)*pmVar10;\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n          *pmVar10 = (mp_limb_t)ptVar8;\n          uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n          uVar3 = uVar6 + pmVar10[1];\n          pmVar10[1] = uVar3;\n          if (uVar3 < uVar6) {\n            pmVar1 = pmVar10 + 1;\n            do {\n              pmVar1 = pmVar1 + 1;\n              mVar7 = *pmVar1;\n              *pmVar1 = mVar7 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar14 = unaff_s2 + 3;\n      uVar6 = (unaff_s1 * 3 + 0x20 + iVar14) * 4;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      if (uVar6 < 0x7f01) {\n        iVar12 = -(uVar6 + 7 & 0xfffffff8);\n        puVar20 = auStack_60 + iVar12;\n        pmVar1 = (mp_ptr)((int)amStack_48 + iVar12);\n      }\n      else {\n        pmVar1 = (mp_ptr)(**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n      }\n      pmVar10 = (mp_ptr)(bn - unaff_s1);\n      pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n      pmVar16 = bp + (int)pmVar10;\n      *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n      pmVar9 = ap;\n      (*pcVar17)(rp,ap,pmVar16,unaff_s1);\n      pmVar13 = ap;\n      if ((int)unaff_s1 <= (int)pmVar10) {\n        uStack_34 = unaff_s1 * 4;\n        amStack_48[3] = unaff_s1 * -4;\n        do {\n          uVar6 = uStack_34;\n          pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n          *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n          pmVar10 = (mp_ptr)((int)pmVar10 - unaff_s1);\n          pmVar13 = (mp_srcptr)((int)pmVar13 + uVar6);\n          pmVar16 = (mp_srcptr)((int)pmVar16 + amStack_48[3]);\n          (*pcVar17)(pmVar1,pmVar13,pmVar16,unaff_s1);\n          pmVar9 = rp;\n          (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        } while ((int)unaff_s1 <= (int)pmVar10);\n      }\n      ap = pmVar9;\n      if (pmVar10 != (mp_ptr)0x0) {\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        __gmpn_mulmid(pmVar1,pmVar13 + unaff_s1,(int)pmVar10 + unaff_s2,pmVar16 + -(int)pmVar10,\n                      *(mp_size_t *)(puVar20 + 0x10));\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        ap = rp;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    ptVar8 = __tmp_marker;\n    puVar19 = puVar20;\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      (**(code **)(amStack_48[0] - 0x7a2c))();\n    }\n  }\nLAB_0004383c:\n  if (iStack_2c == *piStack_38) {\n    return;\n  }\n  pcVar17 = *(code **)(amStack_48[0] - 0x7b70);\n  uVar21 = 0x43cd4;\n  (*pcVar17)();\n  pcVar18 = pcVar17 + 0x5b360;\n  if (ap != (mp_ptr)0x0) {\n    pcVar5 = *(char **)(pcVar17 + 0x534a8);\n    *(uint *)(puVar19 + -8) = unaff_s2;\n    *(mp_ptr *)(puVar19 + -0x10) = pmVar10;\n    *(code **)(puVar19 + -0x18) = pcVar18;\n    *(undefined4 *)(puVar19 + -4) = uVar21;\n    *(uint *)(puVar19 + -0xc) = unaff_s1;\n    if (*pcVar5 == '\0') {\n      pcVar18 = *(code **)(pcVar17 + 0x53920);\n      uVar21 = *(undefined4 *)(pcVar17 + 0x5359c);\n      *pcVar5 = '\x01';\n      (*pcVar18)(uVar21);\n      pcVar18 = *(code **)(puVar19 + -0x18);\n    }\n    iVar12 = *(int *)(pcVar18 + -0x7dc4);\n    (**(code **)(*(int *)(iVar12 + 0x10) + 4))(iVar12,ptVar8,(int)ap << 5);\n    piVar11 = (int *)((int)ptVar8 + (int)ap * 4 + -4);\n    iVar14 = *piVar11;\n    while (iVar14 == 0) {\n      (**(code **)(*(int *)(iVar12 + 0x10) + 4))(iVar12,piVar11,0x20);\n      iVar14 = *piVar11;\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "__gmpn_mulmid(mp_ptr rp,mp_srcptr ap,mp_size_t an,mp_srcptr bp,mp_size_t bn)" identifier (parameter_list "(mp_ptr rp,mp_srcptr ap,mp_size_t an,mp_srcptr bp,mp_size_t bn)" ( (parameter_declaration "mp_ptr rp" type_identifier identifier) , (parameter_declaration "mp_srcptr ap" type_identifier identifier) , (parameter_declaration "mp_size_t an" type_identifier identifier) , (parameter_declaration "mp_srcptr bp" type_identifier identifier) , (parameter_declaration "mp_size_t bn" type_identifier identifier) ))) (compound_statement "{\n  mp_ptr pmVar1;\n  tmp_reentrant_t *ptVar2;\n  uint uVar3;\n  uint *puVar4;\n  char *pcVar5;\n  uint uVar6;\n  mp_limb_t mVar7;\n  tmp_reentrant_t *ptVar8;\n  mp_srcptr pmVar9;\n  mp_ptr pmVar10;\n  int *piVar11;\n  uint unaff_s1;\n  int iVar12;\n  uint unaff_s2;\n  mp_srcptr pmVar13;\n  int iVar14;\n  int iVar15;\n  mp_srcptr pmVar16;\n  int in_t9;\n  code *pcVar17;\n  code *pcVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  undefined4 uVar21;\n  undefined1 auStack_60 [16];\n  mp_size_t mStack_50;\n  mp_limb_t amStack_48 [4];\n  int *piStack_38;\n  uint uStack_34;\n  tmp_reentrant_t *__tmp_marker;\n  int iStack_2c;\n  \n  amStack_48[0] = in_t9 + 0x5ba00;\n  puVar20 = auStack_60;\n  puVar19 = auStack_60;\n  piStack_38 = *(int **)(in_t9 + 0x53f00);\n  iStack_2c = *piStack_38;\n  pmVar10 = (mp_ptr)bn;\n  if (bn < 0x14) {\n    pcVar17 = *(code **)(in_t9 + 0x53e6c);\n    if (0xdb < an) {\n      mStack_50 = bn;\n      uVar6 = 0xdd - bn;\n      ptVar8 = (tmp_reentrant_t *)rp;\n      pmVar13 = ap;\n      uStack_34 = uVar6;\n      (*pcVar17)(rp,ap,0xdc);\n      unaff_s1 = uVar6;\n      pmVar9 = ap;\n      ap = pmVar13;\n      for (iVar14 = an - uVar6; 0xdb < iVar14; iVar14 = iVar14 - uStack_34) {\n        while( true ) {\n          rp = rp + uVar6;\n          pmVar9 = pmVar9 + uVar6;\n          mStack_50 = bn;\n          unaff_s2 = *rp;\n          unaff_s1 = rp[1];\n          (**(code **)(amStack_48[0] - 0x7b94))(rp,pmVar9,0xdc,bp);\n          pmVar1 = (mp_ptr)*rp;\n          ap = (mp_srcptr)(unaff_s2 + (int)pmVar1);\n          *rp = (mp_limb_t)ap;\n          ptVar2 = (tmp_reentrant_t *)((ap < pmVar1) + unaff_s1);\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + rp[1]);\n          rp[1] = (mp_limb_t)ptVar8;\n          if (ptVar2 <= ptVar8) break;\n          ptVar8 = (tmp_reentrant_t *)(rp + 1);\n          do {\n            ptVar8 = (tmp_reentrant_t *)((int)ptVar8 + 4);\n            uVar3 = *(uint *)ptVar8;\n            *(uint *)ptVar8 = uVar3 + 1;\n          } while (uVar3 + 1 == 0);\n          iVar14 = iVar14 - uStack_34;\n          if (iVar14 < 0xdc) goto LAB_00043788;\n        }\n      }\nLAB_00043788:\n      puVar19 = auStack_60;\n      if (bn <= iVar14) {\n        mStack_50 = bn;\n        puVar4 = rp + uStack_34;\n        ap = pmVar9 + uStack_34;\n        unaff_s1 = *puVar4;\n        unaff_s2 = puVar4[1];\n        (**(code **)(amStack_48[0] - 0x7b94))(puVar4,ap,iVar14,bp);\n        ptVar2 = (tmp_reentrant_t *)*puVar4;\n        ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n        *puVar4 = (uint)ptVar8;\n        uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n        uVar3 = uVar6 + puVar4[1];\n        puVar4[1] = uVar3;\n        puVar19 = auStack_60;\n        if (uVar3 < uVar6) {\n          puVar4 = puVar4 + 1;\n          do {\n            puVar4 = puVar4 + 1;\n            uVar6 = *puVar4;\n            *puVar4 = uVar6 + 1;\n            puVar19 = auStack_60;\n          } while (uVar6 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }\nLAB_0004382c:\n    mStack_50 = bn;\n    (*pcVar17)();\n    ptVar8 = (tmp_reentrant_t *)rp;\n    puVar19 = auStack_60;\n  }\n  else {\n    unaff_s2 = an - bn;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      pcVar17 = *(code **)(in_t9 + 0x53e6c);\n      if (bn < 0xdc) goto LAB_0004382c;\n      iVar14 = unaff_s2 + 3;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      if ((uint)(iVar14 * 4) < 0x7f01) {\n        iVar15 = -(iVar14 * 4 + 7U & 0xfffffff8);\n        iVar12 = (int)amStack_48 + iVar15;\n        puVar20 = auStack_60 + iVar15;\n      }\n      else {\n        iVar12 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        puVar20 = auStack_60;\n      }\n      pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n      pmVar10 = (mp_ptr)(bn + -0xdc);\n      iVar15 = an - (int)pmVar10;\n      pmVar9 = bp + bn + -0xdc;\n      *(undefined4 *)(puVar20 + 0x10) = 0xdc;\n      pmVar16 = ap;\n      (*pcVar17)(rp,ap,iVar15,pmVar9);\n      pmVar13 = ap;\n      ap = pmVar16;\n      for (; 0xdb < (int)pmVar10; pmVar10 = pmVar10 + -0x37) {\n        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n        pmVar13 = pmVar13 + 0xdc;\n        pmVar9 = pmVar9 + -0xdc;\n        *(undefined4 *)(puVar20 + 0x10) = 0xdc;\n        (*pcVar17)(iVar12,pmVar13,iVar15,pmVar9);\n        ap = rp;\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);\n      }\n      if (pmVar10 != (mp_ptr)0x0) {\n        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        (*pcVar17)(iVar12,pmVar13 + 0xdc,(int)pmVar10 + unaff_s2,pmVar9 + -(int)pmVar10);\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);\n        ap = rp;\n      }\n    }\n    else {\n      if (bn <= (int)unaff_s1) {\n        uVar6 = (bn * 3 + 0x20) * 4;\n        __tmp_marker = (tmp_reentrant_t *)0x0;\n        if (uVar6 < 0x7f01) {\n          iVar14 = -(uVar6 + 7 & 0xfffffff8);\n          puVar19 = auStack_60 + iVar14;\n          uStack_34 = (int)amStack_48 + iVar14;\n        }\n        else {\n          uStack_34 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        }\n        unaff_s1 = unaff_s1 - bn;\n        pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n        *(uint *)(puVar19 + 0x10) = uStack_34;\n        pmVar13 = ap;\n        (*pcVar17)(rp,ap,bp,bn);\n        pmVar9 = ap;\n        ap = pmVar13;\n        for (; bn <= (int)unaff_s1; unaff_s1 = unaff_s1 - bn) {\n          while( true ) {\n            rp = rp + bn;\n            pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n            pmVar9 = pmVar9 + bn;\n            *(uint *)(puVar19 + 0x10) = uStack_34;\n            uVar6 = *rp;\n            unaff_s2 = rp[1];\n            (*pcVar17)(rp,pmVar9,bp,bn);\n            pmVar1 = (mp_ptr)*rp;\n            ap = (mp_srcptr)(uVar6 + (int)pmVar1);\n            *rp = (mp_limb_t)ap;\n            uVar6 = (ap < pmVar1) + unaff_s2;\n            uVar3 = uVar6 + rp[1];\n            rp[1] = uVar3;\n            if (uVar6 <= uVar3) break;\n            puVar4 = rp + 1;\n            do {\n              puVar4 = puVar4 + 1;\n              uVar6 = *puVar4;\n              *puVar4 = uVar6 + 1;\n            } while (uVar6 + 1 == 0);\n            unaff_s1 = unaff_s1 - bn;\n            if ((int)unaff_s1 < bn) goto LAB_00043988;\n          }\n        }\nLAB_00043988:\n        ptVar8 = __tmp_marker;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          (**(code **)(amStack_48[0] - 0x7a2c))();\n        }\n        if (unaff_s1 != 0) {\n          iVar14 = bn + unaff_s1;\n          *(mp_size_t *)(puVar19 + 0x10) = bn;\n          pmVar10 = rp + bn;\n          ap = pmVar9 + bn;\n          unaff_s1 = *pmVar10;\n          unaff_s2 = pmVar10[1];\n          __gmpn_mulmid(pmVar10,ap,iVar14 + -1,bp,*(mp_size_t *)(puVar19 + 0x10));\n          ptVar2 = (tmp_reentrant_t *)*pmVar10;\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n          *pmVar10 = (mp_limb_t)ptVar8;\n          uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n          uVar3 = uVar6 + pmVar10[1];\n          pmVar10[1] = uVar3;\n          if (uVar3 < uVar6) {\n            pmVar1 = pmVar10 + 1;\n            do {\n              pmVar1 = pmVar1 + 1;\n              mVar7 = *pmVar1;\n              *pmVar1 = mVar7 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar14 = unaff_s2 + 3;\n      uVar6 = (unaff_s1 * 3 + 0x20 + iVar14) * 4;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      if (uVar6 < 0x7f01) {\n        iVar12 = -(uVar6 + 7 & 0xfffffff8);\n        puVar20 = auStack_60 + iVar12;\n        pmVar1 = (mp_ptr)((int)amStack_48 + iVar12);\n      }\n      else {\n        pmVar1 = (mp_ptr)(**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n      }\n      pmVar10 = (mp_ptr)(bn - unaff_s1);\n      pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n      pmVar16 = bp + (int)pmVar10;\n      *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n      pmVar9 = ap;\n      (*pcVar17)(rp,ap,pmVar16,unaff_s1);\n      pmVar13 = ap;\n      if ((int)unaff_s1 <= (int)pmVar10) {\n        uStack_34 = unaff_s1 * 4;\n        amStack_48[3] = unaff_s1 * -4;\n        do {\n          uVar6 = uStack_34;\n          pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n          *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n          pmVar10 = (mp_ptr)((int)pmVar10 - unaff_s1);\n          pmVar13 = (mp_srcptr)((int)pmVar13 + uVar6);\n          pmVar16 = (mp_srcptr)((int)pmVar16 + amStack_48[3]);\n          (*pcVar17)(pmVar1,pmVar13,pmVar16,unaff_s1);\n          pmVar9 = rp;\n          (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        } while ((int)unaff_s1 <= (int)pmVar10);\n      }\n      ap = pmVar9;\n      if (pmVar10 != (mp_ptr)0x0) {\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        __gmpn_mulmid(pmVar1,pmVar13 + unaff_s1,(int)pmVar10 + unaff_s2,pmVar16 + -(int)pmVar10,\n                      *(mp_size_t *)(puVar20 + 0x10));\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        ap = rp;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    ptVar8 = __tmp_marker;\n    puVar19 = puVar20;\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      (**(code **)(amStack_48[0] - 0x7a2c))();\n    }\n  }\nLAB_0004383c:\n  if (iStack_2c == *piStack_38) {\n    return;\n  }\n  pcVar17 = *(code **)(amStack_48[0] - 0x7b70);\n  uVar21 = 0x43cd4;\n  (*pcVar17)();\n  pcVar18 = pcVar17 + 0x5b360;\n  if (ap != (mp_ptr)0x0) {\n    pcVar5 = *(char **)(pcVar17 + 0x534a8);\n    *(uint *)(puVar19 + -8) = unaff_s2;\n    *(mp_ptr *)(puVar19 + -0x10) = pmVar10;\n    *(code **)(puVar19 + -0x18) = pcVar18;\n    *(undefined4 *)(puVar19 + -4) = uVar21;\n    *(uint *)(puVar19 + -0xc) = unaff_s1;\n    if (*pcVar5 == '\0') {\n      pcVar18 = *(code **)(pcVar17 + 0x53920);\n      uVar21 = *(undefined4 *)(pcVar17 + 0x5359c);\n      *pcVar5 = '\x01';\n      (*pcVar18)(uVar21);\n      pcVar18 = *(code **)(puVar19 + -0x18);\n    }\n    iVar12 = *(int *)(pcVar18 + -0x7dc4);\n    (**(code **)(*(int *)(iVar12 + 0x10) + 4))(iVar12,ptVar8,(int)ap << 5);\n    piVar11 = (int *)((int)ptVar8 + (int)ap * 4 + -4);\n    iVar14 = *piVar11;\n    while (iVar14 == 0) {\n      (**(code **)(*(int *)(iVar12 + 0x10) + 4))(iVar12,piVar11,0x20);\n      iVar14 = *piVar11;\n    }\n    return;\n  }\n  return;\n}" { (declaration "mp_ptr pmVar1;" type_identifier identifier ;) (declaration "tmp_reentrant_t *ptVar2;" type_identifier (pointer_declarator "*ptVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "mp_limb_t mVar7;" type_identifier identifier ;) (declaration "tmp_reentrant_t *ptVar8;" type_identifier (pointer_declarator "*ptVar8" * identifier) ;) (declaration "mp_srcptr pmVar9;" type_identifier identifier ;) (declaration "mp_ptr pmVar10;" type_identifier identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "uint unaff_s1;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint unaff_s2;" type_identifier identifier ;) (declaration "mp_srcptr pmVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "mp_srcptr pmVar16;" type_identifier identifier ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "undefined1 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "undefined1 auStack_60 [16];" type_identifier (array_declarator "auStack_60 [16]" identifier [ number_literal ]) ;) (declaration "mp_size_t mStack_50;" type_identifier identifier ;) (declaration "mp_limb_t amStack_48 [4];" type_identifier (array_declarator "amStack_48 [4]" identifier [ number_literal ]) ;) (declaration "int *piStack_38;" primitive_type (pointer_declarator "*piStack_38" * identifier) ;) (declaration "uint uStack_34;" type_identifier identifier ;) (declaration "tmp_reentrant_t *__tmp_marker;" type_identifier (pointer_declarator "*__tmp_marker" * identifier) ;) (declaration "int iStack_2c;" primitive_type identifier ;) (expression_statement "amStack_48[0] = in_t9 + 0x5ba00;" (assignment_expression "amStack_48[0] = in_t9 + 0x5ba00" (subscript_expression "amStack_48[0]" identifier [ number_literal ]) = (binary_expression "in_t9 + 0x5ba00" identifier + number_literal)) ;) (expression_statement "puVar20 = auStack_60;" (assignment_expression "puVar20 = auStack_60" identifier = identifier) ;) (expression_statement "puVar19 = auStack_60;" (assignment_expression "puVar19 = auStack_60" identifier = identifier) ;) (expression_statement "piStack_38 = *(int **)(in_t9 + 0x53f00);" (assignment_expression "piStack_38 = *(int **)(in_t9 + 0x53f00)" identifier = (pointer_expression "*(int **)(in_t9 + 0x53f00)" * (cast_expression "(int **)(in_t9 + 0x53f00)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x53f00)" ( (binary_expression "in_t9 + 0x53f00" identifier + number_literal) ))))) ;) (expression_statement "iStack_2c = *piStack_38;" (assignment_expression "iStack_2c = *piStack_38" identifier = (pointer_expression "*piStack_38" * identifier)) ;) (expression_statement "pmVar10 = (mp_ptr)bn;" (assignment_expression "pmVar10 = (mp_ptr)bn" identifier = (cast_expression "(mp_ptr)bn" ( (type_descriptor "mp_ptr" type_identifier) ) identifier)) ;) (if_statement "if (bn < 0x14) {\n    pcVar17 = *(code **)(in_t9 + 0x53e6c);\n    if (0xdb < an) {\n      mStack_50 = bn;\n      uVar6 = 0xdd - bn;\n      ptVar8 = (tmp_reentrant_t *)rp;\n      pmVar13 = ap;\n      uStack_34 = uVar6;\n      (*pcVar17)(rp,ap,0xdc);\n      unaff_s1 = uVar6;\n      pmVar9 = ap;\n      ap = pmVar13;\n      for (iVar14 = an - uVar6; 0xdb < iVar14; iVar14 = iVar14 - uStack_34) {\n        while( true ) {\n          rp = rp + uVar6;\n          pmVar9 = pmVar9 + uVar6;\n          mStack_50 = bn;\n          unaff_s2 = *rp;\n          unaff_s1 = rp[1];\n          (**(code **)(amStack_48[0] - 0x7b94))(rp,pmVar9,0xdc,bp);\n          pmVar1 = (mp_ptr)*rp;\n          ap = (mp_srcptr)(unaff_s2 + (int)pmVar1);\n          *rp = (mp_limb_t)ap;\n          ptVar2 = (tmp_reentrant_t *)((ap < pmVar1) + unaff_s1);\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + rp[1]);\n          rp[1] = (mp_limb_t)ptVar8;\n          if (ptVar2 <= ptVar8) break;\n          ptVar8 = (tmp_reentrant_t *)(rp + 1);\n          do {\n            ptVar8 = (tmp_reentrant_t *)((int)ptVar8 + 4);\n            uVar3 = *(uint *)ptVar8;\n            *(uint *)ptVar8 = uVar3 + 1;\n          } while (uVar3 + 1 == 0);\n          iVar14 = iVar14 - uStack_34;\n          if (iVar14 < 0xdc) goto LAB_00043788;\n        }\n      }\nLAB_00043788:\n      puVar19 = auStack_60;\n      if (bn <= iVar14) {\n        mStack_50 = bn;\n        puVar4 = rp + uStack_34;\n        ap = pmVar9 + uStack_34;\n        unaff_s1 = *puVar4;\n        unaff_s2 = puVar4[1];\n        (**(code **)(amStack_48[0] - 0x7b94))(puVar4,ap,iVar14,bp);\n        ptVar2 = (tmp_reentrant_t *)*puVar4;\n        ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n        *puVar4 = (uint)ptVar8;\n        uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n        uVar3 = uVar6 + puVar4[1];\n        puVar4[1] = uVar3;\n        puVar19 = auStack_60;\n        if (uVar3 < uVar6) {\n          puVar4 = puVar4 + 1;\n          do {\n            puVar4 = puVar4 + 1;\n            uVar6 = *puVar4;\n            *puVar4 = uVar6 + 1;\n            puVar19 = auStack_60;\n          } while (uVar6 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }\nLAB_0004382c:\n    mStack_50 = bn;\n    (*pcVar17)();\n    ptVar8 = (tmp_reentrant_t *)rp;\n    puVar19 = auStack_60;\n  }\n  else {\n    unaff_s2 = an - bn;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      pcVar17 = *(code **)(in_t9 + 0x53e6c);\n      if (bn < 0xdc) goto LAB_0004382c;\n      iVar14 = unaff_s2 + 3;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      if ((uint)(iVar14 * 4) < 0x7f01) {\n        iVar15 = -(iVar14 * 4 + 7U & 0xfffffff8);\n        iVar12 = (int)amStack_48 + iVar15;\n        puVar20 = auStack_60 + iVar15;\n      }\n      else {\n        iVar12 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        puVar20 = auStack_60;\n      }\n      pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n      pmVar10 = (mp_ptr)(bn + -0xdc);\n      iVar15 = an - (int)pmVar10;\n      pmVar9 = bp + bn + -0xdc;\n      *(undefined4 *)(puVar20 + 0x10) = 0xdc;\n      pmVar16 = ap;\n      (*pcVar17)(rp,ap,iVar15,pmVar9);\n      pmVar13 = ap;\n      ap = pmVar16;\n      for (; 0xdb < (int)pmVar10; pmVar10 = pmVar10 + -0x37) {\n        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n        pmVar13 = pmVar13 + 0xdc;\n        pmVar9 = pmVar9 + -0xdc;\n        *(undefined4 *)(puVar20 + 0x10) = 0xdc;\n        (*pcVar17)(iVar12,pmVar13,iVar15,pmVar9);\n        ap = rp;\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);\n      }\n      if (pmVar10 != (mp_ptr)0x0) {\n        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        (*pcVar17)(iVar12,pmVar13 + 0xdc,(int)pmVar10 + unaff_s2,pmVar9 + -(int)pmVar10);\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);\n        ap = rp;\n      }\n    }\n    else {\n      if (bn <= (int)unaff_s1) {\n        uVar6 = (bn * 3 + 0x20) * 4;\n        __tmp_marker = (tmp_reentrant_t *)0x0;\n        if (uVar6 < 0x7f01) {\n          iVar14 = -(uVar6 + 7 & 0xfffffff8);\n          puVar19 = auStack_60 + iVar14;\n          uStack_34 = (int)amStack_48 + iVar14;\n        }\n        else {\n          uStack_34 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        }\n        unaff_s1 = unaff_s1 - bn;\n        pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n        *(uint *)(puVar19 + 0x10) = uStack_34;\n        pmVar13 = ap;\n        (*pcVar17)(rp,ap,bp,bn);\n        pmVar9 = ap;\n        ap = pmVar13;\n        for (; bn <= (int)unaff_s1; unaff_s1 = unaff_s1 - bn) {\n          while( true ) {\n            rp = rp + bn;\n            pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n            pmVar9 = pmVar9 + bn;\n            *(uint *)(puVar19 + 0x10) = uStack_34;\n            uVar6 = *rp;\n            unaff_s2 = rp[1];\n            (*pcVar17)(rp,pmVar9,bp,bn);\n            pmVar1 = (mp_ptr)*rp;\n            ap = (mp_srcptr)(uVar6 + (int)pmVar1);\n            *rp = (mp_limb_t)ap;\n            uVar6 = (ap < pmVar1) + unaff_s2;\n            uVar3 = uVar6 + rp[1];\n            rp[1] = uVar3;\n            if (uVar6 <= uVar3) break;\n            puVar4 = rp + 1;\n            do {\n              puVar4 = puVar4 + 1;\n              uVar6 = *puVar4;\n              *puVar4 = uVar6 + 1;\n            } while (uVar6 + 1 == 0);\n            unaff_s1 = unaff_s1 - bn;\n            if ((int)unaff_s1 < bn) goto LAB_00043988;\n          }\n        }\nLAB_00043988:\n        ptVar8 = __tmp_marker;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          (**(code **)(amStack_48[0] - 0x7a2c))();\n        }\n        if (unaff_s1 != 0) {\n          iVar14 = bn + unaff_s1;\n          *(mp_size_t *)(puVar19 + 0x10) = bn;\n          pmVar10 = rp + bn;\n          ap = pmVar9 + bn;\n          unaff_s1 = *pmVar10;\n          unaff_s2 = pmVar10[1];\n          __gmpn_mulmid(pmVar10,ap,iVar14 + -1,bp,*(mp_size_t *)(puVar19 + 0x10));\n          ptVar2 = (tmp_reentrant_t *)*pmVar10;\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n          *pmVar10 = (mp_limb_t)ptVar8;\n          uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n          uVar3 = uVar6 + pmVar10[1];\n          pmVar10[1] = uVar3;\n          if (uVar3 < uVar6) {\n            pmVar1 = pmVar10 + 1;\n            do {\n              pmVar1 = pmVar1 + 1;\n              mVar7 = *pmVar1;\n              *pmVar1 = mVar7 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar14 = unaff_s2 + 3;\n      uVar6 = (unaff_s1 * 3 + 0x20 + iVar14) * 4;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      if (uVar6 < 0x7f01) {\n        iVar12 = -(uVar6 + 7 & 0xfffffff8);\n        puVar20 = auStack_60 + iVar12;\n        pmVar1 = (mp_ptr)((int)amStack_48 + iVar12);\n      }\n      else {\n        pmVar1 = (mp_ptr)(**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n      }\n      pmVar10 = (mp_ptr)(bn - unaff_s1);\n      pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n      pmVar16 = bp + (int)pmVar10;\n      *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n      pmVar9 = ap;\n      (*pcVar17)(rp,ap,pmVar16,unaff_s1);\n      pmVar13 = ap;\n      if ((int)unaff_s1 <= (int)pmVar10) {\n        uStack_34 = unaff_s1 * 4;\n        amStack_48[3] = unaff_s1 * -4;\n        do {\n          uVar6 = uStack_34;\n          pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n          *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n          pmVar10 = (mp_ptr)((int)pmVar10 - unaff_s1);\n          pmVar13 = (mp_srcptr)((int)pmVar13 + uVar6);\n          pmVar16 = (mp_srcptr)((int)pmVar16 + amStack_48[3]);\n          (*pcVar17)(pmVar1,pmVar13,pmVar16,unaff_s1);\n          pmVar9 = rp;\n          (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        } while ((int)unaff_s1 <= (int)pmVar10);\n      }\n      ap = pmVar9;\n      if (pmVar10 != (mp_ptr)0x0) {\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        __gmpn_mulmid(pmVar1,pmVar13 + unaff_s1,(int)pmVar10 + unaff_s2,pmVar16 + -(int)pmVar10,\n                      *(mp_size_t *)(puVar20 + 0x10));\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        ap = rp;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    ptVar8 = __tmp_marker;\n    puVar19 = puVar20;\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      (**(code **)(amStack_48[0] - 0x7a2c))();\n    }\n  }" if (parenthesized_expression "(bn < 0x14)" ( (binary_expression "bn < 0x14" identifier < number_literal) )) (compound_statement "{\n    pcVar17 = *(code **)(in_t9 + 0x53e6c);\n    if (0xdb < an) {\n      mStack_50 = bn;\n      uVar6 = 0xdd - bn;\n      ptVar8 = (tmp_reentrant_t *)rp;\n      pmVar13 = ap;\n      uStack_34 = uVar6;\n      (*pcVar17)(rp,ap,0xdc);\n      unaff_s1 = uVar6;\n      pmVar9 = ap;\n      ap = pmVar13;\n      for (iVar14 = an - uVar6; 0xdb < iVar14; iVar14 = iVar14 - uStack_34) {\n        while( true ) {\n          rp = rp + uVar6;\n          pmVar9 = pmVar9 + uVar6;\n          mStack_50 = bn;\n          unaff_s2 = *rp;\n          unaff_s1 = rp[1];\n          (**(code **)(amStack_48[0] - 0x7b94))(rp,pmVar9,0xdc,bp);\n          pmVar1 = (mp_ptr)*rp;\n          ap = (mp_srcptr)(unaff_s2 + (int)pmVar1);\n          *rp = (mp_limb_t)ap;\n          ptVar2 = (tmp_reentrant_t *)((ap < pmVar1) + unaff_s1);\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + rp[1]);\n          rp[1] = (mp_limb_t)ptVar8;\n          if (ptVar2 <= ptVar8) break;\n          ptVar8 = (tmp_reentrant_t *)(rp + 1);\n          do {\n            ptVar8 = (tmp_reentrant_t *)((int)ptVar8 + 4);\n            uVar3 = *(uint *)ptVar8;\n            *(uint *)ptVar8 = uVar3 + 1;\n          } while (uVar3 + 1 == 0);\n          iVar14 = iVar14 - uStack_34;\n          if (iVar14 < 0xdc) goto LAB_00043788;\n        }\n      }\nLAB_00043788:\n      puVar19 = auStack_60;\n      if (bn <= iVar14) {\n        mStack_50 = bn;\n        puVar4 = rp + uStack_34;\n        ap = pmVar9 + uStack_34;\n        unaff_s1 = *puVar4;\n        unaff_s2 = puVar4[1];\n        (**(code **)(amStack_48[0] - 0x7b94))(puVar4,ap,iVar14,bp);\n        ptVar2 = (tmp_reentrant_t *)*puVar4;\n        ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n        *puVar4 = (uint)ptVar8;\n        uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n        uVar3 = uVar6 + puVar4[1];\n        puVar4[1] = uVar3;\n        puVar19 = auStack_60;\n        if (uVar3 < uVar6) {\n          puVar4 = puVar4 + 1;\n          do {\n            puVar4 = puVar4 + 1;\n            uVar6 = *puVar4;\n            *puVar4 = uVar6 + 1;\n            puVar19 = auStack_60;\n          } while (uVar6 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }\nLAB_0004382c:\n    mStack_50 = bn;\n    (*pcVar17)();\n    ptVar8 = (tmp_reentrant_t *)rp;\n    puVar19 = auStack_60;\n  }" { (expression_statement "pcVar17 = *(code **)(in_t9 + 0x53e6c);" (assignment_expression "pcVar17 = *(code **)(in_t9 + 0x53e6c)" identifier = (pointer_expression "*(code **)(in_t9 + 0x53e6c)" * (cast_expression "(code **)(in_t9 + 0x53e6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x53e6c)" ( (binary_expression "in_t9 + 0x53e6c" identifier + number_literal) ))))) ;) (if_statement "if (0xdb < an) {\n      mStack_50 = bn;\n      uVar6 = 0xdd - bn;\n      ptVar8 = (tmp_reentrant_t *)rp;\n      pmVar13 = ap;\n      uStack_34 = uVar6;\n      (*pcVar17)(rp,ap,0xdc);\n      unaff_s1 = uVar6;\n      pmVar9 = ap;\n      ap = pmVar13;\n      for (iVar14 = an - uVar6; 0xdb < iVar14; iVar14 = iVar14 - uStack_34) {\n        while( true ) {\n          rp = rp + uVar6;\n          pmVar9 = pmVar9 + uVar6;\n          mStack_50 = bn;\n          unaff_s2 = *rp;\n          unaff_s1 = rp[1];\n          (**(code **)(amStack_48[0] - 0x7b94))(rp,pmVar9,0xdc,bp);\n          pmVar1 = (mp_ptr)*rp;\n          ap = (mp_srcptr)(unaff_s2 + (int)pmVar1);\n          *rp = (mp_limb_t)ap;\n          ptVar2 = (tmp_reentrant_t *)((ap < pmVar1) + unaff_s1);\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + rp[1]);\n          rp[1] = (mp_limb_t)ptVar8;\n          if (ptVar2 <= ptVar8) break;\n          ptVar8 = (tmp_reentrant_t *)(rp + 1);\n          do {\n            ptVar8 = (tmp_reentrant_t *)((int)ptVar8 + 4);\n            uVar3 = *(uint *)ptVar8;\n            *(uint *)ptVar8 = uVar3 + 1;\n          } while (uVar3 + 1 == 0);\n          iVar14 = iVar14 - uStack_34;\n          if (iVar14 < 0xdc) goto LAB_00043788;\n        }\n      }\nLAB_00043788:\n      puVar19 = auStack_60;\n      if (bn <= iVar14) {\n        mStack_50 = bn;\n        puVar4 = rp + uStack_34;\n        ap = pmVar9 + uStack_34;\n        unaff_s1 = *puVar4;\n        unaff_s2 = puVar4[1];\n        (**(code **)(amStack_48[0] - 0x7b94))(puVar4,ap,iVar14,bp);\n        ptVar2 = (tmp_reentrant_t *)*puVar4;\n        ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n        *puVar4 = (uint)ptVar8;\n        uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n        uVar3 = uVar6 + puVar4[1];\n        puVar4[1] = uVar3;\n        puVar19 = auStack_60;\n        if (uVar3 < uVar6) {\n          puVar4 = puVar4 + 1;\n          do {\n            puVar4 = puVar4 + 1;\n            uVar6 = *puVar4;\n            *puVar4 = uVar6 + 1;\n            puVar19 = auStack_60;\n          } while (uVar6 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }" if (parenthesized_expression "(0xdb < an)" ( (binary_expression "0xdb < an" number_literal < identifier) )) (compound_statement "{\n      mStack_50 = bn;\n      uVar6 = 0xdd - bn;\n      ptVar8 = (tmp_reentrant_t *)rp;\n      pmVar13 = ap;\n      uStack_34 = uVar6;\n      (*pcVar17)(rp,ap,0xdc);\n      unaff_s1 = uVar6;\n      pmVar9 = ap;\n      ap = pmVar13;\n      for (iVar14 = an - uVar6; 0xdb < iVar14; iVar14 = iVar14 - uStack_34) {\n        while( true ) {\n          rp = rp + uVar6;\n          pmVar9 = pmVar9 + uVar6;\n          mStack_50 = bn;\n          unaff_s2 = *rp;\n          unaff_s1 = rp[1];\n          (**(code **)(amStack_48[0] - 0x7b94))(rp,pmVar9,0xdc,bp);\n          pmVar1 = (mp_ptr)*rp;\n          ap = (mp_srcptr)(unaff_s2 + (int)pmVar1);\n          *rp = (mp_limb_t)ap;\n          ptVar2 = (tmp_reentrant_t *)((ap < pmVar1) + unaff_s1);\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + rp[1]);\n          rp[1] = (mp_limb_t)ptVar8;\n          if (ptVar2 <= ptVar8) break;\n          ptVar8 = (tmp_reentrant_t *)(rp + 1);\n          do {\n            ptVar8 = (tmp_reentrant_t *)((int)ptVar8 + 4);\n            uVar3 = *(uint *)ptVar8;\n            *(uint *)ptVar8 = uVar3 + 1;\n          } while (uVar3 + 1 == 0);\n          iVar14 = iVar14 - uStack_34;\n          if (iVar14 < 0xdc) goto LAB_00043788;\n        }\n      }\nLAB_00043788:\n      puVar19 = auStack_60;\n      if (bn <= iVar14) {\n        mStack_50 = bn;\n        puVar4 = rp + uStack_34;\n        ap = pmVar9 + uStack_34;\n        unaff_s1 = *puVar4;\n        unaff_s2 = puVar4[1];\n        (**(code **)(amStack_48[0] - 0x7b94))(puVar4,ap,iVar14,bp);\n        ptVar2 = (tmp_reentrant_t *)*puVar4;\n        ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n        *puVar4 = (uint)ptVar8;\n        uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n        uVar3 = uVar6 + puVar4[1];\n        puVar4[1] = uVar3;\n        puVar19 = auStack_60;\n        if (uVar3 < uVar6) {\n          puVar4 = puVar4 + 1;\n          do {\n            puVar4 = puVar4 + 1;\n            uVar6 = *puVar4;\n            *puVar4 = uVar6 + 1;\n            puVar19 = auStack_60;\n          } while (uVar6 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }" { (expression_statement "mStack_50 = bn;" (assignment_expression "mStack_50 = bn" identifier = identifier) ;) (expression_statement "uVar6 = 0xdd - bn;" (assignment_expression "uVar6 = 0xdd - bn" identifier = (binary_expression "0xdd - bn" number_literal - identifier)) ;) (expression_statement "ptVar8 = (tmp_reentrant_t *)rp;" (assignment_expression "ptVar8 = (tmp_reentrant_t *)rp" identifier = (cast_expression "(tmp_reentrant_t *)rp" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pmVar13 = ap;" (assignment_expression "pmVar13 = ap" identifier = identifier) ;) (expression_statement "uStack_34 = uVar6;" (assignment_expression "uStack_34 = uVar6" identifier = identifier) ;) (expression_statement "(*pcVar17)(rp,ap,0xdc);" (call_expression "(*pcVar17)(rp,ap,0xdc)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(rp,ap,0xdc)" ( identifier , identifier , number_literal ))) ;) (expression_statement "unaff_s1 = uVar6;" (assignment_expression "unaff_s1 = uVar6" identifier = identifier) ;) (expression_statement "pmVar9 = ap;" (assignment_expression "pmVar9 = ap" identifier = identifier) ;) (expression_statement "ap = pmVar13;" (assignment_expression "ap = pmVar13" identifier = identifier) ;) (for_statement "for (iVar14 = an - uVar6; 0xdb < iVar14; iVar14 = iVar14 - uStack_34) {\n        while( true ) {\n          rp = rp + uVar6;\n          pmVar9 = pmVar9 + uVar6;\n          mStack_50 = bn;\n          unaff_s2 = *rp;\n          unaff_s1 = rp[1];\n          (**(code **)(amStack_48[0] - 0x7b94))(rp,pmVar9,0xdc,bp);\n          pmVar1 = (mp_ptr)*rp;\n          ap = (mp_srcptr)(unaff_s2 + (int)pmVar1);\n          *rp = (mp_limb_t)ap;\n          ptVar2 = (tmp_reentrant_t *)((ap < pmVar1) + unaff_s1);\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + rp[1]);\n          rp[1] = (mp_limb_t)ptVar8;\n          if (ptVar2 <= ptVar8) break;\n          ptVar8 = (tmp_reentrant_t *)(rp + 1);\n          do {\n            ptVar8 = (tmp_reentrant_t *)((int)ptVar8 + 4);\n            uVar3 = *(uint *)ptVar8;\n            *(uint *)ptVar8 = uVar3 + 1;\n          } while (uVar3 + 1 == 0);\n          iVar14 = iVar14 - uStack_34;\n          if (iVar14 < 0xdc) goto LAB_00043788;\n        }\n      }" for ( (assignment_expression "iVar14 = an - uVar6" identifier = (binary_expression "an - uVar6" identifier - identifier)) ; (binary_expression "0xdb < iVar14" number_literal < identifier) ; (assignment_expression "iVar14 = iVar14 - uStack_34" identifier = (binary_expression "iVar14 - uStack_34" identifier - identifier)) ) (compound_statement "{\n        while( true ) {\n          rp = rp + uVar6;\n          pmVar9 = pmVar9 + uVar6;\n          mStack_50 = bn;\n          unaff_s2 = *rp;\n          unaff_s1 = rp[1];\n          (**(code **)(amStack_48[0] - 0x7b94))(rp,pmVar9,0xdc,bp);\n          pmVar1 = (mp_ptr)*rp;\n          ap = (mp_srcptr)(unaff_s2 + (int)pmVar1);\n          *rp = (mp_limb_t)ap;\n          ptVar2 = (tmp_reentrant_t *)((ap < pmVar1) + unaff_s1);\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + rp[1]);\n          rp[1] = (mp_limb_t)ptVar8;\n          if (ptVar2 <= ptVar8) break;\n          ptVar8 = (tmp_reentrant_t *)(rp + 1);\n          do {\n            ptVar8 = (tmp_reentrant_t *)((int)ptVar8 + 4);\n            uVar3 = *(uint *)ptVar8;\n            *(uint *)ptVar8 = uVar3 + 1;\n          } while (uVar3 + 1 == 0);\n          iVar14 = iVar14 - uStack_34;\n          if (iVar14 < 0xdc) goto LAB_00043788;\n        }\n      }" { (while_statement "while( true ) {\n          rp = rp + uVar6;\n          pmVar9 = pmVar9 + uVar6;\n          mStack_50 = bn;\n          unaff_s2 = *rp;\n          unaff_s1 = rp[1];\n          (**(code **)(amStack_48[0] - 0x7b94))(rp,pmVar9,0xdc,bp);\n          pmVar1 = (mp_ptr)*rp;\n          ap = (mp_srcptr)(unaff_s2 + (int)pmVar1);\n          *rp = (mp_limb_t)ap;\n          ptVar2 = (tmp_reentrant_t *)((ap < pmVar1) + unaff_s1);\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + rp[1]);\n          rp[1] = (mp_limb_t)ptVar8;\n          if (ptVar2 <= ptVar8) break;\n          ptVar8 = (tmp_reentrant_t *)(rp + 1);\n          do {\n            ptVar8 = (tmp_reentrant_t *)((int)ptVar8 + 4);\n            uVar3 = *(uint *)ptVar8;\n            *(uint *)ptVar8 = uVar3 + 1;\n          } while (uVar3 + 1 == 0);\n          iVar14 = iVar14 - uStack_34;\n          if (iVar14 < 0xdc) goto LAB_00043788;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          rp = rp + uVar6;\n          pmVar9 = pmVar9 + uVar6;\n          mStack_50 = bn;\n          unaff_s2 = *rp;\n          unaff_s1 = rp[1];\n          (**(code **)(amStack_48[0] - 0x7b94))(rp,pmVar9,0xdc,bp);\n          pmVar1 = (mp_ptr)*rp;\n          ap = (mp_srcptr)(unaff_s2 + (int)pmVar1);\n          *rp = (mp_limb_t)ap;\n          ptVar2 = (tmp_reentrant_t *)((ap < pmVar1) + unaff_s1);\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + rp[1]);\n          rp[1] = (mp_limb_t)ptVar8;\n          if (ptVar2 <= ptVar8) break;\n          ptVar8 = (tmp_reentrant_t *)(rp + 1);\n          do {\n            ptVar8 = (tmp_reentrant_t *)((int)ptVar8 + 4);\n            uVar3 = *(uint *)ptVar8;\n            *(uint *)ptVar8 = uVar3 + 1;\n          } while (uVar3 + 1 == 0);\n          iVar14 = iVar14 - uStack_34;\n          if (iVar14 < 0xdc) goto LAB_00043788;\n        }" { (expression_statement "rp = rp + uVar6;" (assignment_expression "rp = rp + uVar6" identifier = (binary_expression "rp + uVar6" identifier + identifier)) ;) (expression_statement "pmVar9 = pmVar9 + uVar6;" (assignment_expression "pmVar9 = pmVar9 + uVar6" identifier = (binary_expression "pmVar9 + uVar6" identifier + identifier)) ;) (expression_statement "mStack_50 = bn;" (assignment_expression "mStack_50 = bn" identifier = identifier) ;) (expression_statement "unaff_s2 = *rp;" (assignment_expression "unaff_s2 = *rp" identifier = (pointer_expression "*rp" * identifier)) ;) (expression_statement "unaff_s1 = rp[1];" (assignment_expression "unaff_s1 = rp[1]" identifier = (subscript_expression "rp[1]" identifier [ number_literal ])) ;) (expression_statement "(**(code **)(amStack_48[0] - 0x7b94))(rp,pmVar9,0xdc,bp);" (call_expression "(**(code **)(amStack_48[0] - 0x7b94))(rp,pmVar9,0xdc,bp)" (parenthesized_expression "(**(code **)(amStack_48[0] - 0x7b94))" ( (pointer_expression "**(code **)(amStack_48[0] - 0x7b94)" * (pointer_expression "*(code **)(amStack_48[0] - 0x7b94)" * (cast_expression "(code **)(amStack_48[0] - 0x7b94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(amStack_48[0] - 0x7b94)" ( (binary_expression "amStack_48[0] - 0x7b94" (subscript_expression "amStack_48[0]" identifier [ number_literal ]) - number_literal) ))))) )) (argument_list "(rp,pmVar9,0xdc,bp)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "pmVar1 = (mp_ptr)*rp;" (assignment_expression "pmVar1 = (mp_ptr)*rp" identifier = (binary_expression "(mp_ptr)*rp" (parenthesized_expression "(mp_ptr)" ( identifier )) * identifier)) ;) (expression_statement "ap = (mp_srcptr)(unaff_s2 + (int)pmVar1);" (assignment_expression "ap = (mp_srcptr)(unaff_s2 + (int)pmVar1)" identifier = (call_expression "(mp_srcptr)(unaff_s2 + (int)pmVar1)" (parenthesized_expression "(mp_srcptr)" ( identifier )) (argument_list "(unaff_s2 + (int)pmVar1)" ( (binary_expression "unaff_s2 + (int)pmVar1" identifier + (cast_expression "(int)pmVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*rp = (mp_limb_t)ap;" (assignment_expression "*rp = (mp_limb_t)ap" (pointer_expression "*rp" * identifier) = (cast_expression "(mp_limb_t)ap" ( (type_descriptor "mp_limb_t" type_identifier) ) identifier)) ;) (expression_statement "ptVar2 = (tmp_reentrant_t *)((ap < pmVar1) + unaff_s1);" (assignment_expression "ptVar2 = (tmp_reentrant_t *)((ap < pmVar1) + unaff_s1)" identifier = (cast_expression "(tmp_reentrant_t *)((ap < pmVar1) + unaff_s1)" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ap < pmVar1) + unaff_s1)" ( (binary_expression "(ap < pmVar1) + unaff_s1" (parenthesized_expression "(ap < pmVar1)" ( (binary_expression "ap < pmVar1" identifier < identifier) )) + identifier) )))) ;) (expression_statement "ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + rp[1]);" (assignment_expression "ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + rp[1])" identifier = (cast_expression "(tmp_reentrant_t *)((int)&ptVar2->next + rp[1])" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptVar2->next + rp[1])" ( (binary_expression "(int)&ptVar2->next + rp[1]" (cast_expression "(int)&ptVar2->next" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptVar2->next" & (field_expression "ptVar2->next" identifier -> field_identifier))) + (subscript_expression "rp[1]" identifier [ number_literal ])) )))) ;) (expression_statement "rp[1] = (mp_limb_t)ptVar8;" (assignment_expression "rp[1] = (mp_limb_t)ptVar8" (subscript_expression "rp[1]" identifier [ number_literal ]) = (cast_expression "(mp_limb_t)ptVar8" ( (type_descriptor "mp_limb_t" type_identifier) ) identifier)) ;) (if_statement "if (ptVar2 <= ptVar8) break;" if (parenthesized_expression "(ptVar2 <= ptVar8)" ( (binary_expression "ptVar2 <= ptVar8" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "ptVar8 = (tmp_reentrant_t *)(rp + 1);" (assignment_expression "ptVar8 = (tmp_reentrant_t *)(rp + 1)" identifier = (cast_expression "(tmp_reentrant_t *)(rp + 1)" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rp + 1)" ( (binary_expression "rp + 1" identifier + number_literal) )))) ;) (do_statement "do {\n            ptVar8 = (tmp_reentrant_t *)((int)ptVar8 + 4);\n            uVar3 = *(uint *)ptVar8;\n            *(uint *)ptVar8 = uVar3 + 1;\n          } while (uVar3 + 1 == 0);" do (compound_statement "{\n            ptVar8 = (tmp_reentrant_t *)((int)ptVar8 + 4);\n            uVar3 = *(uint *)ptVar8;\n            *(uint *)ptVar8 = uVar3 + 1;\n          }" { (expression_statement "ptVar8 = (tmp_reentrant_t *)((int)ptVar8 + 4);" (assignment_expression "ptVar8 = (tmp_reentrant_t *)((int)ptVar8 + 4)" identifier = (cast_expression "(tmp_reentrant_t *)((int)ptVar8 + 4)" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ptVar8 + 4)" ( (binary_expression "(int)ptVar8 + 4" (cast_expression "(int)ptVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar3 = *(uint *)ptVar8;" (assignment_expression "uVar3 = *(uint *)ptVar8" identifier = (pointer_expression "*(uint *)ptVar8" * (cast_expression "(uint *)ptVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(uint *)ptVar8 = uVar3 + 1;" (assignment_expression "*(uint *)ptVar8 = uVar3 + 1" (pointer_expression "*(uint *)ptVar8" * (cast_expression "(uint *)ptVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar3 + 1 == 0)" ( (binary_expression "uVar3 + 1 == 0" (binary_expression "uVar3 + 1" identifier + number_literal) == number_literal) )) ;) (expression_statement "iVar14 = iVar14 - uStack_34;" (assignment_expression "iVar14 = iVar14 - uStack_34" identifier = (binary_expression "iVar14 - uStack_34" identifier - identifier)) ;) (if_statement "if (iVar14 < 0xdc) goto LAB_00043788;" if (parenthesized_expression "(iVar14 < 0xdc)" ( (binary_expression "iVar14 < 0xdc" identifier < number_literal) )) (goto_statement "goto LAB_00043788;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_00043788:\n      puVar19 = auStack_60;" statement_identifier : (expression_statement "puVar19 = auStack_60;" (assignment_expression "puVar19 = auStack_60" identifier = identifier) ;)) (if_statement "if (bn <= iVar14) {\n        mStack_50 = bn;\n        puVar4 = rp + uStack_34;\n        ap = pmVar9 + uStack_34;\n        unaff_s1 = *puVar4;\n        unaff_s2 = puVar4[1];\n        (**(code **)(amStack_48[0] - 0x7b94))(puVar4,ap,iVar14,bp);\n        ptVar2 = (tmp_reentrant_t *)*puVar4;\n        ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n        *puVar4 = (uint)ptVar8;\n        uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n        uVar3 = uVar6 + puVar4[1];\n        puVar4[1] = uVar3;\n        puVar19 = auStack_60;\n        if (uVar3 < uVar6) {\n          puVar4 = puVar4 + 1;\n          do {\n            puVar4 = puVar4 + 1;\n            uVar6 = *puVar4;\n            *puVar4 = uVar6 + 1;\n            puVar19 = auStack_60;\n          } while (uVar6 + 1 == 0);\n        }\n      }" if (parenthesized_expression "(bn <= iVar14)" ( (binary_expression "bn <= iVar14" identifier <= identifier) )) (compound_statement "{\n        mStack_50 = bn;\n        puVar4 = rp + uStack_34;\n        ap = pmVar9 + uStack_34;\n        unaff_s1 = *puVar4;\n        unaff_s2 = puVar4[1];\n        (**(code **)(amStack_48[0] - 0x7b94))(puVar4,ap,iVar14,bp);\n        ptVar2 = (tmp_reentrant_t *)*puVar4;\n        ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n        *puVar4 = (uint)ptVar8;\n        uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n        uVar3 = uVar6 + puVar4[1];\n        puVar4[1] = uVar3;\n        puVar19 = auStack_60;\n        if (uVar3 < uVar6) {\n          puVar4 = puVar4 + 1;\n          do {\n            puVar4 = puVar4 + 1;\n            uVar6 = *puVar4;\n            *puVar4 = uVar6 + 1;\n            puVar19 = auStack_60;\n          } while (uVar6 + 1 == 0);\n        }\n      }" { (expression_statement "mStack_50 = bn;" (assignment_expression "mStack_50 = bn" identifier = identifier) ;) (expression_statement "puVar4 = rp + uStack_34;" (assignment_expression "puVar4 = rp + uStack_34" identifier = (binary_expression "rp + uStack_34" identifier + identifier)) ;) (expression_statement "ap = pmVar9 + uStack_34;" (assignment_expression "ap = pmVar9 + uStack_34" identifier = (binary_expression "pmVar9 + uStack_34" identifier + identifier)) ;) (expression_statement "unaff_s1 = *puVar4;" (assignment_expression "unaff_s1 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "unaff_s2 = puVar4[1];" (assignment_expression "unaff_s2 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "(**(code **)(amStack_48[0] - 0x7b94))(puVar4,ap,iVar14,bp);" (call_expression "(**(code **)(amStack_48[0] - 0x7b94))(puVar4,ap,iVar14,bp)" (parenthesized_expression "(**(code **)(amStack_48[0] - 0x7b94))" ( (pointer_expression "**(code **)(amStack_48[0] - 0x7b94)" * (pointer_expression "*(code **)(amStack_48[0] - 0x7b94)" * (cast_expression "(code **)(amStack_48[0] - 0x7b94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(amStack_48[0] - 0x7b94)" ( (binary_expression "amStack_48[0] - 0x7b94" (subscript_expression "amStack_48[0]" identifier [ number_literal ]) - number_literal) ))))) )) (argument_list "(puVar4,ap,iVar14,bp)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "ptVar2 = (tmp_reentrant_t *)*puVar4;" (assignment_expression "ptVar2 = (tmp_reentrant_t *)*puVar4" identifier = (cast_expression "(tmp_reentrant_t *)*puVar4" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);" (assignment_expression "ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1)" identifier = (cast_expression "(tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1)" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptVar2->next + unaff_s1)" ( (binary_expression "(int)&ptVar2->next + unaff_s1" (cast_expression "(int)&ptVar2->next" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptVar2->next" & (field_expression "ptVar2->next" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "*puVar4 = (uint)ptVar8;" (assignment_expression "*puVar4 = (uint)ptVar8" (pointer_expression "*puVar4" * identifier) = (cast_expression "(uint)ptVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar6 = (ptVar8 < ptVar2) + unaff_s2;" (assignment_expression "uVar6 = (ptVar8 < ptVar2) + unaff_s2" identifier = (binary_expression "(ptVar8 < ptVar2) + unaff_s2" (parenthesized_expression "(ptVar8 < ptVar2)" ( (binary_expression "ptVar8 < ptVar2" identifier < identifier) )) + identifier)) ;) (expression_statement "uVar3 = uVar6 + puVar4[1];" (assignment_expression "uVar3 = uVar6 + puVar4[1]" identifier = (binary_expression "uVar6 + puVar4[1]" identifier + (subscript_expression "puVar4[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar4[1] = uVar3;" (assignment_expression "puVar4[1] = uVar3" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar19 = auStack_60;" (assignment_expression "puVar19 = auStack_60" identifier = identifier) ;) (if_statement "if (uVar3 < uVar6) {\n          puVar4 = puVar4 + 1;\n          do {\n            puVar4 = puVar4 + 1;\n            uVar6 = *puVar4;\n            *puVar4 = uVar6 + 1;\n            puVar19 = auStack_60;\n          } while (uVar6 + 1 == 0);\n        }" if (parenthesized_expression "(uVar3 < uVar6)" ( (binary_expression "uVar3 < uVar6" identifier < identifier) )) (compound_statement "{\n          puVar4 = puVar4 + 1;\n          do {\n            puVar4 = puVar4 + 1;\n            uVar6 = *puVar4;\n            *puVar4 = uVar6 + 1;\n            puVar19 = auStack_60;\n          } while (uVar6 + 1 == 0);\n        }" { (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (do_statement "do {\n            puVar4 = puVar4 + 1;\n            uVar6 = *puVar4;\n            *puVar4 = uVar6 + 1;\n            puVar19 = auStack_60;\n          } while (uVar6 + 1 == 0);" do (compound_statement "{\n            puVar4 = puVar4 + 1;\n            uVar6 = *puVar4;\n            *puVar4 = uVar6 + 1;\n            puVar19 = auStack_60;\n          }" { (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar6 = *puVar4;" (assignment_expression "uVar6 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*puVar4 = uVar6 + 1;" (assignment_expression "*puVar4 = uVar6 + 1" (pointer_expression "*puVar4" * identifier) = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "puVar19 = auStack_60;" (assignment_expression "puVar19 = auStack_60" identifier = identifier) ;) }) while (parenthesized_expression "(uVar6 + 1 == 0)" ( (binary_expression "uVar6 + 1 == 0" (binary_expression "uVar6 + 1" identifier + number_literal) == number_literal) )) ;) })) })) (goto_statement "goto LAB_0004383c;" goto statement_identifier ;) })) (labeled_statement "LAB_0004382c:\n    mStack_50 = bn;" statement_identifier : (expression_statement "mStack_50 = bn;" (assignment_expression "mStack_50 = bn" identifier = identifier) ;)) (expression_statement "(*pcVar17)();" (call_expression "(*pcVar17)()" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "ptVar8 = (tmp_reentrant_t *)rp;" (assignment_expression "ptVar8 = (tmp_reentrant_t *)rp" identifier = (cast_expression "(tmp_reentrant_t *)rp" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar19 = auStack_60;" (assignment_expression "puVar19 = auStack_60" identifier = identifier) ;) }) (else_clause "else {\n    unaff_s2 = an - bn;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      pcVar17 = *(code **)(in_t9 + 0x53e6c);\n      if (bn < 0xdc) goto LAB_0004382c;\n      iVar14 = unaff_s2 + 3;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      if ((uint)(iVar14 * 4) < 0x7f01) {\n        iVar15 = -(iVar14 * 4 + 7U & 0xfffffff8);\n        iVar12 = (int)amStack_48 + iVar15;\n        puVar20 = auStack_60 + iVar15;\n      }\n      else {\n        iVar12 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        puVar20 = auStack_60;\n      }\n      pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n      pmVar10 = (mp_ptr)(bn + -0xdc);\n      iVar15 = an - (int)pmVar10;\n      pmVar9 = bp + bn + -0xdc;\n      *(undefined4 *)(puVar20 + 0x10) = 0xdc;\n      pmVar16 = ap;\n      (*pcVar17)(rp,ap,iVar15,pmVar9);\n      pmVar13 = ap;\n      ap = pmVar16;\n      for (; 0xdb < (int)pmVar10; pmVar10 = pmVar10 + -0x37) {\n        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n        pmVar13 = pmVar13 + 0xdc;\n        pmVar9 = pmVar9 + -0xdc;\n        *(undefined4 *)(puVar20 + 0x10) = 0xdc;\n        (*pcVar17)(iVar12,pmVar13,iVar15,pmVar9);\n        ap = rp;\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);\n      }\n      if (pmVar10 != (mp_ptr)0x0) {\n        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        (*pcVar17)(iVar12,pmVar13 + 0xdc,(int)pmVar10 + unaff_s2,pmVar9 + -(int)pmVar10);\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);\n        ap = rp;\n      }\n    }\n    else {\n      if (bn <= (int)unaff_s1) {\n        uVar6 = (bn * 3 + 0x20) * 4;\n        __tmp_marker = (tmp_reentrant_t *)0x0;\n        if (uVar6 < 0x7f01) {\n          iVar14 = -(uVar6 + 7 & 0xfffffff8);\n          puVar19 = auStack_60 + iVar14;\n          uStack_34 = (int)amStack_48 + iVar14;\n        }\n        else {\n          uStack_34 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        }\n        unaff_s1 = unaff_s1 - bn;\n        pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n        *(uint *)(puVar19 + 0x10) = uStack_34;\n        pmVar13 = ap;\n        (*pcVar17)(rp,ap,bp,bn);\n        pmVar9 = ap;\n        ap = pmVar13;\n        for (; bn <= (int)unaff_s1; unaff_s1 = unaff_s1 - bn) {\n          while( true ) {\n            rp = rp + bn;\n            pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n            pmVar9 = pmVar9 + bn;\n            *(uint *)(puVar19 + 0x10) = uStack_34;\n            uVar6 = *rp;\n            unaff_s2 = rp[1];\n            (*pcVar17)(rp,pmVar9,bp,bn);\n            pmVar1 = (mp_ptr)*rp;\n            ap = (mp_srcptr)(uVar6 + (int)pmVar1);\n            *rp = (mp_limb_t)ap;\n            uVar6 = (ap < pmVar1) + unaff_s2;\n            uVar3 = uVar6 + rp[1];\n            rp[1] = uVar3;\n            if (uVar6 <= uVar3) break;\n            puVar4 = rp + 1;\n            do {\n              puVar4 = puVar4 + 1;\n              uVar6 = *puVar4;\n              *puVar4 = uVar6 + 1;\n            } while (uVar6 + 1 == 0);\n            unaff_s1 = unaff_s1 - bn;\n            if ((int)unaff_s1 < bn) goto LAB_00043988;\n          }\n        }\nLAB_00043988:\n        ptVar8 = __tmp_marker;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          (**(code **)(amStack_48[0] - 0x7a2c))();\n        }\n        if (unaff_s1 != 0) {\n          iVar14 = bn + unaff_s1;\n          *(mp_size_t *)(puVar19 + 0x10) = bn;\n          pmVar10 = rp + bn;\n          ap = pmVar9 + bn;\n          unaff_s1 = *pmVar10;\n          unaff_s2 = pmVar10[1];\n          __gmpn_mulmid(pmVar10,ap,iVar14 + -1,bp,*(mp_size_t *)(puVar19 + 0x10));\n          ptVar2 = (tmp_reentrant_t *)*pmVar10;\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n          *pmVar10 = (mp_limb_t)ptVar8;\n          uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n          uVar3 = uVar6 + pmVar10[1];\n          pmVar10[1] = uVar3;\n          if (uVar3 < uVar6) {\n            pmVar1 = pmVar10 + 1;\n            do {\n              pmVar1 = pmVar1 + 1;\n              mVar7 = *pmVar1;\n              *pmVar1 = mVar7 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar14 = unaff_s2 + 3;\n      uVar6 = (unaff_s1 * 3 + 0x20 + iVar14) * 4;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      if (uVar6 < 0x7f01) {\n        iVar12 = -(uVar6 + 7 & 0xfffffff8);\n        puVar20 = auStack_60 + iVar12;\n        pmVar1 = (mp_ptr)((int)amStack_48 + iVar12);\n      }\n      else {\n        pmVar1 = (mp_ptr)(**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n      }\n      pmVar10 = (mp_ptr)(bn - unaff_s1);\n      pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n      pmVar16 = bp + (int)pmVar10;\n      *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n      pmVar9 = ap;\n      (*pcVar17)(rp,ap,pmVar16,unaff_s1);\n      pmVar13 = ap;\n      if ((int)unaff_s1 <= (int)pmVar10) {\n        uStack_34 = unaff_s1 * 4;\n        amStack_48[3] = unaff_s1 * -4;\n        do {\n          uVar6 = uStack_34;\n          pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n          *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n          pmVar10 = (mp_ptr)((int)pmVar10 - unaff_s1);\n          pmVar13 = (mp_srcptr)((int)pmVar13 + uVar6);\n          pmVar16 = (mp_srcptr)((int)pmVar16 + amStack_48[3]);\n          (*pcVar17)(pmVar1,pmVar13,pmVar16,unaff_s1);\n          pmVar9 = rp;\n          (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        } while ((int)unaff_s1 <= (int)pmVar10);\n      }\n      ap = pmVar9;\n      if (pmVar10 != (mp_ptr)0x0) {\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        __gmpn_mulmid(pmVar1,pmVar13 + unaff_s1,(int)pmVar10 + unaff_s2,pmVar16 + -(int)pmVar10,\n                      *(mp_size_t *)(puVar20 + 0x10));\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        ap = rp;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    ptVar8 = __tmp_marker;\n    puVar19 = puVar20;\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      (**(code **)(amStack_48[0] - 0x7a2c))();\n    }\n  }" else (compound_statement "{\n    unaff_s2 = an - bn;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      pcVar17 = *(code **)(in_t9 + 0x53e6c);\n      if (bn < 0xdc) goto LAB_0004382c;\n      iVar14 = unaff_s2 + 3;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      if ((uint)(iVar14 * 4) < 0x7f01) {\n        iVar15 = -(iVar14 * 4 + 7U & 0xfffffff8);\n        iVar12 = (int)amStack_48 + iVar15;\n        puVar20 = auStack_60 + iVar15;\n      }\n      else {\n        iVar12 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        puVar20 = auStack_60;\n      }\n      pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n      pmVar10 = (mp_ptr)(bn + -0xdc);\n      iVar15 = an - (int)pmVar10;\n      pmVar9 = bp + bn + -0xdc;\n      *(undefined4 *)(puVar20 + 0x10) = 0xdc;\n      pmVar16 = ap;\n      (*pcVar17)(rp,ap,iVar15,pmVar9);\n      pmVar13 = ap;\n      ap = pmVar16;\n      for (; 0xdb < (int)pmVar10; pmVar10 = pmVar10 + -0x37) {\n        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n        pmVar13 = pmVar13 + 0xdc;\n        pmVar9 = pmVar9 + -0xdc;\n        *(undefined4 *)(puVar20 + 0x10) = 0xdc;\n        (*pcVar17)(iVar12,pmVar13,iVar15,pmVar9);\n        ap = rp;\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);\n      }\n      if (pmVar10 != (mp_ptr)0x0) {\n        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        (*pcVar17)(iVar12,pmVar13 + 0xdc,(int)pmVar10 + unaff_s2,pmVar9 + -(int)pmVar10);\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);\n        ap = rp;\n      }\n    }\n    else {\n      if (bn <= (int)unaff_s1) {\n        uVar6 = (bn * 3 + 0x20) * 4;\n        __tmp_marker = (tmp_reentrant_t *)0x0;\n        if (uVar6 < 0x7f01) {\n          iVar14 = -(uVar6 + 7 & 0xfffffff8);\n          puVar19 = auStack_60 + iVar14;\n          uStack_34 = (int)amStack_48 + iVar14;\n        }\n        else {\n          uStack_34 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        }\n        unaff_s1 = unaff_s1 - bn;\n        pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n        *(uint *)(puVar19 + 0x10) = uStack_34;\n        pmVar13 = ap;\n        (*pcVar17)(rp,ap,bp,bn);\n        pmVar9 = ap;\n        ap = pmVar13;\n        for (; bn <= (int)unaff_s1; unaff_s1 = unaff_s1 - bn) {\n          while( true ) {\n            rp = rp + bn;\n            pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n            pmVar9 = pmVar9 + bn;\n            *(uint *)(puVar19 + 0x10) = uStack_34;\n            uVar6 = *rp;\n            unaff_s2 = rp[1];\n            (*pcVar17)(rp,pmVar9,bp,bn);\n            pmVar1 = (mp_ptr)*rp;\n            ap = (mp_srcptr)(uVar6 + (int)pmVar1);\n            *rp = (mp_limb_t)ap;\n            uVar6 = (ap < pmVar1) + unaff_s2;\n            uVar3 = uVar6 + rp[1];\n            rp[1] = uVar3;\n            if (uVar6 <= uVar3) break;\n            puVar4 = rp + 1;\n            do {\n              puVar4 = puVar4 + 1;\n              uVar6 = *puVar4;\n              *puVar4 = uVar6 + 1;\n            } while (uVar6 + 1 == 0);\n            unaff_s1 = unaff_s1 - bn;\n            if ((int)unaff_s1 < bn) goto LAB_00043988;\n          }\n        }\nLAB_00043988:\n        ptVar8 = __tmp_marker;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          (**(code **)(amStack_48[0] - 0x7a2c))();\n        }\n        if (unaff_s1 != 0) {\n          iVar14 = bn + unaff_s1;\n          *(mp_size_t *)(puVar19 + 0x10) = bn;\n          pmVar10 = rp + bn;\n          ap = pmVar9 + bn;\n          unaff_s1 = *pmVar10;\n          unaff_s2 = pmVar10[1];\n          __gmpn_mulmid(pmVar10,ap,iVar14 + -1,bp,*(mp_size_t *)(puVar19 + 0x10));\n          ptVar2 = (tmp_reentrant_t *)*pmVar10;\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n          *pmVar10 = (mp_limb_t)ptVar8;\n          uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n          uVar3 = uVar6 + pmVar10[1];\n          pmVar10[1] = uVar3;\n          if (uVar3 < uVar6) {\n            pmVar1 = pmVar10 + 1;\n            do {\n              pmVar1 = pmVar1 + 1;\n              mVar7 = *pmVar1;\n              *pmVar1 = mVar7 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar14 = unaff_s2 + 3;\n      uVar6 = (unaff_s1 * 3 + 0x20 + iVar14) * 4;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      if (uVar6 < 0x7f01) {\n        iVar12 = -(uVar6 + 7 & 0xfffffff8);\n        puVar20 = auStack_60 + iVar12;\n        pmVar1 = (mp_ptr)((int)amStack_48 + iVar12);\n      }\n      else {\n        pmVar1 = (mp_ptr)(**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n      }\n      pmVar10 = (mp_ptr)(bn - unaff_s1);\n      pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n      pmVar16 = bp + (int)pmVar10;\n      *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n      pmVar9 = ap;\n      (*pcVar17)(rp,ap,pmVar16,unaff_s1);\n      pmVar13 = ap;\n      if ((int)unaff_s1 <= (int)pmVar10) {\n        uStack_34 = unaff_s1 * 4;\n        amStack_48[3] = unaff_s1 * -4;\n        do {\n          uVar6 = uStack_34;\n          pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n          *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n          pmVar10 = (mp_ptr)((int)pmVar10 - unaff_s1);\n          pmVar13 = (mp_srcptr)((int)pmVar13 + uVar6);\n          pmVar16 = (mp_srcptr)((int)pmVar16 + amStack_48[3]);\n          (*pcVar17)(pmVar1,pmVar13,pmVar16,unaff_s1);\n          pmVar9 = rp;\n          (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        } while ((int)unaff_s1 <= (int)pmVar10);\n      }\n      ap = pmVar9;\n      if (pmVar10 != (mp_ptr)0x0) {\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        __gmpn_mulmid(pmVar1,pmVar13 + unaff_s1,(int)pmVar10 + unaff_s2,pmVar16 + -(int)pmVar10,\n                      *(mp_size_t *)(puVar20 + 0x10));\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        ap = rp;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    ptVar8 = __tmp_marker;\n    puVar19 = puVar20;\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      (**(code **)(amStack_48[0] - 0x7a2c))();\n    }\n  }" { (expression_statement "unaff_s2 = an - bn;" (assignment_expression "unaff_s2 = an - bn" identifier = (binary_expression "an - bn" identifier - identifier)) ;) (expression_statement "unaff_s1 = unaff_s2 + 1;" (assignment_expression "unaff_s1 = unaff_s2 + 1" identifier = (binary_expression "unaff_s2 + 1" identifier + number_literal)) ;) (if_statement "if ((int)unaff_s1 < 0x14) {\n      pcVar17 = *(code **)(in_t9 + 0x53e6c);\n      if (bn < 0xdc) goto LAB_0004382c;\n      iVar14 = unaff_s2 + 3;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      if ((uint)(iVar14 * 4) < 0x7f01) {\n        iVar15 = -(iVar14 * 4 + 7U & 0xfffffff8);\n        iVar12 = (int)amStack_48 + iVar15;\n        puVar20 = auStack_60 + iVar15;\n      }\n      else {\n        iVar12 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        puVar20 = auStack_60;\n      }\n      pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n      pmVar10 = (mp_ptr)(bn + -0xdc);\n      iVar15 = an - (int)pmVar10;\n      pmVar9 = bp + bn + -0xdc;\n      *(undefined4 *)(puVar20 + 0x10) = 0xdc;\n      pmVar16 = ap;\n      (*pcVar17)(rp,ap,iVar15,pmVar9);\n      pmVar13 = ap;\n      ap = pmVar16;\n      for (; 0xdb < (int)pmVar10; pmVar10 = pmVar10 + -0x37) {\n        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n        pmVar13 = pmVar13 + 0xdc;\n        pmVar9 = pmVar9 + -0xdc;\n        *(undefined4 *)(puVar20 + 0x10) = 0xdc;\n        (*pcVar17)(iVar12,pmVar13,iVar15,pmVar9);\n        ap = rp;\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);\n      }\n      if (pmVar10 != (mp_ptr)0x0) {\n        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        (*pcVar17)(iVar12,pmVar13 + 0xdc,(int)pmVar10 + unaff_s2,pmVar9 + -(int)pmVar10);\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);\n        ap = rp;\n      }\n    }\n    else {\n      if (bn <= (int)unaff_s1) {\n        uVar6 = (bn * 3 + 0x20) * 4;\n        __tmp_marker = (tmp_reentrant_t *)0x0;\n        if (uVar6 < 0x7f01) {\n          iVar14 = -(uVar6 + 7 & 0xfffffff8);\n          puVar19 = auStack_60 + iVar14;\n          uStack_34 = (int)amStack_48 + iVar14;\n        }\n        else {\n          uStack_34 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        }\n        unaff_s1 = unaff_s1 - bn;\n        pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n        *(uint *)(puVar19 + 0x10) = uStack_34;\n        pmVar13 = ap;\n        (*pcVar17)(rp,ap,bp,bn);\n        pmVar9 = ap;\n        ap = pmVar13;\n        for (; bn <= (int)unaff_s1; unaff_s1 = unaff_s1 - bn) {\n          while( true ) {\n            rp = rp + bn;\n            pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n            pmVar9 = pmVar9 + bn;\n            *(uint *)(puVar19 + 0x10) = uStack_34;\n            uVar6 = *rp;\n            unaff_s2 = rp[1];\n            (*pcVar17)(rp,pmVar9,bp,bn);\n            pmVar1 = (mp_ptr)*rp;\n            ap = (mp_srcptr)(uVar6 + (int)pmVar1);\n            *rp = (mp_limb_t)ap;\n            uVar6 = (ap < pmVar1) + unaff_s2;\n            uVar3 = uVar6 + rp[1];\n            rp[1] = uVar3;\n            if (uVar6 <= uVar3) break;\n            puVar4 = rp + 1;\n            do {\n              puVar4 = puVar4 + 1;\n              uVar6 = *puVar4;\n              *puVar4 = uVar6 + 1;\n            } while (uVar6 + 1 == 0);\n            unaff_s1 = unaff_s1 - bn;\n            if ((int)unaff_s1 < bn) goto LAB_00043988;\n          }\n        }\nLAB_00043988:\n        ptVar8 = __tmp_marker;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          (**(code **)(amStack_48[0] - 0x7a2c))();\n        }\n        if (unaff_s1 != 0) {\n          iVar14 = bn + unaff_s1;\n          *(mp_size_t *)(puVar19 + 0x10) = bn;\n          pmVar10 = rp + bn;\n          ap = pmVar9 + bn;\n          unaff_s1 = *pmVar10;\n          unaff_s2 = pmVar10[1];\n          __gmpn_mulmid(pmVar10,ap,iVar14 + -1,bp,*(mp_size_t *)(puVar19 + 0x10));\n          ptVar2 = (tmp_reentrant_t *)*pmVar10;\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n          *pmVar10 = (mp_limb_t)ptVar8;\n          uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n          uVar3 = uVar6 + pmVar10[1];\n          pmVar10[1] = uVar3;\n          if (uVar3 < uVar6) {\n            pmVar1 = pmVar10 + 1;\n            do {\n              pmVar1 = pmVar1 + 1;\n              mVar7 = *pmVar1;\n              *pmVar1 = mVar7 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar14 = unaff_s2 + 3;\n      uVar6 = (unaff_s1 * 3 + 0x20 + iVar14) * 4;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      if (uVar6 < 0x7f01) {\n        iVar12 = -(uVar6 + 7 & 0xfffffff8);\n        puVar20 = auStack_60 + iVar12;\n        pmVar1 = (mp_ptr)((int)amStack_48 + iVar12);\n      }\n      else {\n        pmVar1 = (mp_ptr)(**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n      }\n      pmVar10 = (mp_ptr)(bn - unaff_s1);\n      pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n      pmVar16 = bp + (int)pmVar10;\n      *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n      pmVar9 = ap;\n      (*pcVar17)(rp,ap,pmVar16,unaff_s1);\n      pmVar13 = ap;\n      if ((int)unaff_s1 <= (int)pmVar10) {\n        uStack_34 = unaff_s1 * 4;\n        amStack_48[3] = unaff_s1 * -4;\n        do {\n          uVar6 = uStack_34;\n          pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n          *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n          pmVar10 = (mp_ptr)((int)pmVar10 - unaff_s1);\n          pmVar13 = (mp_srcptr)((int)pmVar13 + uVar6);\n          pmVar16 = (mp_srcptr)((int)pmVar16 + amStack_48[3]);\n          (*pcVar17)(pmVar1,pmVar13,pmVar16,unaff_s1);\n          pmVar9 = rp;\n          (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        } while ((int)unaff_s1 <= (int)pmVar10);\n      }\n      ap = pmVar9;\n      if (pmVar10 != (mp_ptr)0x0) {\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        __gmpn_mulmid(pmVar1,pmVar13 + unaff_s1,(int)pmVar10 + unaff_s2,pmVar16 + -(int)pmVar10,\n                      *(mp_size_t *)(puVar20 + 0x10));\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        ap = rp;\n      }\n    }" if (parenthesized_expression "((int)unaff_s1 < 0x14)" ( (binary_expression "(int)unaff_s1 < 0x14" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pcVar17 = *(code **)(in_t9 + 0x53e6c);\n      if (bn < 0xdc) goto LAB_0004382c;\n      iVar14 = unaff_s2 + 3;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      if ((uint)(iVar14 * 4) < 0x7f01) {\n        iVar15 = -(iVar14 * 4 + 7U & 0xfffffff8);\n        iVar12 = (int)amStack_48 + iVar15;\n        puVar20 = auStack_60 + iVar15;\n      }\n      else {\n        iVar12 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        puVar20 = auStack_60;\n      }\n      pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n      pmVar10 = (mp_ptr)(bn + -0xdc);\n      iVar15 = an - (int)pmVar10;\n      pmVar9 = bp + bn + -0xdc;\n      *(undefined4 *)(puVar20 + 0x10) = 0xdc;\n      pmVar16 = ap;\n      (*pcVar17)(rp,ap,iVar15,pmVar9);\n      pmVar13 = ap;\n      ap = pmVar16;\n      for (; 0xdb < (int)pmVar10; pmVar10 = pmVar10 + -0x37) {\n        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n        pmVar13 = pmVar13 + 0xdc;\n        pmVar9 = pmVar9 + -0xdc;\n        *(undefined4 *)(puVar20 + 0x10) = 0xdc;\n        (*pcVar17)(iVar12,pmVar13,iVar15,pmVar9);\n        ap = rp;\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);\n      }\n      if (pmVar10 != (mp_ptr)0x0) {\n        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        (*pcVar17)(iVar12,pmVar13 + 0xdc,(int)pmVar10 + unaff_s2,pmVar9 + -(int)pmVar10);\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);\n        ap = rp;\n      }\n    }" { (expression_statement "pcVar17 = *(code **)(in_t9 + 0x53e6c);" (assignment_expression "pcVar17 = *(code **)(in_t9 + 0x53e6c)" identifier = (pointer_expression "*(code **)(in_t9 + 0x53e6c)" * (cast_expression "(code **)(in_t9 + 0x53e6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x53e6c)" ( (binary_expression "in_t9 + 0x53e6c" identifier + number_literal) ))))) ;) (if_statement "if (bn < 0xdc) goto LAB_0004382c;" if (parenthesized_expression "(bn < 0xdc)" ( (binary_expression "bn < 0xdc" identifier < number_literal) )) (goto_statement "goto LAB_0004382c;" goto statement_identifier ;)) (expression_statement "iVar14 = unaff_s2 + 3;" (assignment_expression "iVar14 = unaff_s2 + 3" identifier = (binary_expression "unaff_s2 + 3" identifier + number_literal)) ;) (expression_statement "__tmp_marker = (tmp_reentrant_t *)0x0;" (assignment_expression "__tmp_marker = (tmp_reentrant_t *)0x0" identifier = (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((uint)(iVar14 * 4) < 0x7f01) {\n        iVar15 = -(iVar14 * 4 + 7U & 0xfffffff8);\n        iVar12 = (int)amStack_48 + iVar15;\n        puVar20 = auStack_60 + iVar15;\n      }\n      else {\n        iVar12 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        puVar20 = auStack_60;\n      }" if (parenthesized_expression "((uint)(iVar14 * 4) < 0x7f01)" ( (binary_expression "(uint)(iVar14 * 4) < 0x7f01" (call_expression "(uint)(iVar14 * 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 * 4)" ( (binary_expression "iVar14 * 4" identifier * number_literal) ))) < number_literal) )) (compound_statement "{\n        iVar15 = -(iVar14 * 4 + 7U & 0xfffffff8);\n        iVar12 = (int)amStack_48 + iVar15;\n        puVar20 = auStack_60 + iVar15;\n      }" { (expression_statement "iVar15 = -(iVar14 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar15 = -(iVar14 * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-(iVar14 * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "(iVar14 * 4 + 7U & 0xfffffff8)" ( (binary_expression "iVar14 * 4 + 7U & 0xfffffff8" (binary_expression "iVar14 * 4 + 7U" (binary_expression "iVar14 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "iVar12 = (int)amStack_48 + iVar15;" (assignment_expression "iVar12 = (int)amStack_48 + iVar15" identifier = (binary_expression "(int)amStack_48 + iVar15" (cast_expression "(int)amStack_48" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "puVar20 = auStack_60 + iVar15;" (assignment_expression "puVar20 = auStack_60 + iVar15" identifier = (binary_expression "auStack_60 + iVar15" identifier + identifier)) ;) }) (else_clause "else {\n        iVar12 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        puVar20 = auStack_60;\n      }" else (compound_statement "{\n        iVar12 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        puVar20 = auStack_60;\n      }" { (expression_statement "iVar12 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);" (assignment_expression "iVar12 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker)" identifier = (call_expression "(**(code **)(in_t9 + 0x53cb0))(&__tmp_marker)" (parenthesized_expression "(**(code **)(in_t9 + 0x53cb0))" ( (pointer_expression "**(code **)(in_t9 + 0x53cb0)" * (pointer_expression "*(code **)(in_t9 + 0x53cb0)" * (cast_expression "(code **)(in_t9 + 0x53cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x53cb0)" ( (binary_expression "in_t9 + 0x53cb0" identifier + number_literal) ))))) )) (argument_list "(&__tmp_marker)" ( (pointer_expression "&__tmp_marker" & identifier) )))) ;) (expression_statement "puVar20 = auStack_60;" (assignment_expression "puVar20 = auStack_60" identifier = identifier) ;) }))) (expression_statement "pcVar17 = *(code **)(amStack_48[0] - 0x7b94);" (assignment_expression "pcVar17 = *(code **)(amStack_48[0] - 0x7b94)" identifier = (pointer_expression "*(code **)(amStack_48[0] - 0x7b94)" * (cast_expression "(code **)(amStack_48[0] - 0x7b94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(amStack_48[0] - 0x7b94)" ( (binary_expression "amStack_48[0] - 0x7b94" (subscript_expression "amStack_48[0]" identifier [ number_literal ]) - number_literal) ))))) ;) (expression_statement "pmVar10 = (mp_ptr)(bn + -0xdc);" (assignment_expression "pmVar10 = (mp_ptr)(bn + -0xdc)" identifier = (call_expression "(mp_ptr)(bn + -0xdc)" (parenthesized_expression "(mp_ptr)" ( identifier )) (argument_list "(bn + -0xdc)" ( (binary_expression "bn + -0xdc" identifier + number_literal) )))) ;) (expression_statement "iVar15 = an - (int)pmVar10;" (assignment_expression "iVar15 = an - (int)pmVar10" identifier = (binary_expression "an - (int)pmVar10" identifier - (cast_expression "(int)pmVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pmVar9 = bp + bn + -0xdc;" (assignment_expression "pmVar9 = bp + bn + -0xdc" identifier = (binary_expression "bp + bn + -0xdc" (binary_expression "bp + bn" identifier + identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + 0x10) = 0xdc;" (assignment_expression "*(undefined4 *)(puVar20 + 0x10) = 0xdc" (pointer_expression "*(undefined4 *)(puVar20 + 0x10)" * (cast_expression "(undefined4 *)(puVar20 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x10)" ( (binary_expression "puVar20 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pmVar16 = ap;" (assignment_expression "pmVar16 = ap" identifier = identifier) ;) (expression_statement "(*pcVar17)(rp,ap,iVar15,pmVar9);" (call_expression "(*pcVar17)(rp,ap,iVar15,pmVar9)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(rp,ap,iVar15,pmVar9)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pmVar13 = ap;" (assignment_expression "pmVar13 = ap" identifier = identifier) ;) (expression_statement "ap = pmVar16;" (assignment_expression "ap = pmVar16" identifier = identifier) ;) (for_statement "for (; 0xdb < (int)pmVar10; pmVar10 = pmVar10 + -0x37) {\n        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n        pmVar13 = pmVar13 + 0xdc;\n        pmVar9 = pmVar9 + -0xdc;\n        *(undefined4 *)(puVar20 + 0x10) = 0xdc;\n        (*pcVar17)(iVar12,pmVar13,iVar15,pmVar9);\n        ap = rp;\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);\n      }" for ( ; (binary_expression "0xdb < (int)pmVar10" number_literal < (cast_expression "(int)pmVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "pmVar10 = pmVar10 + -0x37" identifier = (binary_expression "pmVar10 + -0x37" identifier + number_literal)) ) (compound_statement "{\n        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n        pmVar13 = pmVar13 + 0xdc;\n        pmVar9 = pmVar9 + -0xdc;\n        *(undefined4 *)(puVar20 + 0x10) = 0xdc;\n        (*pcVar17)(iVar12,pmVar13,iVar15,pmVar9);\n        ap = rp;\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);\n      }" { (expression_statement "pcVar17 = *(code **)(amStack_48[0] - 0x7b94);" (assignment_expression "pcVar17 = *(code **)(amStack_48[0] - 0x7b94)" identifier = (pointer_expression "*(code **)(amStack_48[0] - 0x7b94)" * (cast_expression "(code **)(amStack_48[0] - 0x7b94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(amStack_48[0] - 0x7b94)" ( (binary_expression "amStack_48[0] - 0x7b94" (subscript_expression "amStack_48[0]" identifier [ number_literal ]) - number_literal) ))))) ;) (expression_statement "pmVar13 = pmVar13 + 0xdc;" (assignment_expression "pmVar13 = pmVar13 + 0xdc" identifier = (binary_expression "pmVar13 + 0xdc" identifier + number_literal)) ;) (expression_statement "pmVar9 = pmVar9 + -0xdc;" (assignment_expression "pmVar9 = pmVar9 + -0xdc" identifier = (binary_expression "pmVar9 + -0xdc" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + 0x10) = 0xdc;" (assignment_expression "*(undefined4 *)(puVar20 + 0x10) = 0xdc" (pointer_expression "*(undefined4 *)(puVar20 + 0x10)" * (cast_expression "(undefined4 *)(puVar20 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x10)" ( (binary_expression "puVar20 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar17)(iVar12,pmVar13,iVar15,pmVar9);" (call_expression "(*pcVar17)(iVar12,pmVar13,iVar15,pmVar9)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(iVar12,pmVar13,iVar15,pmVar9)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "ap = rp;" (assignment_expression "ap = rp" identifier = identifier) ;) (expression_statement "(**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);" (call_expression "(**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14)" (parenthesized_expression "(**(code **)(amStack_48[0] - 0x7d0c))" ( (pointer_expression "**(code **)(amStack_48[0] - 0x7d0c)" * (pointer_expression "*(code **)(amStack_48[0] - 0x7d0c)" * (cast_expression "(code **)(amStack_48[0] - 0x7d0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(amStack_48[0] - 0x7d0c)" ( (binary_expression "amStack_48[0] - 0x7d0c" (subscript_expression "amStack_48[0]" identifier [ number_literal ]) - number_literal) ))))) )) (argument_list "(rp,rp,iVar12,iVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if (pmVar10 != (mp_ptr)0x0) {\n        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        (*pcVar17)(iVar12,pmVar13 + 0xdc,(int)pmVar10 + unaff_s2,pmVar9 + -(int)pmVar10);\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);\n        ap = rp;\n      }" if (parenthesized_expression "(pmVar10 != (mp_ptr)0x0)" ( (binary_expression "pmVar10 != (mp_ptr)0x0" identifier != (cast_expression "(mp_ptr)0x0" ( (type_descriptor "mp_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\n        pcVar17 = *(code **)(amStack_48[0] - 0x7b94);\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        (*pcVar17)(iVar12,pmVar13 + 0xdc,(int)pmVar10 + unaff_s2,pmVar9 + -(int)pmVar10);\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);\n        ap = rp;\n      }" { (expression_statement "pcVar17 = *(code **)(amStack_48[0] - 0x7b94);" (assignment_expression "pcVar17 = *(code **)(amStack_48[0] - 0x7b94)" identifier = (pointer_expression "*(code **)(amStack_48[0] - 0x7b94)" * (cast_expression "(code **)(amStack_48[0] - 0x7b94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(amStack_48[0] - 0x7b94)" ( (binary_expression "amStack_48[0] - 0x7b94" (subscript_expression "amStack_48[0]" identifier [ number_literal ]) - number_literal) ))))) ;) (expression_statement "*(mp_ptr *)(puVar20 + 0x10) = pmVar10;" (assignment_expression "*(mp_ptr *)(puVar20 + 0x10) = pmVar10" (pointer_expression "*(mp_ptr *)(puVar20 + 0x10)" * (cast_expression "(mp_ptr *)(puVar20 + 0x10)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x10)" ( (binary_expression "puVar20 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar17)(iVar12,pmVar13 + 0xdc,(int)pmVar10 + unaff_s2,pmVar9 + -(int)pmVar10);" (call_expression "(*pcVar17)(iVar12,pmVar13 + 0xdc,(int)pmVar10 + unaff_s2,pmVar9 + -(int)pmVar10)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(iVar12,pmVar13 + 0xdc,(int)pmVar10 + unaff_s2,pmVar9 + -(int)pmVar10)" ( identifier , (binary_expression "pmVar13 + 0xdc" identifier + number_literal) , (binary_expression "(int)pmVar10 + unaff_s2" (cast_expression "(int)pmVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , (binary_expression "pmVar9 + -(int)pmVar10" identifier + (unary_expression "-(int)pmVar10" - (cast_expression "(int)pmVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ))) ;) (expression_statement "(**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14);" (call_expression "(**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,iVar12,iVar14)" (parenthesized_expression "(**(code **)(amStack_48[0] - 0x7d0c))" ( (pointer_expression "**(code **)(amStack_48[0] - 0x7d0c)" * (pointer_expression "*(code **)(amStack_48[0] - 0x7d0c)" * (cast_expression "(code **)(amStack_48[0] - 0x7d0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(amStack_48[0] - 0x7d0c)" ( (binary_expression "amStack_48[0] - 0x7d0c" (subscript_expression "amStack_48[0]" identifier [ number_literal ]) - number_literal) ))))) )) (argument_list "(rp,rp,iVar12,iVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "ap = rp;" (assignment_expression "ap = rp" identifier = identifier) ;) })) }) (else_clause "else {\n      if (bn <= (int)unaff_s1) {\n        uVar6 = (bn * 3 + 0x20) * 4;\n        __tmp_marker = (tmp_reentrant_t *)0x0;\n        if (uVar6 < 0x7f01) {\n          iVar14 = -(uVar6 + 7 & 0xfffffff8);\n          puVar19 = auStack_60 + iVar14;\n          uStack_34 = (int)amStack_48 + iVar14;\n        }\n        else {\n          uStack_34 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        }\n        unaff_s1 = unaff_s1 - bn;\n        pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n        *(uint *)(puVar19 + 0x10) = uStack_34;\n        pmVar13 = ap;\n        (*pcVar17)(rp,ap,bp,bn);\n        pmVar9 = ap;\n        ap = pmVar13;\n        for (; bn <= (int)unaff_s1; unaff_s1 = unaff_s1 - bn) {\n          while( true ) {\n            rp = rp + bn;\n            pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n            pmVar9 = pmVar9 + bn;\n            *(uint *)(puVar19 + 0x10) = uStack_34;\n            uVar6 = *rp;\n            unaff_s2 = rp[1];\n            (*pcVar17)(rp,pmVar9,bp,bn);\n            pmVar1 = (mp_ptr)*rp;\n            ap = (mp_srcptr)(uVar6 + (int)pmVar1);\n            *rp = (mp_limb_t)ap;\n            uVar6 = (ap < pmVar1) + unaff_s2;\n            uVar3 = uVar6 + rp[1];\n            rp[1] = uVar3;\n            if (uVar6 <= uVar3) break;\n            puVar4 = rp + 1;\n            do {\n              puVar4 = puVar4 + 1;\n              uVar6 = *puVar4;\n              *puVar4 = uVar6 + 1;\n            } while (uVar6 + 1 == 0);\n            unaff_s1 = unaff_s1 - bn;\n            if ((int)unaff_s1 < bn) goto LAB_00043988;\n          }\n        }\nLAB_00043988:\n        ptVar8 = __tmp_marker;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          (**(code **)(amStack_48[0] - 0x7a2c))();\n        }\n        if (unaff_s1 != 0) {\n          iVar14 = bn + unaff_s1;\n          *(mp_size_t *)(puVar19 + 0x10) = bn;\n          pmVar10 = rp + bn;\n          ap = pmVar9 + bn;\n          unaff_s1 = *pmVar10;\n          unaff_s2 = pmVar10[1];\n          __gmpn_mulmid(pmVar10,ap,iVar14 + -1,bp,*(mp_size_t *)(puVar19 + 0x10));\n          ptVar2 = (tmp_reentrant_t *)*pmVar10;\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n          *pmVar10 = (mp_limb_t)ptVar8;\n          uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n          uVar3 = uVar6 + pmVar10[1];\n          pmVar10[1] = uVar3;\n          if (uVar3 < uVar6) {\n            pmVar1 = pmVar10 + 1;\n            do {\n              pmVar1 = pmVar1 + 1;\n              mVar7 = *pmVar1;\n              *pmVar1 = mVar7 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar14 = unaff_s2 + 3;\n      uVar6 = (unaff_s1 * 3 + 0x20 + iVar14) * 4;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      if (uVar6 < 0x7f01) {\n        iVar12 = -(uVar6 + 7 & 0xfffffff8);\n        puVar20 = auStack_60 + iVar12;\n        pmVar1 = (mp_ptr)((int)amStack_48 + iVar12);\n      }\n      else {\n        pmVar1 = (mp_ptr)(**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n      }\n      pmVar10 = (mp_ptr)(bn - unaff_s1);\n      pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n      pmVar16 = bp + (int)pmVar10;\n      *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n      pmVar9 = ap;\n      (*pcVar17)(rp,ap,pmVar16,unaff_s1);\n      pmVar13 = ap;\n      if ((int)unaff_s1 <= (int)pmVar10) {\n        uStack_34 = unaff_s1 * 4;\n        amStack_48[3] = unaff_s1 * -4;\n        do {\n          uVar6 = uStack_34;\n          pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n          *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n          pmVar10 = (mp_ptr)((int)pmVar10 - unaff_s1);\n          pmVar13 = (mp_srcptr)((int)pmVar13 + uVar6);\n          pmVar16 = (mp_srcptr)((int)pmVar16 + amStack_48[3]);\n          (*pcVar17)(pmVar1,pmVar13,pmVar16,unaff_s1);\n          pmVar9 = rp;\n          (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        } while ((int)unaff_s1 <= (int)pmVar10);\n      }\n      ap = pmVar9;\n      if (pmVar10 != (mp_ptr)0x0) {\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        __gmpn_mulmid(pmVar1,pmVar13 + unaff_s1,(int)pmVar10 + unaff_s2,pmVar16 + -(int)pmVar10,\n                      *(mp_size_t *)(puVar20 + 0x10));\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        ap = rp;\n      }\n    }" else (compound_statement "{\n      if (bn <= (int)unaff_s1) {\n        uVar6 = (bn * 3 + 0x20) * 4;\n        __tmp_marker = (tmp_reentrant_t *)0x0;\n        if (uVar6 < 0x7f01) {\n          iVar14 = -(uVar6 + 7 & 0xfffffff8);\n          puVar19 = auStack_60 + iVar14;\n          uStack_34 = (int)amStack_48 + iVar14;\n        }\n        else {\n          uStack_34 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        }\n        unaff_s1 = unaff_s1 - bn;\n        pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n        *(uint *)(puVar19 + 0x10) = uStack_34;\n        pmVar13 = ap;\n        (*pcVar17)(rp,ap,bp,bn);\n        pmVar9 = ap;\n        ap = pmVar13;\n        for (; bn <= (int)unaff_s1; unaff_s1 = unaff_s1 - bn) {\n          while( true ) {\n            rp = rp + bn;\n            pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n            pmVar9 = pmVar9 + bn;\n            *(uint *)(puVar19 + 0x10) = uStack_34;\n            uVar6 = *rp;\n            unaff_s2 = rp[1];\n            (*pcVar17)(rp,pmVar9,bp,bn);\n            pmVar1 = (mp_ptr)*rp;\n            ap = (mp_srcptr)(uVar6 + (int)pmVar1);\n            *rp = (mp_limb_t)ap;\n            uVar6 = (ap < pmVar1) + unaff_s2;\n            uVar3 = uVar6 + rp[1];\n            rp[1] = uVar3;\n            if (uVar6 <= uVar3) break;\n            puVar4 = rp + 1;\n            do {\n              puVar4 = puVar4 + 1;\n              uVar6 = *puVar4;\n              *puVar4 = uVar6 + 1;\n            } while (uVar6 + 1 == 0);\n            unaff_s1 = unaff_s1 - bn;\n            if ((int)unaff_s1 < bn) goto LAB_00043988;\n          }\n        }\nLAB_00043988:\n        ptVar8 = __tmp_marker;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          (**(code **)(amStack_48[0] - 0x7a2c))();\n        }\n        if (unaff_s1 != 0) {\n          iVar14 = bn + unaff_s1;\n          *(mp_size_t *)(puVar19 + 0x10) = bn;\n          pmVar10 = rp + bn;\n          ap = pmVar9 + bn;\n          unaff_s1 = *pmVar10;\n          unaff_s2 = pmVar10[1];\n          __gmpn_mulmid(pmVar10,ap,iVar14 + -1,bp,*(mp_size_t *)(puVar19 + 0x10));\n          ptVar2 = (tmp_reentrant_t *)*pmVar10;\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n          *pmVar10 = (mp_limb_t)ptVar8;\n          uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n          uVar3 = uVar6 + pmVar10[1];\n          pmVar10[1] = uVar3;\n          if (uVar3 < uVar6) {\n            pmVar1 = pmVar10 + 1;\n            do {\n              pmVar1 = pmVar1 + 1;\n              mVar7 = *pmVar1;\n              *pmVar1 = mVar7 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar14 = unaff_s2 + 3;\n      uVar6 = (unaff_s1 * 3 + 0x20 + iVar14) * 4;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      if (uVar6 < 0x7f01) {\n        iVar12 = -(uVar6 + 7 & 0xfffffff8);\n        puVar20 = auStack_60 + iVar12;\n        pmVar1 = (mp_ptr)((int)amStack_48 + iVar12);\n      }\n      else {\n        pmVar1 = (mp_ptr)(**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n      }\n      pmVar10 = (mp_ptr)(bn - unaff_s1);\n      pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n      pmVar16 = bp + (int)pmVar10;\n      *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n      pmVar9 = ap;\n      (*pcVar17)(rp,ap,pmVar16,unaff_s1);\n      pmVar13 = ap;\n      if ((int)unaff_s1 <= (int)pmVar10) {\n        uStack_34 = unaff_s1 * 4;\n        amStack_48[3] = unaff_s1 * -4;\n        do {\n          uVar6 = uStack_34;\n          pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n          *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n          pmVar10 = (mp_ptr)((int)pmVar10 - unaff_s1);\n          pmVar13 = (mp_srcptr)((int)pmVar13 + uVar6);\n          pmVar16 = (mp_srcptr)((int)pmVar16 + amStack_48[3]);\n          (*pcVar17)(pmVar1,pmVar13,pmVar16,unaff_s1);\n          pmVar9 = rp;\n          (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        } while ((int)unaff_s1 <= (int)pmVar10);\n      }\n      ap = pmVar9;\n      if (pmVar10 != (mp_ptr)0x0) {\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        __gmpn_mulmid(pmVar1,pmVar13 + unaff_s1,(int)pmVar10 + unaff_s2,pmVar16 + -(int)pmVar10,\n                      *(mp_size_t *)(puVar20 + 0x10));\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        ap = rp;\n      }\n    }" { (if_statement "if (bn <= (int)unaff_s1) {\n        uVar6 = (bn * 3 + 0x20) * 4;\n        __tmp_marker = (tmp_reentrant_t *)0x0;\n        if (uVar6 < 0x7f01) {\n          iVar14 = -(uVar6 + 7 & 0xfffffff8);\n          puVar19 = auStack_60 + iVar14;\n          uStack_34 = (int)amStack_48 + iVar14;\n        }\n        else {\n          uStack_34 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        }\n        unaff_s1 = unaff_s1 - bn;\n        pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n        *(uint *)(puVar19 + 0x10) = uStack_34;\n        pmVar13 = ap;\n        (*pcVar17)(rp,ap,bp,bn);\n        pmVar9 = ap;\n        ap = pmVar13;\n        for (; bn <= (int)unaff_s1; unaff_s1 = unaff_s1 - bn) {\n          while( true ) {\n            rp = rp + bn;\n            pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n            pmVar9 = pmVar9 + bn;\n            *(uint *)(puVar19 + 0x10) = uStack_34;\n            uVar6 = *rp;\n            unaff_s2 = rp[1];\n            (*pcVar17)(rp,pmVar9,bp,bn);\n            pmVar1 = (mp_ptr)*rp;\n            ap = (mp_srcptr)(uVar6 + (int)pmVar1);\n            *rp = (mp_limb_t)ap;\n            uVar6 = (ap < pmVar1) + unaff_s2;\n            uVar3 = uVar6 + rp[1];\n            rp[1] = uVar3;\n            if (uVar6 <= uVar3) break;\n            puVar4 = rp + 1;\n            do {\n              puVar4 = puVar4 + 1;\n              uVar6 = *puVar4;\n              *puVar4 = uVar6 + 1;\n            } while (uVar6 + 1 == 0);\n            unaff_s1 = unaff_s1 - bn;\n            if ((int)unaff_s1 < bn) goto LAB_00043988;\n          }\n        }\nLAB_00043988:\n        ptVar8 = __tmp_marker;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          (**(code **)(amStack_48[0] - 0x7a2c))();\n        }\n        if (unaff_s1 != 0) {\n          iVar14 = bn + unaff_s1;\n          *(mp_size_t *)(puVar19 + 0x10) = bn;\n          pmVar10 = rp + bn;\n          ap = pmVar9 + bn;\n          unaff_s1 = *pmVar10;\n          unaff_s2 = pmVar10[1];\n          __gmpn_mulmid(pmVar10,ap,iVar14 + -1,bp,*(mp_size_t *)(puVar19 + 0x10));\n          ptVar2 = (tmp_reentrant_t *)*pmVar10;\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n          *pmVar10 = (mp_limb_t)ptVar8;\n          uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n          uVar3 = uVar6 + pmVar10[1];\n          pmVar10[1] = uVar3;\n          if (uVar3 < uVar6) {\n            pmVar1 = pmVar10 + 1;\n            do {\n              pmVar1 = pmVar1 + 1;\n              mVar7 = *pmVar1;\n              *pmVar1 = mVar7 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }" if (parenthesized_expression "(bn <= (int)unaff_s1)" ( (binary_expression "bn <= (int)unaff_s1" identifier <= (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar6 = (bn * 3 + 0x20) * 4;\n        __tmp_marker = (tmp_reentrant_t *)0x0;\n        if (uVar6 < 0x7f01) {\n          iVar14 = -(uVar6 + 7 & 0xfffffff8);\n          puVar19 = auStack_60 + iVar14;\n          uStack_34 = (int)amStack_48 + iVar14;\n        }\n        else {\n          uStack_34 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        }\n        unaff_s1 = unaff_s1 - bn;\n        pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n        *(uint *)(puVar19 + 0x10) = uStack_34;\n        pmVar13 = ap;\n        (*pcVar17)(rp,ap,bp,bn);\n        pmVar9 = ap;\n        ap = pmVar13;\n        for (; bn <= (int)unaff_s1; unaff_s1 = unaff_s1 - bn) {\n          while( true ) {\n            rp = rp + bn;\n            pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n            pmVar9 = pmVar9 + bn;\n            *(uint *)(puVar19 + 0x10) = uStack_34;\n            uVar6 = *rp;\n            unaff_s2 = rp[1];\n            (*pcVar17)(rp,pmVar9,bp,bn);\n            pmVar1 = (mp_ptr)*rp;\n            ap = (mp_srcptr)(uVar6 + (int)pmVar1);\n            *rp = (mp_limb_t)ap;\n            uVar6 = (ap < pmVar1) + unaff_s2;\n            uVar3 = uVar6 + rp[1];\n            rp[1] = uVar3;\n            if (uVar6 <= uVar3) break;\n            puVar4 = rp + 1;\n            do {\n              puVar4 = puVar4 + 1;\n              uVar6 = *puVar4;\n              *puVar4 = uVar6 + 1;\n            } while (uVar6 + 1 == 0);\n            unaff_s1 = unaff_s1 - bn;\n            if ((int)unaff_s1 < bn) goto LAB_00043988;\n          }\n        }\nLAB_00043988:\n        ptVar8 = __tmp_marker;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          (**(code **)(amStack_48[0] - 0x7a2c))();\n        }\n        if (unaff_s1 != 0) {\n          iVar14 = bn + unaff_s1;\n          *(mp_size_t *)(puVar19 + 0x10) = bn;\n          pmVar10 = rp + bn;\n          ap = pmVar9 + bn;\n          unaff_s1 = *pmVar10;\n          unaff_s2 = pmVar10[1];\n          __gmpn_mulmid(pmVar10,ap,iVar14 + -1,bp,*(mp_size_t *)(puVar19 + 0x10));\n          ptVar2 = (tmp_reentrant_t *)*pmVar10;\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n          *pmVar10 = (mp_limb_t)ptVar8;\n          uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n          uVar3 = uVar6 + pmVar10[1];\n          pmVar10[1] = uVar3;\n          if (uVar3 < uVar6) {\n            pmVar1 = pmVar10 + 1;\n            do {\n              pmVar1 = pmVar1 + 1;\n              mVar7 = *pmVar1;\n              *pmVar1 = mVar7 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }" { (expression_statement "uVar6 = (bn * 3 + 0x20) * 4;" (assignment_expression "uVar6 = (bn * 3 + 0x20) * 4" identifier = (binary_expression "(bn * 3 + 0x20) * 4" (parenthesized_expression "(bn * 3 + 0x20)" ( (binary_expression "bn * 3 + 0x20" (binary_expression "bn * 3" identifier * number_literal) + number_literal) )) * number_literal)) ;) (expression_statement "__tmp_marker = (tmp_reentrant_t *)0x0;" (assignment_expression "__tmp_marker = (tmp_reentrant_t *)0x0" identifier = (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar6 < 0x7f01) {\n          iVar14 = -(uVar6 + 7 & 0xfffffff8);\n          puVar19 = auStack_60 + iVar14;\n          uStack_34 = (int)amStack_48 + iVar14;\n        }\n        else {\n          uStack_34 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        }" if (parenthesized_expression "(uVar6 < 0x7f01)" ( (binary_expression "uVar6 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n          iVar14 = -(uVar6 + 7 & 0xfffffff8);\n          puVar19 = auStack_60 + iVar14;\n          uStack_34 = (int)amStack_48 + iVar14;\n        }" { (expression_statement "iVar14 = -(uVar6 + 7 & 0xfffffff8);" (assignment_expression "iVar14 = -(uVar6 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar6 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar6 + 7 & 0xfffffff8)" ( (binary_expression "uVar6 + 7 & 0xfffffff8" (binary_expression "uVar6 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar19 = auStack_60 + iVar14;" (assignment_expression "puVar19 = auStack_60 + iVar14" identifier = (binary_expression "auStack_60 + iVar14" identifier + identifier)) ;) (expression_statement "uStack_34 = (int)amStack_48 + iVar14;" (assignment_expression "uStack_34 = (int)amStack_48 + iVar14" identifier = (binary_expression "(int)amStack_48 + iVar14" (cast_expression "(int)amStack_48" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) }) (else_clause "else {\n          uStack_34 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        }" else (compound_statement "{\n          uStack_34 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n        }" { (expression_statement "uStack_34 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);" (assignment_expression "uStack_34 = (**(code **)(in_t9 + 0x53cb0))(&__tmp_marker)" identifier = (call_expression "(**(code **)(in_t9 + 0x53cb0))(&__tmp_marker)" (parenthesized_expression "(**(code **)(in_t9 + 0x53cb0))" ( (pointer_expression "**(code **)(in_t9 + 0x53cb0)" * (pointer_expression "*(code **)(in_t9 + 0x53cb0)" * (cast_expression "(code **)(in_t9 + 0x53cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x53cb0)" ( (binary_expression "in_t9 + 0x53cb0" identifier + number_literal) ))))) )) (argument_list "(&__tmp_marker)" ( (pointer_expression "&__tmp_marker" & identifier) )))) ;) }))) (expression_statement "unaff_s1 = unaff_s1 - bn;" (assignment_expression "unaff_s1 = unaff_s1 - bn" identifier = (binary_expression "unaff_s1 - bn" identifier - identifier)) ;) (expression_statement "pcVar17 = *(code **)(amStack_48[0] - 0x7c50);" (assignment_expression "pcVar17 = *(code **)(amStack_48[0] - 0x7c50)" identifier = (pointer_expression "*(code **)(amStack_48[0] - 0x7c50)" * (cast_expression "(code **)(amStack_48[0] - 0x7c50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(amStack_48[0] - 0x7c50)" ( (binary_expression "amStack_48[0] - 0x7c50" (subscript_expression "amStack_48[0]" identifier [ number_literal ]) - number_literal) ))))) ;) (expression_statement "*(uint *)(puVar19 + 0x10) = uStack_34;" (assignment_expression "*(uint *)(puVar19 + 0x10) = uStack_34" (pointer_expression "*(uint *)(puVar19 + 0x10)" * (cast_expression "(uint *)(puVar19 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x10)" ( (binary_expression "puVar19 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pmVar13 = ap;" (assignment_expression "pmVar13 = ap" identifier = identifier) ;) (expression_statement "(*pcVar17)(rp,ap,bp,bn);" (call_expression "(*pcVar17)(rp,ap,bp,bn)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(rp,ap,bp,bn)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pmVar9 = ap;" (assignment_expression "pmVar9 = ap" identifier = identifier) ;) (expression_statement "ap = pmVar13;" (assignment_expression "ap = pmVar13" identifier = identifier) ;) (for_statement "for (; bn <= (int)unaff_s1; unaff_s1 = unaff_s1 - bn) {\n          while( true ) {\n            rp = rp + bn;\n            pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n            pmVar9 = pmVar9 + bn;\n            *(uint *)(puVar19 + 0x10) = uStack_34;\n            uVar6 = *rp;\n            unaff_s2 = rp[1];\n            (*pcVar17)(rp,pmVar9,bp,bn);\n            pmVar1 = (mp_ptr)*rp;\n            ap = (mp_srcptr)(uVar6 + (int)pmVar1);\n            *rp = (mp_limb_t)ap;\n            uVar6 = (ap < pmVar1) + unaff_s2;\n            uVar3 = uVar6 + rp[1];\n            rp[1] = uVar3;\n            if (uVar6 <= uVar3) break;\n            puVar4 = rp + 1;\n            do {\n              puVar4 = puVar4 + 1;\n              uVar6 = *puVar4;\n              *puVar4 = uVar6 + 1;\n            } while (uVar6 + 1 == 0);\n            unaff_s1 = unaff_s1 - bn;\n            if ((int)unaff_s1 < bn) goto LAB_00043988;\n          }\n        }" for ( ; (binary_expression "bn <= (int)unaff_s1" identifier <= (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "unaff_s1 = unaff_s1 - bn" identifier = (binary_expression "unaff_s1 - bn" identifier - identifier)) ) (compound_statement "{\n          while( true ) {\n            rp = rp + bn;\n            pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n            pmVar9 = pmVar9 + bn;\n            *(uint *)(puVar19 + 0x10) = uStack_34;\n            uVar6 = *rp;\n            unaff_s2 = rp[1];\n            (*pcVar17)(rp,pmVar9,bp,bn);\n            pmVar1 = (mp_ptr)*rp;\n            ap = (mp_srcptr)(uVar6 + (int)pmVar1);\n            *rp = (mp_limb_t)ap;\n            uVar6 = (ap < pmVar1) + unaff_s2;\n            uVar3 = uVar6 + rp[1];\n            rp[1] = uVar3;\n            if (uVar6 <= uVar3) break;\n            puVar4 = rp + 1;\n            do {\n              puVar4 = puVar4 + 1;\n              uVar6 = *puVar4;\n              *puVar4 = uVar6 + 1;\n            } while (uVar6 + 1 == 0);\n            unaff_s1 = unaff_s1 - bn;\n            if ((int)unaff_s1 < bn) goto LAB_00043988;\n          }\n        }" { (while_statement "while( true ) {\n            rp = rp + bn;\n            pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n            pmVar9 = pmVar9 + bn;\n            *(uint *)(puVar19 + 0x10) = uStack_34;\n            uVar6 = *rp;\n            unaff_s2 = rp[1];\n            (*pcVar17)(rp,pmVar9,bp,bn);\n            pmVar1 = (mp_ptr)*rp;\n            ap = (mp_srcptr)(uVar6 + (int)pmVar1);\n            *rp = (mp_limb_t)ap;\n            uVar6 = (ap < pmVar1) + unaff_s2;\n            uVar3 = uVar6 + rp[1];\n            rp[1] = uVar3;\n            if (uVar6 <= uVar3) break;\n            puVar4 = rp + 1;\n            do {\n              puVar4 = puVar4 + 1;\n              uVar6 = *puVar4;\n              *puVar4 = uVar6 + 1;\n            } while (uVar6 + 1 == 0);\n            unaff_s1 = unaff_s1 - bn;\n            if ((int)unaff_s1 < bn) goto LAB_00043988;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            rp = rp + bn;\n            pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n            pmVar9 = pmVar9 + bn;\n            *(uint *)(puVar19 + 0x10) = uStack_34;\n            uVar6 = *rp;\n            unaff_s2 = rp[1];\n            (*pcVar17)(rp,pmVar9,bp,bn);\n            pmVar1 = (mp_ptr)*rp;\n            ap = (mp_srcptr)(uVar6 + (int)pmVar1);\n            *rp = (mp_limb_t)ap;\n            uVar6 = (ap < pmVar1) + unaff_s2;\n            uVar3 = uVar6 + rp[1];\n            rp[1] = uVar3;\n            if (uVar6 <= uVar3) break;\n            puVar4 = rp + 1;\n            do {\n              puVar4 = puVar4 + 1;\n              uVar6 = *puVar4;\n              *puVar4 = uVar6 + 1;\n            } while (uVar6 + 1 == 0);\n            unaff_s1 = unaff_s1 - bn;\n            if ((int)unaff_s1 < bn) goto LAB_00043988;\n          }" { (expression_statement "rp = rp + bn;" (assignment_expression "rp = rp + bn" identifier = (binary_expression "rp + bn" identifier + identifier)) ;) (expression_statement "pcVar17 = *(code **)(amStack_48[0] - 0x7c50);" (assignment_expression "pcVar17 = *(code **)(amStack_48[0] - 0x7c50)" identifier = (pointer_expression "*(code **)(amStack_48[0] - 0x7c50)" * (cast_expression "(code **)(amStack_48[0] - 0x7c50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(amStack_48[0] - 0x7c50)" ( (binary_expression "amStack_48[0] - 0x7c50" (subscript_expression "amStack_48[0]" identifier [ number_literal ]) - number_literal) ))))) ;) (expression_statement "pmVar9 = pmVar9 + bn;" (assignment_expression "pmVar9 = pmVar9 + bn" identifier = (binary_expression "pmVar9 + bn" identifier + identifier)) ;) (expression_statement "*(uint *)(puVar19 + 0x10) = uStack_34;" (assignment_expression "*(uint *)(puVar19 + 0x10) = uStack_34" (pointer_expression "*(uint *)(puVar19 + 0x10)" * (cast_expression "(uint *)(puVar19 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x10)" ( (binary_expression "puVar19 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar6 = *rp;" (assignment_expression "uVar6 = *rp" identifier = (pointer_expression "*rp" * identifier)) ;) (expression_statement "unaff_s2 = rp[1];" (assignment_expression "unaff_s2 = rp[1]" identifier = (subscript_expression "rp[1]" identifier [ number_literal ])) ;) (expression_statement "(*pcVar17)(rp,pmVar9,bp,bn);" (call_expression "(*pcVar17)(rp,pmVar9,bp,bn)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(rp,pmVar9,bp,bn)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pmVar1 = (mp_ptr)*rp;" (assignment_expression "pmVar1 = (mp_ptr)*rp" identifier = (binary_expression "(mp_ptr)*rp" (parenthesized_expression "(mp_ptr)" ( identifier )) * identifier)) ;) (expression_statement "ap = (mp_srcptr)(uVar6 + (int)pmVar1);" (assignment_expression "ap = (mp_srcptr)(uVar6 + (int)pmVar1)" identifier = (call_expression "(mp_srcptr)(uVar6 + (int)pmVar1)" (parenthesized_expression "(mp_srcptr)" ( identifier )) (argument_list "(uVar6 + (int)pmVar1)" ( (binary_expression "uVar6 + (int)pmVar1" identifier + (cast_expression "(int)pmVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*rp = (mp_limb_t)ap;" (assignment_expression "*rp = (mp_limb_t)ap" (pointer_expression "*rp" * identifier) = (cast_expression "(mp_limb_t)ap" ( (type_descriptor "mp_limb_t" type_identifier) ) identifier)) ;) (expression_statement "uVar6 = (ap < pmVar1) + unaff_s2;" (assignment_expression "uVar6 = (ap < pmVar1) + unaff_s2" identifier = (binary_expression "(ap < pmVar1) + unaff_s2" (parenthesized_expression "(ap < pmVar1)" ( (binary_expression "ap < pmVar1" identifier < identifier) )) + identifier)) ;) (expression_statement "uVar3 = uVar6 + rp[1];" (assignment_expression "uVar3 = uVar6 + rp[1]" identifier = (binary_expression "uVar6 + rp[1]" identifier + (subscript_expression "rp[1]" identifier [ number_literal ]))) ;) (expression_statement "rp[1] = uVar3;" (assignment_expression "rp[1] = uVar3" (subscript_expression "rp[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar6 <= uVar3) break;" if (parenthesized_expression "(uVar6 <= uVar3)" ( (binary_expression "uVar6 <= uVar3" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "puVar4 = rp + 1;" (assignment_expression "puVar4 = rp + 1" identifier = (binary_expression "rp + 1" identifier + number_literal)) ;) (do_statement "do {\n              puVar4 = puVar4 + 1;\n              uVar6 = *puVar4;\n              *puVar4 = uVar6 + 1;\n            } while (uVar6 + 1 == 0);" do (compound_statement "{\n              puVar4 = puVar4 + 1;\n              uVar6 = *puVar4;\n              *puVar4 = uVar6 + 1;\n            }" { (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar6 = *puVar4;" (assignment_expression "uVar6 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*puVar4 = uVar6 + 1;" (assignment_expression "*puVar4 = uVar6 + 1" (pointer_expression "*puVar4" * identifier) = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar6 + 1 == 0)" ( (binary_expression "uVar6 + 1 == 0" (binary_expression "uVar6 + 1" identifier + number_literal) == number_literal) )) ;) (expression_statement "unaff_s1 = unaff_s1 - bn;" (assignment_expression "unaff_s1 = unaff_s1 - bn" identifier = (binary_expression "unaff_s1 - bn" identifier - identifier)) ;) (if_statement "if ((int)unaff_s1 < bn) goto LAB_00043988;" if (parenthesized_expression "((int)unaff_s1 < bn)" ( (binary_expression "(int)unaff_s1 < bn" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (goto_statement "goto LAB_00043988;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_00043988:\n        ptVar8 = __tmp_marker;" statement_identifier : (expression_statement "ptVar8 = __tmp_marker;" (assignment_expression "ptVar8 = __tmp_marker" identifier = identifier) ;)) (if_statement "if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          (**(code **)(amStack_48[0] - 0x7a2c))();\n        }" if (parenthesized_expression "(__tmp_marker != (tmp_reentrant_t *)0x0)" ( (binary_expression "__tmp_marker != (tmp_reentrant_t *)0x0" identifier != (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (**(code **)(amStack_48[0] - 0x7a2c))();\n        }" { (expression_statement "(**(code **)(amStack_48[0] - 0x7a2c))();" (call_expression "(**(code **)(amStack_48[0] - 0x7a2c))()" (parenthesized_expression "(**(code **)(amStack_48[0] - 0x7a2c))" ( (pointer_expression "**(code **)(amStack_48[0] - 0x7a2c)" * (pointer_expression "*(code **)(amStack_48[0] - 0x7a2c)" * (cast_expression "(code **)(amStack_48[0] - 0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(amStack_48[0] - 0x7a2c)" ( (binary_expression "amStack_48[0] - 0x7a2c" (subscript_expression "amStack_48[0]" identifier [ number_literal ]) - number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (if_statement "if (unaff_s1 != 0) {\n          iVar14 = bn + unaff_s1;\n          *(mp_size_t *)(puVar19 + 0x10) = bn;\n          pmVar10 = rp + bn;\n          ap = pmVar9 + bn;\n          unaff_s1 = *pmVar10;\n          unaff_s2 = pmVar10[1];\n          __gmpn_mulmid(pmVar10,ap,iVar14 + -1,bp,*(mp_size_t *)(puVar19 + 0x10));\n          ptVar2 = (tmp_reentrant_t *)*pmVar10;\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n          *pmVar10 = (mp_limb_t)ptVar8;\n          uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n          uVar3 = uVar6 + pmVar10[1];\n          pmVar10[1] = uVar3;\n          if (uVar3 < uVar6) {\n            pmVar1 = pmVar10 + 1;\n            do {\n              pmVar1 = pmVar1 + 1;\n              mVar7 = *pmVar1;\n              *pmVar1 = mVar7 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n        }" if (parenthesized_expression "(unaff_s1 != 0)" ( (binary_expression "unaff_s1 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar14 = bn + unaff_s1;\n          *(mp_size_t *)(puVar19 + 0x10) = bn;\n          pmVar10 = rp + bn;\n          ap = pmVar9 + bn;\n          unaff_s1 = *pmVar10;\n          unaff_s2 = pmVar10[1];\n          __gmpn_mulmid(pmVar10,ap,iVar14 + -1,bp,*(mp_size_t *)(puVar19 + 0x10));\n          ptVar2 = (tmp_reentrant_t *)*pmVar10;\n          ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);\n          *pmVar10 = (mp_limb_t)ptVar8;\n          uVar6 = (ptVar8 < ptVar2) + unaff_s2;\n          uVar3 = uVar6 + pmVar10[1];\n          pmVar10[1] = uVar3;\n          if (uVar3 < uVar6) {\n            pmVar1 = pmVar10 + 1;\n            do {\n              pmVar1 = pmVar1 + 1;\n              mVar7 = *pmVar1;\n              *pmVar1 = mVar7 + 1;\n            } while (mVar7 + 1 == 0);\n          }\n        }" { (expression_statement "iVar14 = bn + unaff_s1;" (assignment_expression "iVar14 = bn + unaff_s1" identifier = (binary_expression "bn + unaff_s1" identifier + identifier)) ;) (expression_statement "*(mp_size_t *)(puVar19 + 0x10) = bn;" (assignment_expression "*(mp_size_t *)(puVar19 + 0x10) = bn" (pointer_expression "*(mp_size_t *)(puVar19 + 0x10)" * (cast_expression "(mp_size_t *)(puVar19 + 0x10)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x10)" ( (binary_expression "puVar19 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pmVar10 = rp + bn;" (assignment_expression "pmVar10 = rp + bn" identifier = (binary_expression "rp + bn" identifier + identifier)) ;) (expression_statement "ap = pmVar9 + bn;" (assignment_expression "ap = pmVar9 + bn" identifier = (binary_expression "pmVar9 + bn" identifier + identifier)) ;) (expression_statement "unaff_s1 = *pmVar10;" (assignment_expression "unaff_s1 = *pmVar10" identifier = (pointer_expression "*pmVar10" * identifier)) ;) (expression_statement "unaff_s2 = pmVar10[1];" (assignment_expression "unaff_s2 = pmVar10[1]" identifier = (subscript_expression "pmVar10[1]" identifier [ number_literal ])) ;) (expression_statement "__gmpn_mulmid(pmVar10,ap,iVar14 + -1,bp,*(mp_size_t *)(puVar19 + 0x10));" (call_expression "__gmpn_mulmid(pmVar10,ap,iVar14 + -1,bp,*(mp_size_t *)(puVar19 + 0x10))" identifier (argument_list "(pmVar10,ap,iVar14 + -1,bp,*(mp_size_t *)(puVar19 + 0x10))" ( identifier , identifier , (binary_expression "iVar14 + -1" identifier + number_literal) , identifier , (pointer_expression "*(mp_size_t *)(puVar19 + 0x10)" * (cast_expression "(mp_size_t *)(puVar19 + 0x10)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x10)" ( (binary_expression "puVar19 + 0x10" identifier + number_literal) )))) ))) ;) (expression_statement "ptVar2 = (tmp_reentrant_t *)*pmVar10;" (assignment_expression "ptVar2 = (tmp_reentrant_t *)*pmVar10" identifier = (cast_expression "(tmp_reentrant_t *)*pmVar10" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pmVar10" * identifier))) ;) (expression_statement "ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1);" (assignment_expression "ptVar8 = (tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1)" identifier = (cast_expression "(tmp_reentrant_t *)((int)&ptVar2->next + unaff_s1)" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptVar2->next + unaff_s1)" ( (binary_expression "(int)&ptVar2->next + unaff_s1" (cast_expression "(int)&ptVar2->next" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptVar2->next" & (field_expression "ptVar2->next" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "*pmVar10 = (mp_limb_t)ptVar8;" (assignment_expression "*pmVar10 = (mp_limb_t)ptVar8" (pointer_expression "*pmVar10" * identifier) = (cast_expression "(mp_limb_t)ptVar8" ( (type_descriptor "mp_limb_t" type_identifier) ) identifier)) ;) (expression_statement "uVar6 = (ptVar8 < ptVar2) + unaff_s2;" (assignment_expression "uVar6 = (ptVar8 < ptVar2) + unaff_s2" identifier = (binary_expression "(ptVar8 < ptVar2) + unaff_s2" (parenthesized_expression "(ptVar8 < ptVar2)" ( (binary_expression "ptVar8 < ptVar2" identifier < identifier) )) + identifier)) ;) (expression_statement "uVar3 = uVar6 + pmVar10[1];" (assignment_expression "uVar3 = uVar6 + pmVar10[1]" identifier = (binary_expression "uVar6 + pmVar10[1]" identifier + (subscript_expression "pmVar10[1]" identifier [ number_literal ]))) ;) (expression_statement "pmVar10[1] = uVar3;" (assignment_expression "pmVar10[1] = uVar3" (subscript_expression "pmVar10[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar3 < uVar6) {\n            pmVar1 = pmVar10 + 1;\n            do {\n              pmVar1 = pmVar1 + 1;\n              mVar7 = *pmVar1;\n              *pmVar1 = mVar7 + 1;\n            } while (mVar7 + 1 == 0);\n          }" if (parenthesized_expression "(uVar3 < uVar6)" ( (binary_expression "uVar3 < uVar6" identifier < identifier) )) (compound_statement "{\n            pmVar1 = pmVar10 + 1;\n            do {\n              pmVar1 = pmVar1 + 1;\n              mVar7 = *pmVar1;\n              *pmVar1 = mVar7 + 1;\n            } while (mVar7 + 1 == 0);\n          }" { (expression_statement "pmVar1 = pmVar10 + 1;" (assignment_expression "pmVar1 = pmVar10 + 1" identifier = (binary_expression "pmVar10 + 1" identifier + number_literal)) ;) (do_statement "do {\n              pmVar1 = pmVar1 + 1;\n              mVar7 = *pmVar1;\n              *pmVar1 = mVar7 + 1;\n            } while (mVar7 + 1 == 0);" do (compound_statement "{\n              pmVar1 = pmVar1 + 1;\n              mVar7 = *pmVar1;\n              *pmVar1 = mVar7 + 1;\n            }" { (expression_statement "pmVar1 = pmVar1 + 1;" (assignment_expression "pmVar1 = pmVar1 + 1" identifier = (binary_expression "pmVar1 + 1" identifier + number_literal)) ;) (expression_statement "mVar7 = *pmVar1;" (assignment_expression "mVar7 = *pmVar1" identifier = (pointer_expression "*pmVar1" * identifier)) ;) (expression_statement "*pmVar1 = mVar7 + 1;" (assignment_expression "*pmVar1 = mVar7 + 1" (pointer_expression "*pmVar1" * identifier) = (binary_expression "mVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(mVar7 + 1 == 0)" ( (binary_expression "mVar7 + 1 == 0" (binary_expression "mVar7 + 1" identifier + number_literal) == number_literal) )) ;) })) })) (goto_statement "goto LAB_0004383c;" goto statement_identifier ;) })) (expression_statement "iVar14 = unaff_s2 + 3;" (assignment_expression "iVar14 = unaff_s2 + 3" identifier = (binary_expression "unaff_s2 + 3" identifier + number_literal)) ;) (expression_statement "uVar6 = (unaff_s1 * 3 + 0x20 + iVar14) * 4;" (assignment_expression "uVar6 = (unaff_s1 * 3 + 0x20 + iVar14) * 4" identifier = (binary_expression "(unaff_s1 * 3 + 0x20 + iVar14) * 4" (parenthesized_expression "(unaff_s1 * 3 + 0x20 + iVar14)" ( (binary_expression "unaff_s1 * 3 + 0x20 + iVar14" (binary_expression "unaff_s1 * 3 + 0x20" (binary_expression "unaff_s1 * 3" identifier * number_literal) + number_literal) + identifier) )) * number_literal)) ;) (expression_statement "__tmp_marker = (tmp_reentrant_t *)0x0;" (assignment_expression "__tmp_marker = (tmp_reentrant_t *)0x0" identifier = (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar6 < 0x7f01) {\n        iVar12 = -(uVar6 + 7 & 0xfffffff8);\n        puVar20 = auStack_60 + iVar12;\n        pmVar1 = (mp_ptr)((int)amStack_48 + iVar12);\n      }\n      else {\n        pmVar1 = (mp_ptr)(**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n      }" if (parenthesized_expression "(uVar6 < 0x7f01)" ( (binary_expression "uVar6 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n        iVar12 = -(uVar6 + 7 & 0xfffffff8);\n        puVar20 = auStack_60 + iVar12;\n        pmVar1 = (mp_ptr)((int)amStack_48 + iVar12);\n      }" { (expression_statement "iVar12 = -(uVar6 + 7 & 0xfffffff8);" (assignment_expression "iVar12 = -(uVar6 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar6 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar6 + 7 & 0xfffffff8)" ( (binary_expression "uVar6 + 7 & 0xfffffff8" (binary_expression "uVar6 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar20 = auStack_60 + iVar12;" (assignment_expression "puVar20 = auStack_60 + iVar12" identifier = (binary_expression "auStack_60 + iVar12" identifier + identifier)) ;) (expression_statement "pmVar1 = (mp_ptr)((int)amStack_48 + iVar12);" (assignment_expression "pmVar1 = (mp_ptr)((int)amStack_48 + iVar12)" identifier = (call_expression "(mp_ptr)((int)amStack_48 + iVar12)" (parenthesized_expression "(mp_ptr)" ( identifier )) (argument_list "((int)amStack_48 + iVar12)" ( (binary_expression "(int)amStack_48 + iVar12" (cast_expression "(int)amStack_48" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n        pmVar1 = (mp_ptr)(**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n      }" else (compound_statement "{\n        pmVar1 = (mp_ptr)(**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);\n      }" { (expression_statement "pmVar1 = (mp_ptr)(**(code **)(in_t9 + 0x53cb0))(&__tmp_marker);" (assignment_expression "pmVar1 = (mp_ptr)(**(code **)(in_t9 + 0x53cb0))(&__tmp_marker)" identifier = (call_expression "(mp_ptr)(**(code **)(in_t9 + 0x53cb0))(&__tmp_marker)" (call_expression "(mp_ptr)(**(code **)(in_t9 + 0x53cb0))" (parenthesized_expression "(mp_ptr)" ( identifier )) (argument_list "(**(code **)(in_t9 + 0x53cb0))" ( (pointer_expression "**(code **)(in_t9 + 0x53cb0)" * (pointer_expression "*(code **)(in_t9 + 0x53cb0)" * (cast_expression "(code **)(in_t9 + 0x53cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x53cb0)" ( (binary_expression "in_t9 + 0x53cb0" identifier + number_literal) ))))) ))) (argument_list "(&__tmp_marker)" ( (pointer_expression "&__tmp_marker" & identifier) )))) ;) }))) (expression_statement "pmVar10 = (mp_ptr)(bn - unaff_s1);" (assignment_expression "pmVar10 = (mp_ptr)(bn - unaff_s1)" identifier = (call_expression "(mp_ptr)(bn - unaff_s1)" (parenthesized_expression "(mp_ptr)" ( identifier )) (argument_list "(bn - unaff_s1)" ( (binary_expression "bn - unaff_s1" identifier - identifier) )))) ;) (expression_statement "pcVar17 = *(code **)(amStack_48[0] - 0x7c50);" (assignment_expression "pcVar17 = *(code **)(amStack_48[0] - 0x7c50)" identifier = (pointer_expression "*(code **)(amStack_48[0] - 0x7c50)" * (cast_expression "(code **)(amStack_48[0] - 0x7c50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(amStack_48[0] - 0x7c50)" ( (binary_expression "amStack_48[0] - 0x7c50" (subscript_expression "amStack_48[0]" identifier [ number_literal ]) - number_literal) ))))) ;) (expression_statement "pmVar16 = bp + (int)pmVar10;" (assignment_expression "pmVar16 = bp + (int)pmVar10" identifier = (binary_expression "bp + (int)pmVar10" identifier + (cast_expression "(int)pmVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;" (assignment_expression "*(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14" (pointer_expression "*(mp_ptr *)(puVar20 + 0x10)" * (cast_expression "(mp_ptr *)(puVar20 + 0x10)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x10)" ( (binary_expression "puVar20 + 0x10" identifier + number_literal) )))) = (binary_expression "pmVar1 + iVar14" identifier + identifier)) ;) (expression_statement "pmVar9 = ap;" (assignment_expression "pmVar9 = ap" identifier = identifier) ;) (expression_statement "(*pcVar17)(rp,ap,pmVar16,unaff_s1);" (call_expression "(*pcVar17)(rp,ap,pmVar16,unaff_s1)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(rp,ap,pmVar16,unaff_s1)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pmVar13 = ap;" (assignment_expression "pmVar13 = ap" identifier = identifier) ;) (if_statement "if ((int)unaff_s1 <= (int)pmVar10) {\n        uStack_34 = unaff_s1 * 4;\n        amStack_48[3] = unaff_s1 * -4;\n        do {\n          uVar6 = uStack_34;\n          pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n          *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n          pmVar10 = (mp_ptr)((int)pmVar10 - unaff_s1);\n          pmVar13 = (mp_srcptr)((int)pmVar13 + uVar6);\n          pmVar16 = (mp_srcptr)((int)pmVar16 + amStack_48[3]);\n          (*pcVar17)(pmVar1,pmVar13,pmVar16,unaff_s1);\n          pmVar9 = rp;\n          (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        } while ((int)unaff_s1 <= (int)pmVar10);\n      }" if (parenthesized_expression "((int)unaff_s1 <= (int)pmVar10)" ( (binary_expression "(int)unaff_s1 <= (int)pmVar10" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pmVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uStack_34 = unaff_s1 * 4;\n        amStack_48[3] = unaff_s1 * -4;\n        do {\n          uVar6 = uStack_34;\n          pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n          *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n          pmVar10 = (mp_ptr)((int)pmVar10 - unaff_s1);\n          pmVar13 = (mp_srcptr)((int)pmVar13 + uVar6);\n          pmVar16 = (mp_srcptr)((int)pmVar16 + amStack_48[3]);\n          (*pcVar17)(pmVar1,pmVar13,pmVar16,unaff_s1);\n          pmVar9 = rp;\n          (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        } while ((int)unaff_s1 <= (int)pmVar10);\n      }" { (expression_statement "uStack_34 = unaff_s1 * 4;" (assignment_expression "uStack_34 = unaff_s1 * 4" identifier = (binary_expression "unaff_s1 * 4" identifier * number_literal)) ;) (expression_statement "amStack_48[3] = unaff_s1 * -4;" (assignment_expression "amStack_48[3] = unaff_s1 * -4" (subscript_expression "amStack_48[3]" identifier [ number_literal ]) = (binary_expression "unaff_s1 * -4" identifier * number_literal)) ;) (do_statement "do {\n          uVar6 = uStack_34;\n          pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n          *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n          pmVar10 = (mp_ptr)((int)pmVar10 - unaff_s1);\n          pmVar13 = (mp_srcptr)((int)pmVar13 + uVar6);\n          pmVar16 = (mp_srcptr)((int)pmVar16 + amStack_48[3]);\n          (*pcVar17)(pmVar1,pmVar13,pmVar16,unaff_s1);\n          pmVar9 = rp;\n          (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        } while ((int)unaff_s1 <= (int)pmVar10);" do (compound_statement "{\n          uVar6 = uStack_34;\n          pcVar17 = *(code **)(amStack_48[0] - 0x7c50);\n          *(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;\n          pmVar10 = (mp_ptr)((int)pmVar10 - unaff_s1);\n          pmVar13 = (mp_srcptr)((int)pmVar13 + uVar6);\n          pmVar16 = (mp_srcptr)((int)pmVar16 + amStack_48[3]);\n          (*pcVar17)(pmVar1,pmVar13,pmVar16,unaff_s1);\n          pmVar9 = rp;\n          (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        }" { (expression_statement "uVar6 = uStack_34;" (assignment_expression "uVar6 = uStack_34" identifier = identifier) ;) (expression_statement "pcVar17 = *(code **)(amStack_48[0] - 0x7c50);" (assignment_expression "pcVar17 = *(code **)(amStack_48[0] - 0x7c50)" identifier = (pointer_expression "*(code **)(amStack_48[0] - 0x7c50)" * (cast_expression "(code **)(amStack_48[0] - 0x7c50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(amStack_48[0] - 0x7c50)" ( (binary_expression "amStack_48[0] - 0x7c50" (subscript_expression "amStack_48[0]" identifier [ number_literal ]) - number_literal) ))))) ;) (expression_statement "*(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14;" (assignment_expression "*(mp_ptr *)(puVar20 + 0x10) = pmVar1 + iVar14" (pointer_expression "*(mp_ptr *)(puVar20 + 0x10)" * (cast_expression "(mp_ptr *)(puVar20 + 0x10)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x10)" ( (binary_expression "puVar20 + 0x10" identifier + number_literal) )))) = (binary_expression "pmVar1 + iVar14" identifier + identifier)) ;) (expression_statement "pmVar10 = (mp_ptr)((int)pmVar10 - unaff_s1);" (assignment_expression "pmVar10 = (mp_ptr)((int)pmVar10 - unaff_s1)" identifier = (call_expression "(mp_ptr)((int)pmVar10 - unaff_s1)" (parenthesized_expression "(mp_ptr)" ( identifier )) (argument_list "((int)pmVar10 - unaff_s1)" ( (binary_expression "(int)pmVar10 - unaff_s1" (cast_expression "(int)pmVar10" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "pmVar13 = (mp_srcptr)((int)pmVar13 + uVar6);" (assignment_expression "pmVar13 = (mp_srcptr)((int)pmVar13 + uVar6)" identifier = (call_expression "(mp_srcptr)((int)pmVar13 + uVar6)" (parenthesized_expression "(mp_srcptr)" ( identifier )) (argument_list "((int)pmVar13 + uVar6)" ( (binary_expression "(int)pmVar13 + uVar6" (cast_expression "(int)pmVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pmVar16 = (mp_srcptr)((int)pmVar16 + amStack_48[3]);" (assignment_expression "pmVar16 = (mp_srcptr)((int)pmVar16 + amStack_48[3])" identifier = (call_expression "(mp_srcptr)((int)pmVar16 + amStack_48[3])" (parenthesized_expression "(mp_srcptr)" ( identifier )) (argument_list "((int)pmVar16 + amStack_48[3])" ( (binary_expression "(int)pmVar16 + amStack_48[3]" (cast_expression "(int)pmVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "amStack_48[3]" identifier [ number_literal ])) )))) ;) (expression_statement "(*pcVar17)(pmVar1,pmVar13,pmVar16,unaff_s1);" (call_expression "(*pcVar17)(pmVar1,pmVar13,pmVar16,unaff_s1)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(pmVar1,pmVar13,pmVar16,unaff_s1)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pmVar9 = rp;" (assignment_expression "pmVar9 = rp" identifier = identifier) ;) (expression_statement "(**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);" (call_expression "(**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14)" (parenthesized_expression "(**(code **)(amStack_48[0] - 0x7d0c))" ( (pointer_expression "**(code **)(amStack_48[0] - 0x7d0c)" * (pointer_expression "*(code **)(amStack_48[0] - 0x7d0c)" * (cast_expression "(code **)(amStack_48[0] - 0x7d0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(amStack_48[0] - 0x7d0c)" ( (binary_expression "amStack_48[0] - 0x7d0c" (subscript_expression "amStack_48[0]" identifier [ number_literal ]) - number_literal) ))))) )) (argument_list "(rp,rp,pmVar1,iVar14)" ( identifier , identifier , identifier , identifier ))) ;) }) while (parenthesized_expression "((int)unaff_s1 <= (int)pmVar10)" ( (binary_expression "(int)unaff_s1 <= (int)pmVar10" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pmVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "ap = pmVar9;" (assignment_expression "ap = pmVar9" identifier = identifier) ;) (if_statement "if (pmVar10 != (mp_ptr)0x0) {\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        __gmpn_mulmid(pmVar1,pmVar13 + unaff_s1,(int)pmVar10 + unaff_s2,pmVar16 + -(int)pmVar10,\n                      *(mp_size_t *)(puVar20 + 0x10));\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        ap = rp;\n      }" if (parenthesized_expression "(pmVar10 != (mp_ptr)0x0)" ( (binary_expression "pmVar10 != (mp_ptr)0x0" identifier != (cast_expression "(mp_ptr)0x0" ( (type_descriptor "mp_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\n        *(mp_ptr *)(puVar20 + 0x10) = pmVar10;\n        __gmpn_mulmid(pmVar1,pmVar13 + unaff_s1,(int)pmVar10 + unaff_s2,pmVar16 + -(int)pmVar10,\n                      *(mp_size_t *)(puVar20 + 0x10));\n        (**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);\n        ap = rp;\n      }" { (expression_statement "*(mp_ptr *)(puVar20 + 0x10) = pmVar10;" (assignment_expression "*(mp_ptr *)(puVar20 + 0x10) = pmVar10" (pointer_expression "*(mp_ptr *)(puVar20 + 0x10)" * (cast_expression "(mp_ptr *)(puVar20 + 0x10)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x10)" ( (binary_expression "puVar20 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "__gmpn_mulmid(pmVar1,pmVar13 + unaff_s1,(int)pmVar10 + unaff_s2,pmVar16 + -(int)pmVar10,\n                      *(mp_size_t *)(puVar20 + 0x10));" (call_expression "__gmpn_mulmid(pmVar1,pmVar13 + unaff_s1,(int)pmVar10 + unaff_s2,pmVar16 + -(int)pmVar10,\n                      *(mp_size_t *)(puVar20 + 0x10))" identifier (argument_list "(pmVar1,pmVar13 + unaff_s1,(int)pmVar10 + unaff_s2,pmVar16 + -(int)pmVar10,\n                      *(mp_size_t *)(puVar20 + 0x10))" ( identifier , (binary_expression "pmVar13 + unaff_s1" identifier + identifier) , (binary_expression "(int)pmVar10 + unaff_s2" (cast_expression "(int)pmVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , (binary_expression "pmVar16 + -(int)pmVar10" identifier + (unary_expression "-(int)pmVar10" - (cast_expression "(int)pmVar10" ( (type_descriptor "int" primitive_type) ) identifier))) , (pointer_expression "*(mp_size_t *)(puVar20 + 0x10)" * (cast_expression "(mp_size_t *)(puVar20 + 0x10)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x10)" ( (binary_expression "puVar20 + 0x10" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14);" (call_expression "(**(code **)(amStack_48[0] - 0x7d0c))(rp,rp,pmVar1,iVar14)" (parenthesized_expression "(**(code **)(amStack_48[0] - 0x7d0c))" ( (pointer_expression "**(code **)(amStack_48[0] - 0x7d0c)" * (pointer_expression "*(code **)(amStack_48[0] - 0x7d0c)" * (cast_expression "(code **)(amStack_48[0] - 0x7d0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(amStack_48[0] - 0x7d0c)" ( (binary_expression "amStack_48[0] - 0x7d0c" (subscript_expression "amStack_48[0]" identifier [ number_literal ]) - number_literal) ))))) )) (argument_list "(rp,rp,pmVar1,iVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "ap = rp;" (assignment_expression "ap = rp" identifier = identifier) ;) })) }))) (expression_statement "unaff_s2 = unaff_s2 + 3;" (assignment_expression "unaff_s2 = unaff_s2 + 3" identifier = (binary_expression "unaff_s2 + 3" identifier + number_literal)) ;) (expression_statement "ptVar8 = __tmp_marker;" (assignment_expression "ptVar8 = __tmp_marker" identifier = identifier) ;) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" identifier = identifier) ;) (if_statement "if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      (**(code **)(amStack_48[0] - 0x7a2c))();\n    }" if (parenthesized_expression "(__tmp_marker != (tmp_reentrant_t *)0x0)" ( (binary_expression "__tmp_marker != (tmp_reentrant_t *)0x0" identifier != (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(amStack_48[0] - 0x7a2c))();\n    }" { (expression_statement "(**(code **)(amStack_48[0] - 0x7a2c))();" (call_expression "(**(code **)(amStack_48[0] - 0x7a2c))()" (parenthesized_expression "(**(code **)(amStack_48[0] - 0x7a2c))" ( (pointer_expression "**(code **)(amStack_48[0] - 0x7a2c)" * (pointer_expression "*(code **)(amStack_48[0] - 0x7a2c)" * (cast_expression "(code **)(amStack_48[0] - 0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(amStack_48[0] - 0x7a2c)" ( (binary_expression "amStack_48[0] - 0x7a2c" (subscript_expression "amStack_48[0]" identifier [ number_literal ]) - number_literal) ))))) )) (argument_list "()" ( ))) ;) })) }))) (labeled_statement "LAB_0004383c:\n  if (iStack_2c == *piStack_38) {\n    return;\n  }" statement_identifier : (if_statement "if (iStack_2c == *piStack_38) {\n    return;\n  }" if (parenthesized_expression "(iStack_2c == *piStack_38)" ( (binary_expression "iStack_2c == *piStack_38" identifier == (pointer_expression "*piStack_38" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "pcVar17 = *(code **)(amStack_48[0] - 0x7b70);" (assignment_expression "pcVar17 = *(code **)(amStack_48[0] - 0x7b70)" identifier = (pointer_expression "*(code **)(amStack_48[0] - 0x7b70)" * (cast_expression "(code **)(amStack_48[0] - 0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(amStack_48[0] - 0x7b70)" ( (binary_expression "amStack_48[0] - 0x7b70" (subscript_expression "amStack_48[0]" identifier [ number_literal ]) - number_literal) ))))) ;) (expression_statement "uVar21 = 0x43cd4;" (assignment_expression "uVar21 = 0x43cd4" identifier = number_literal) ;) (expression_statement "(*pcVar17)();" (call_expression "(*pcVar17)()" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar18 = pcVar17 + 0x5b360;" (assignment_expression "pcVar18 = pcVar17 + 0x5b360" identifier = (binary_expression "pcVar17 + 0x5b360" identifier + number_literal)) ;) (if_statement "if (ap != (mp_ptr)0x0) {\n    pcVar5 = *(char **)(pcVar17 + 0x534a8);\n    *(uint *)(puVar19 + -8) = unaff_s2;\n    *(mp_ptr *)(puVar19 + -0x10) = pmVar10;\n    *(code **)(puVar19 + -0x18) = pcVar18;\n    *(undefined4 *)(puVar19 + -4) = uVar21;\n    *(uint *)(puVar19 + -0xc) = unaff_s1;\n    if (*pcVar5 == '\0') {\n      pcVar18 = *(code **)(pcVar17 + 0x53920);\n      uVar21 = *(undefined4 *)(pcVar17 + 0x5359c);\n      *pcVar5 = '\x01';\n      (*pcVar18)(uVar21);\n      pcVar18 = *(code **)(puVar19 + -0x18);\n    }\n    iVar12 = *(int *)(pcVar18 + -0x7dc4);\n    (**(code **)(*(int *)(iVar12 + 0x10) + 4))(iVar12,ptVar8,(int)ap << 5);\n    piVar11 = (int *)((int)ptVar8 + (int)ap * 4 + -4);\n    iVar14 = *piVar11;\n    while (iVar14 == 0) {\n      (**(code **)(*(int *)(iVar12 + 0x10) + 4))(iVar12,piVar11,0x20);\n      iVar14 = *piVar11;\n    }\n    return;\n  }" if (parenthesized_expression "(ap != (mp_ptr)0x0)" ( (binary_expression "ap != (mp_ptr)0x0" identifier != (cast_expression "(mp_ptr)0x0" ( (type_descriptor "mp_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\n    pcVar5 = *(char **)(pcVar17 + 0x534a8);\n    *(uint *)(puVar19 + -8) = unaff_s2;\n    *(mp_ptr *)(puVar19 + -0x10) = pmVar10;\n    *(code **)(puVar19 + -0x18) = pcVar18;\n    *(undefined4 *)(puVar19 + -4) = uVar21;\n    *(uint *)(puVar19 + -0xc) = unaff_s1;\n    if (*pcVar5 == '\0') {\n      pcVar18 = *(code **)(pcVar17 + 0x53920);\n      uVar21 = *(undefined4 *)(pcVar17 + 0x5359c);\n      *pcVar5 = '\x01';\n      (*pcVar18)(uVar21);\n      pcVar18 = *(code **)(puVar19 + -0x18);\n    }\n    iVar12 = *(int *)(pcVar18 + -0x7dc4);\n    (**(code **)(*(int *)(iVar12 + 0x10) + 4))(iVar12,ptVar8,(int)ap << 5);\n    piVar11 = (int *)((int)ptVar8 + (int)ap * 4 + -4);\n    iVar14 = *piVar11;\n    while (iVar14 == 0) {\n      (**(code **)(*(int *)(iVar12 + 0x10) + 4))(iVar12,piVar11,0x20);\n      iVar14 = *piVar11;\n    }\n    return;\n  }" { (expression_statement "pcVar5 = *(char **)(pcVar17 + 0x534a8);" (assignment_expression "pcVar5 = *(char **)(pcVar17 + 0x534a8)" identifier = (pointer_expression "*(char **)(pcVar17 + 0x534a8)" * (cast_expression "(char **)(pcVar17 + 0x534a8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x534a8)" ( (binary_expression "pcVar17 + 0x534a8" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar19 + -8) = unaff_s2;" (assignment_expression "*(uint *)(puVar19 + -8) = unaff_s2" (pointer_expression "*(uint *)(puVar19 + -8)" * (cast_expression "(uint *)(puVar19 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -8)" ( (binary_expression "puVar19 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_ptr *)(puVar19 + -0x10) = pmVar10;" (assignment_expression "*(mp_ptr *)(puVar19 + -0x10) = pmVar10" (pointer_expression "*(mp_ptr *)(puVar19 + -0x10)" * (cast_expression "(mp_ptr *)(puVar19 + -0x10)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar19 + -0x18) = pcVar18;" (assignment_expression "*(code **)(puVar19 + -0x18) = pcVar18" (pointer_expression "*(code **)(puVar19 + -0x18)" * (cast_expression "(code **)(puVar19 + -0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x18)" ( (binary_expression "puVar19 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + -4) = uVar21;" (assignment_expression "*(undefined4 *)(puVar19 + -4) = uVar21" (pointer_expression "*(undefined4 *)(puVar19 + -4)" * (cast_expression "(undefined4 *)(puVar19 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -4)" ( (binary_expression "puVar19 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar19 + -0xc) = unaff_s1;" (assignment_expression "*(uint *)(puVar19 + -0xc) = unaff_s1" (pointer_expression "*(uint *)(puVar19 + -0xc)" * (cast_expression "(uint *)(puVar19 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0xc)" ( (binary_expression "puVar19 + -0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*pcVar5 == '\0') {\n      pcVar18 = *(code **)(pcVar17 + 0x53920);\n      uVar21 = *(undefined4 *)(pcVar17 + 0x5359c);\n      *pcVar5 = '\x01';\n      (*pcVar18)(uVar21);\n      pcVar18 = *(code **)(puVar19 + -0x18);\n    }" if (parenthesized_expression "(*pcVar5 == '\0')" ( (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar18 = *(code **)(pcVar17 + 0x53920);\n      uVar21 = *(undefined4 *)(pcVar17 + 0x5359c);\n      *pcVar5 = '\x01';\n      (*pcVar18)(uVar21);\n      pcVar18 = *(code **)(puVar19 + -0x18);\n    }" { (expression_statement "pcVar18 = *(code **)(pcVar17 + 0x53920);" (assignment_expression "pcVar18 = *(code **)(pcVar17 + 0x53920)" identifier = (pointer_expression "*(code **)(pcVar17 + 0x53920)" * (cast_expression "(code **)(pcVar17 + 0x53920)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x53920)" ( (binary_expression "pcVar17 + 0x53920" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = *(undefined4 *)(pcVar17 + 0x5359c);" (assignment_expression "uVar21 = *(undefined4 *)(pcVar17 + 0x5359c)" identifier = (pointer_expression "*(undefined4 *)(pcVar17 + 0x5359c)" * (cast_expression "(undefined4 *)(pcVar17 + 0x5359c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar17 + 0x5359c)" ( (binary_expression "pcVar17 + 0x5359c" identifier + number_literal) ))))) ;) (expression_statement "*pcVar5 = '\x01';" (assignment_expression "*pcVar5 = '\x01'" (pointer_expression "*pcVar5" * identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "(*pcVar18)(uVar21);" (call_expression "(*pcVar18)(uVar21)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(uVar21)" ( identifier ))) ;) (expression_statement "pcVar18 = *(code **)(puVar19 + -0x18);" (assignment_expression "pcVar18 = *(code **)(puVar19 + -0x18)" identifier = (pointer_expression "*(code **)(puVar19 + -0x18)" * (cast_expression "(code **)(puVar19 + -0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x18)" ( (binary_expression "puVar19 + -0x18" identifier + number_literal) ))))) ;) })) (expression_statement "iVar12 = *(int *)(pcVar18 + -0x7dc4);" (assignment_expression "iVar12 = *(int *)(pcVar18 + -0x7dc4)" identifier = (pointer_expression "*(int *)(pcVar18 + -0x7dc4)" * (cast_expression "(int *)(pcVar18 + -0x7dc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + -0x7dc4)" ( (binary_expression "pcVar18 + -0x7dc4" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(*(int *)(iVar12 + 0x10) + 4))(iVar12,ptVar8,(int)ap << 5);" (call_expression "(**(code **)(*(int *)(iVar12 + 0x10) + 4))(iVar12,ptVar8,(int)ap << 5)" (parenthesized_expression "(**(code **)(*(int *)(iVar12 + 0x10) + 4))" ( (pointer_expression "**(code **)(*(int *)(iVar12 + 0x10) + 4)" * (pointer_expression "*(code **)(*(int *)(iVar12 + 0x10) + 4)" * (cast_expression "(code **)(*(int *)(iVar12 + 0x10) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar12 + 0x10) + 4)" ( (binary_expression "*(int *)(iVar12 + 0x10) + 4" (pointer_expression "*(int *)(iVar12 + 0x10)" * (cast_expression "(int *)(iVar12 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar12,ptVar8,(int)ap << 5)" ( identifier , identifier , (binary_expression "(int)ap << 5" (cast_expression "(int)ap" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) ;) (expression_statement "piVar11 = (int *)((int)ptVar8 + (int)ap * 4 + -4);" (assignment_expression "piVar11 = (int *)((int)ptVar8 + (int)ap * 4 + -4)" identifier = (cast_expression "(int *)((int)ptVar8 + (int)ap * 4 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ptVar8 + (int)ap * 4 + -4)" ( (binary_expression "(int)ptVar8 + (int)ap * 4 + -4" (binary_expression "(int)ptVar8 + (int)ap * 4" (cast_expression "(int)ptVar8" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)ap * 4" (cast_expression "(int)ap" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "iVar14 = *piVar11;" (assignment_expression "iVar14 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (while_statement "while (iVar14 == 0) {\n      (**(code **)(*(int *)(iVar12 + 0x10) + 4))(iVar12,piVar11,0x20);\n      iVar14 = *piVar11;\n    }" while (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n      (**(code **)(*(int *)(iVar12 + 0x10) + 4))(iVar12,piVar11,0x20);\n      iVar14 = *piVar11;\n    }" { (expression_statement "(**(code **)(*(int *)(iVar12 + 0x10) + 4))(iVar12,piVar11,0x20);" (call_expression "(**(code **)(*(int *)(iVar12 + 0x10) + 4))(iVar12,piVar11,0x20)" (parenthesized_expression "(**(code **)(*(int *)(iVar12 + 0x10) + 4))" ( (pointer_expression "**(code **)(*(int *)(iVar12 + 0x10) + 4)" * (pointer_expression "*(code **)(*(int *)(iVar12 + 0x10) + 4)" * (cast_expression "(code **)(*(int *)(iVar12 + 0x10) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar12 + 0x10) + 4)" ( (binary_expression "*(int *)(iVar12 + 0x10) + 4" (pointer_expression "*(int *)(iVar12 + 0x10)" * (cast_expression "(int *)(iVar12 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar12,piVar11,0x20)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar14 = *piVar11;" (assignment_expression "iVar14 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void __gmpn_mulmid(uint *param_1,uint *param_2,int param_3,int param_4,uint *param_5)\n\n{\n  int iVar1;\n  uint *puVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint *puVar5;\n  undefined1 *puVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint unaff_s1;\n  int iVar10;\n  uint unaff_s2;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined *puVar13;\n  undefined1 *puVar14;\n  undefined4 uVar15;\n  undefined1 auStack_60 [16];\n  uint *local_50;\n  undefined1 *local_34;\n  uint *local_30;\n  int local_2c;\n  \n  puVar11 = PTR___stack_chk_guard_00097540;\n  puVar14 = auStack_60;\n  puVar6 = auStack_60;\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  puVar9 = param_5;\n  if ((int)param_5 < 0x14) {\n    if (0xdb < param_3) {\n      local_50 = param_5;\n      uVar8 = 0xdd - (int)param_5;\n      puVar2 = param_1;\n      puVar3 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);\n      unaff_s1 = uVar8;\n      puVar5 = param_2;\n      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }\nLAB_00043788:\n      puVar6 = auStack_60;\n      if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }\nLAB_0004382c:\n    local_50 = param_5;\n    (*(code *)PTR___gmpn_mulmid_basecase_000974ac)();\n    puVar2 = param_1;\n    puVar6 = auStack_60;\n  }\n  else {\n    unaff_s2 = param_3 - (int)param_5;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    puVar2 = local_30;\n    puVar6 = puVar14;\n    if (local_30 != (uint *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }\n  }\nLAB_0004383c:\n  if (local_2c == *(int *)puVar11) {\n    return;\n  }\n  uVar15 = 0x43cd4;\n  puVar11 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  puVar13 = puVar11 + 0x5b360;\n  if (param_2 != (uint *)0x0) {\n    pcVar7 = *(char **)(puVar11 + 0x534a8);\n    *(uint *)(puVar6 + -8) = unaff_s2;\n    *(uint **)(puVar6 + -0x10) = puVar9;\n    *(undefined **)(puVar6 + -0x18) = puVar13;\n    *(undefined4 *)(puVar6 + -4) = uVar15;\n    *(uint *)(puVar6 + -0xc) = unaff_s1;\n    if (*pcVar7 == '\0') {\n      pcVar12 = *(code **)(puVar11 + 0x53920);\n      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);\n      *pcVar7 = '\x01';\n      (*pcVar12)(uVar15);\n      puVar13 = *(undefined **)(puVar6 + -0x18);\n    }\n    iVar10 = *(int *)(puVar13 + -0x7dc4);\n    (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5);\n    puVar2 = puVar2 + (int)param_2 + -1;\n    uVar8 = *puVar2;\n    while (uVar8 == 0) {\n      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);\n      uVar8 = *puVar2;\n    }\n    return;\n  }\n  return;\n}\n\n" (function_definition "void __gmpn_mulmid(uint *param_1,uint *param_2,int param_3,int param_4,uint *param_5)\n\n{\n  int iVar1;\n  uint *puVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint *puVar5;\n  undefined1 *puVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint unaff_s1;\n  int iVar10;\n  uint unaff_s2;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined *puVar13;\n  undefined1 *puVar14;\n  undefined4 uVar15;\n  undefined1 auStack_60 [16];\n  uint *local_50;\n  undefined1 *local_34;\n  uint *local_30;\n  int local_2c;\n  \n  puVar11 = PTR___stack_chk_guard_00097540;\n  puVar14 = auStack_60;\n  puVar6 = auStack_60;\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  puVar9 = param_5;\n  if ((int)param_5 < 0x14) {\n    if (0xdb < param_3) {\n      local_50 = param_5;\n      uVar8 = 0xdd - (int)param_5;\n      puVar2 = param_1;\n      puVar3 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);\n      unaff_s1 = uVar8;\n      puVar5 = param_2;\n      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }\nLAB_00043788:\n      puVar6 = auStack_60;\n      if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }\nLAB_0004382c:\n    local_50 = param_5;\n    (*(code *)PTR___gmpn_mulmid_basecase_000974ac)();\n    puVar2 = param_1;\n    puVar6 = auStack_60;\n  }\n  else {\n    unaff_s2 = param_3 - (int)param_5;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    puVar2 = local_30;\n    puVar6 = puVar14;\n    if (local_30 != (uint *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }\n  }\nLAB_0004383c:\n  if (local_2c == *(int *)puVar11) {\n    return;\n  }\n  uVar15 = 0x43cd4;\n  puVar11 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  puVar13 = puVar11 + 0x5b360;\n  if (param_2 != (uint *)0x0) {\n    pcVar7 = *(char **)(puVar11 + 0x534a8);\n    *(uint *)(puVar6 + -8) = unaff_s2;\n    *(uint **)(puVar6 + -0x10) = puVar9;\n    *(undefined **)(puVar6 + -0x18) = puVar13;\n    *(undefined4 *)(puVar6 + -4) = uVar15;\n    *(uint *)(puVar6 + -0xc) = unaff_s1;\n    if (*pcVar7 == '\0') {\n      pcVar12 = *(code **)(puVar11 + 0x53920);\n      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);\n      *pcVar7 = '\x01';\n      (*pcVar12)(uVar15);\n      puVar13 = *(undefined **)(puVar6 + -0x18);\n    }\n    iVar10 = *(int *)(puVar13 + -0x7dc4);\n    (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5);\n    puVar2 = puVar2 + (int)param_2 + -1;\n    uVar8 = *puVar2;\n    while (uVar8 == 0) {\n      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);\n      uVar8 = *puVar2;\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "__gmpn_mulmid(uint *param_1,uint *param_2,int param_3,int param_4,uint *param_5)" identifier (parameter_list "(uint *param_1,uint *param_2,int param_3,int param_4,uint *param_5)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "uint *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  uint *puVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint *puVar5;\n  undefined1 *puVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint unaff_s1;\n  int iVar10;\n  uint unaff_s2;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined *puVar13;\n  undefined1 *puVar14;\n  undefined4 uVar15;\n  undefined1 auStack_60 [16];\n  uint *local_50;\n  undefined1 *local_34;\n  uint *local_30;\n  int local_2c;\n  \n  puVar11 = PTR___stack_chk_guard_00097540;\n  puVar14 = auStack_60;\n  puVar6 = auStack_60;\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  puVar9 = param_5;\n  if ((int)param_5 < 0x14) {\n    if (0xdb < param_3) {\n      local_50 = param_5;\n      uVar8 = 0xdd - (int)param_5;\n      puVar2 = param_1;\n      puVar3 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);\n      unaff_s1 = uVar8;\n      puVar5 = param_2;\n      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }\nLAB_00043788:\n      puVar6 = auStack_60;\n      if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }\nLAB_0004382c:\n    local_50 = param_5;\n    (*(code *)PTR___gmpn_mulmid_basecase_000974ac)();\n    puVar2 = param_1;\n    puVar6 = auStack_60;\n  }\n  else {\n    unaff_s2 = param_3 - (int)param_5;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    puVar2 = local_30;\n    puVar6 = puVar14;\n    if (local_30 != (uint *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }\n  }\nLAB_0004383c:\n  if (local_2c == *(int *)puVar11) {\n    return;\n  }\n  uVar15 = 0x43cd4;\n  puVar11 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  puVar13 = puVar11 + 0x5b360;\n  if (param_2 != (uint *)0x0) {\n    pcVar7 = *(char **)(puVar11 + 0x534a8);\n    *(uint *)(puVar6 + -8) = unaff_s2;\n    *(uint **)(puVar6 + -0x10) = puVar9;\n    *(undefined **)(puVar6 + -0x18) = puVar13;\n    *(undefined4 *)(puVar6 + -4) = uVar15;\n    *(uint *)(puVar6 + -0xc) = unaff_s1;\n    if (*pcVar7 == '\0') {\n      pcVar12 = *(code **)(puVar11 + 0x53920);\n      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);\n      *pcVar7 = '\x01';\n      (*pcVar12)(uVar15);\n      puVar13 = *(undefined **)(puVar6 + -0x18);\n    }\n    iVar10 = *(int *)(puVar13 + -0x7dc4);\n    (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5);\n    puVar2 = puVar2 + (int)param_2 + -1;\n    uVar8 = *puVar2;\n    while (uVar8 == 0) {\n      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);\n      uVar8 = *puVar2;\n    }\n    return;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint unaff_s1;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint unaff_s2;" type_identifier identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined1 auStack_60 [16];" type_identifier (array_declarator "auStack_60 [16]" identifier [ number_literal ]) ;) (declaration "uint *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "undefined1 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "uint *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar11 = PTR___stack_chk_guard_00097540;" (assignment_expression "puVar11 = PTR___stack_chk_guard_00097540" identifier = identifier) ;) (expression_statement "puVar14 = auStack_60;" (assignment_expression "puVar14 = auStack_60" identifier = identifier) ;) (expression_statement "puVar6 = auStack_60;" (assignment_expression "puVar6 = auStack_60" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00097540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00097540" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00097540" * (cast_expression "(int *)PTR___stack_chk_guard_00097540" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar9 = param_5;" (assignment_expression "puVar9 = param_5" identifier = identifier) ;) (if_statement "if ((int)param_5 < 0x14) {\n    if (0xdb < param_3) {\n      local_50 = param_5;\n      uVar8 = 0xdd - (int)param_5;\n      puVar2 = param_1;\n      puVar3 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);\n      unaff_s1 = uVar8;\n      puVar5 = param_2;\n      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }\nLAB_00043788:\n      puVar6 = auStack_60;\n      if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }\nLAB_0004382c:\n    local_50 = param_5;\n    (*(code *)PTR___gmpn_mulmid_basecase_000974ac)();\n    puVar2 = param_1;\n    puVar6 = auStack_60;\n  }\n  else {\n    unaff_s2 = param_3 - (int)param_5;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    puVar2 = local_30;\n    puVar6 = puVar14;\n    if (local_30 != (uint *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }\n  }" if (parenthesized_expression "((int)param_5 < 0x14)" ( (binary_expression "(int)param_5 < 0x14" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    if (0xdb < param_3) {\n      local_50 = param_5;\n      uVar8 = 0xdd - (int)param_5;\n      puVar2 = param_1;\n      puVar3 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);\n      unaff_s1 = uVar8;\n      puVar5 = param_2;\n      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }\nLAB_00043788:\n      puVar6 = auStack_60;\n      if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }\nLAB_0004382c:\n    local_50 = param_5;\n    (*(code *)PTR___gmpn_mulmid_basecase_000974ac)();\n    puVar2 = param_1;\n    puVar6 = auStack_60;\n  }" { (if_statement "if (0xdb < param_3) {\n      local_50 = param_5;\n      uVar8 = 0xdd - (int)param_5;\n      puVar2 = param_1;\n      puVar3 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);\n      unaff_s1 = uVar8;\n      puVar5 = param_2;\n      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }\nLAB_00043788:\n      puVar6 = auStack_60;\n      if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }" if (parenthesized_expression "(0xdb < param_3)" ( (binary_expression "0xdb < param_3" number_literal < identifier) )) (compound_statement "{\n      local_50 = param_5;\n      uVar8 = 0xdd - (int)param_5;\n      puVar2 = param_1;\n      puVar3 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);\n      unaff_s1 = uVar8;\n      puVar5 = param_2;\n      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }\nLAB_00043788:\n      puVar6 = auStack_60;\n      if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }" { (expression_statement "local_50 = param_5;" (assignment_expression "local_50 = param_5" identifier = identifier) ;) (expression_statement "uVar8 = 0xdd - (int)param_5;" (assignment_expression "uVar8 = 0xdd - (int)param_5" identifier = (binary_expression "0xdd - (int)param_5" number_literal - (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar2 = param_1;" (assignment_expression "puVar2 = param_1" identifier = identifier) ;) (expression_statement "puVar3 = param_2;" (assignment_expression "puVar3 = param_2" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc)" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" ( (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" * (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,0xdc)" ( identifier , identifier , number_literal ))) ;) (expression_statement "unaff_s1 = uVar8;" (assignment_expression "unaff_s1 = uVar8" identifier = identifier) ;) (expression_statement "puVar5 = param_2;" (assignment_expression "puVar5 = param_2" identifier = identifier) ;) (for_statement "for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }" for ( (assignment_expression "param_3 = param_3 - uVar8" identifier = (binary_expression "param_3 - uVar8" identifier - identifier)) ; (comma_expression "param_2 = puVar3, 0xdb < param_3" (assignment_expression "param_2 = puVar3" identifier = identifier) , (binary_expression "0xdb < param_3" number_literal < identifier)) ; (assignment_expression "param_3 = param_3 - uVar8" identifier = (binary_expression "param_3 - uVar8" identifier - identifier)) ) (compound_statement "{\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }" { (while_statement "while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }" { (expression_statement "param_1 = param_1 + uVar8;" (assignment_expression "param_1 = param_1 + uVar8" identifier = (binary_expression "param_1 + uVar8" identifier + identifier)) ;) (expression_statement "puVar5 = puVar5 + uVar8;" (assignment_expression "puVar5 = puVar5 + uVar8" identifier = (binary_expression "puVar5 + uVar8" identifier + identifier)) ;) (expression_statement "local_50 = param_5;" (assignment_expression "local_50 = param_5" identifier = identifier) ;) (expression_statement "unaff_s2 = *param_1;" (assignment_expression "unaff_s2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "unaff_s1 = param_1[1];" (assignment_expression "unaff_s1 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" ( (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" * (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,puVar5,0xdc,param_4)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "puVar2 = (uint *)*param_1;" (assignment_expression "puVar2 = (uint *)*param_1" identifier = (cast_expression "(uint *)*param_1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "param_2 = (uint *)(unaff_s2 + (int)puVar2);" (assignment_expression "param_2 = (uint *)(unaff_s2 + (int)puVar2)" identifier = (cast_expression "(uint *)(unaff_s2 + (int)puVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s2 + (int)puVar2)" ( (binary_expression "unaff_s2 + (int)puVar2" identifier + (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*param_1 = (uint)param_2;" (assignment_expression "*param_1 = (uint)param_2" (pointer_expression "*param_1" * identifier) = (cast_expression "(uint)param_2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);" (assignment_expression "puVar3 = (uint *)((param_2 < puVar2) + unaff_s1)" identifier = (cast_expression "(uint *)((param_2 < puVar2) + unaff_s1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((param_2 < puVar2) + unaff_s1)" ( (binary_expression "(param_2 < puVar2) + unaff_s1" (parenthesized_expression "(param_2 < puVar2)" ( (binary_expression "param_2 < puVar2" identifier < identifier) )) + identifier) )))) ;) (expression_statement "puVar2 = (uint *)((int)puVar3 + param_1[1]);" (assignment_expression "puVar2 = (uint *)((int)puVar3 + param_1[1])" identifier = (cast_expression "(uint *)((int)puVar3 + param_1[1])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar3 + param_1[1])" ( (binary_expression "(int)puVar3 + param_1[1]" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_1[1]" identifier [ number_literal ])) )))) ;) (expression_statement "param_1[1] = (uint)puVar2;" (assignment_expression "param_1[1] = (uint)puVar2" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (puVar3 <= puVar2) break;" if (parenthesized_expression "(puVar3 <= puVar2)" ( (binary_expression "puVar3 <= puVar2" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "puVar2 = param_1 + 1;" (assignment_expression "puVar2 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (do_statement "do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);" do (compound_statement "{\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          }" { (expression_statement "puVar2 = puVar2 + 1;" (assignment_expression "puVar2 = puVar2 + 1" identifier = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = *puVar2;" (assignment_expression "uVar4 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "*puVar2 = uVar4 + 1;" (assignment_expression "*puVar2 = uVar4 + 1" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar4 + 1 == 0)" ( (binary_expression "uVar4 + 1 == 0" (binary_expression "uVar4 + 1" identifier + number_literal) == number_literal) )) ;) (expression_statement "param_3 = param_3 - uVar8;" (assignment_expression "param_3 = param_3 - uVar8" identifier = (binary_expression "param_3 - uVar8" identifier - identifier)) ;) (if_statement "if (param_3 < 0xdc) goto LAB_00043788;" if (parenthesized_expression "(param_3 < 0xdc)" ( (binary_expression "param_3 < 0xdc" identifier < number_literal) )) (goto_statement "goto LAB_00043788;" goto statement_identifier ;)) })) (expression_statement "puVar3 = param_2;" (assignment_expression "puVar3 = param_2" identifier = identifier) ;) })) (labeled_statement "LAB_00043788:\n      puVar6 = auStack_60;" statement_identifier : (expression_statement "puVar6 = auStack_60;" (assignment_expression "puVar6 = auStack_60" identifier = identifier) ;)) (if_statement "if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }" if (parenthesized_expression "((int)param_5 <= param_3)" ( (binary_expression "(int)param_5 <= param_3" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }" { (expression_statement "local_50 = param_5;" (assignment_expression "local_50 = param_5" identifier = identifier) ;) (expression_statement "param_1 = param_1 + uVar8;" (assignment_expression "param_1 = param_1 + uVar8" identifier = (binary_expression "param_1 + uVar8" identifier + identifier)) ;) (expression_statement "param_2 = puVar5 + uVar8;" (assignment_expression "param_2 = puVar5 + uVar8" identifier = (binary_expression "puVar5 + uVar8" identifier + identifier)) ;) (expression_statement "unaff_s1 = *param_1;" (assignment_expression "unaff_s1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "unaff_s2 = param_1[1];" (assignment_expression "unaff_s2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" ( (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" * (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,param_3,param_4)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar5 = (uint *)*param_1;" (assignment_expression "puVar5 = (uint *)*param_1" identifier = (cast_expression "(uint *)*param_1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "puVar2 = (uint *)(unaff_s1 + (int)puVar5);" (assignment_expression "puVar2 = (uint *)(unaff_s1 + (int)puVar5)" identifier = (cast_expression "(uint *)(unaff_s1 + (int)puVar5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + (int)puVar5)" ( (binary_expression "unaff_s1 + (int)puVar5" identifier + (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*param_1 = (uint)puVar2;" (assignment_expression "*param_1 = (uint)puVar2" (pointer_expression "*param_1" * identifier) = (cast_expression "(uint)puVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar8 = (puVar2 < puVar5) + unaff_s2;" (assignment_expression "uVar8 = (puVar2 < puVar5) + unaff_s2" identifier = (binary_expression "(puVar2 < puVar5) + unaff_s2" (parenthesized_expression "(puVar2 < puVar5)" ( (binary_expression "puVar2 < puVar5" identifier < identifier) )) + identifier)) ;) (expression_statement "uVar4 = uVar8 + param_1[1];" (assignment_expression "uVar4 = uVar8 + param_1[1]" identifier = (binary_expression "uVar8 + param_1[1]" identifier + (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "param_1[1] = uVar4;" (assignment_expression "param_1[1] = uVar4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6 = auStack_60;" (assignment_expression "puVar6 = auStack_60" identifier = identifier) ;) (if_statement "if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }" if (parenthesized_expression "(uVar4 < uVar8)" ( (binary_expression "uVar4 < uVar8" identifier < identifier) )) (compound_statement "{\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }" { (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (do_statement "do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);" do (compound_statement "{\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          }" { (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = *param_1;" (assignment_expression "uVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*param_1 = uVar8 + 1;" (assignment_expression "*param_1 = uVar8 + 1" (pointer_expression "*param_1" * identifier) = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (expression_statement "puVar6 = auStack_60;" (assignment_expression "puVar6 = auStack_60" identifier = identifier) ;) }) while (parenthesized_expression "(uVar8 + 1 == 0)" ( (binary_expression "uVar8 + 1 == 0" (binary_expression "uVar8 + 1" identifier + number_literal) == number_literal) )) ;) })) })) (goto_statement "goto LAB_0004383c;" goto statement_identifier ;) })) (labeled_statement "LAB_0004382c:\n    local_50 = param_5;" statement_identifier : (expression_statement "local_50 = param_5;" (assignment_expression "local_50 = param_5" identifier = identifier) ;)) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)();" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)()" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" ( (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" * (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar2 = param_1;" (assignment_expression "puVar2 = param_1" identifier = identifier) ;) (expression_statement "puVar6 = auStack_60;" (assignment_expression "puVar6 = auStack_60" identifier = identifier) ;) }) (else_clause "else {\n    unaff_s2 = param_3 - (int)param_5;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    puVar2 = local_30;\n    puVar6 = puVar14;\n    if (local_30 != (uint *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }\n  }" else (compound_statement "{\n    unaff_s2 = param_3 - (int)param_5;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    puVar2 = local_30;\n    puVar6 = puVar14;\n    if (local_30 != (uint *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }\n  }" { (expression_statement "unaff_s2 = param_3 - (int)param_5;" (assignment_expression "unaff_s2 = param_3 - (int)param_5" identifier = (binary_expression "param_3 - (int)param_5" identifier - (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "unaff_s1 = unaff_s2 + 1;" (assignment_expression "unaff_s1 = unaff_s2 + 1" identifier = (binary_expression "unaff_s2 + 1" identifier + number_literal)) ;) (if_statement "if ((int)unaff_s1 < 0x14) {\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }" if (parenthesized_expression "((int)unaff_s1 < 0x14)" ( (binary_expression "(int)unaff_s1 < 0x14" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }" { (if_statement "if ((int)param_5 < 0xdc) goto LAB_0004382c;" if (parenthesized_expression "((int)param_5 < 0xdc)" ( (binary_expression "(int)param_5 < 0xdc" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0004382c;" goto statement_identifier ;)) (expression_statement "iVar10 = unaff_s2 + 3;" (assignment_expression "iVar10 = unaff_s2 + 3" identifier = (binary_expression "unaff_s2 + 3" identifier + number_literal)) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }" if (parenthesized_expression "((uint)(iVar10 * 4) < 0x7f01)" ( (binary_expression "(uint)(iVar10 * 4) < 0x7f01" (call_expression "(uint)(iVar10 * 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar10 * 4)" ( (binary_expression "iVar10 * 4" identifier * number_literal) ))) < number_literal) )) (compound_statement "{\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }" { (expression_statement "iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-(iVar10 * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "(iVar10 * 4 + 7U & 0xfffffff8)" ( (binary_expression "iVar10 * 4 + 7U & 0xfffffff8" (binary_expression "iVar10 * 4 + 7U" (binary_expression "iVar10 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "puVar6 = &stack0xffffffb8 + iVar1;" (assignment_expression "puVar6 = &stack0xffffffb8 + iVar1" identifier = (binary_expression "&stack0xffffffb8 + iVar1" (pointer_expression "&stack0xffffffb8" & identifier) + identifier)) ;) (expression_statement "puVar14 = auStack_60 + iVar1;" (assignment_expression "puVar14 = auStack_60 + iVar1" identifier = (binary_expression "auStack_60 + iVar1" identifier + identifier)) ;) }) (else_clause "else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }" else (compound_statement "{\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }" { (expression_statement "puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);" (assignment_expression "puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) (expression_statement "puVar14 = auStack_60;" (assignment_expression "puVar14 = auStack_60" identifier = identifier) ;) }))) (expression_statement "puVar9 = param_5 + -0x37;" (assignment_expression "puVar9 = param_5 + -0x37" identifier = (binary_expression "param_5 + -0x37" identifier + number_literal)) ;) (expression_statement "param_3 = param_3 - (int)puVar9;" (assignment_expression "param_3 = param_3 - (int)puVar9" identifier = (binary_expression "param_3 - (int)puVar9" identifier - (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_4 = param_4 + (int)param_5 * 4 + -0x370;" (assignment_expression "param_4 = param_4 + (int)param_5 * 4 + -0x370" identifier = (binary_expression "param_4 + (int)param_5 * 4 + -0x370" (binary_expression "param_4 + (int)param_5 * 4" identifier + (binary_expression "(int)param_5 * 4" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar14 + 0x10) = 0xdc;" (assignment_expression "*(undefined4 *)(puVar14 + 0x10) = 0xdc" (pointer_expression "*(undefined4 *)(puVar14 + 0x10)" * (cast_expression "(undefined4 *)(puVar14 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x10)" ( (binary_expression "puVar14 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar5 = param_2;" (assignment_expression "puVar5 = param_2" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" ( (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" * (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,param_3,param_4)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar2 = param_2;" (assignment_expression "puVar2 = param_2" identifier = identifier) ;) (for_statement "for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }" for ( ; (binary_expression "0xdb < (int)puVar9" number_literal < (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "puVar9 = puVar9 + -0x37" identifier = (binary_expression "puVar9 + -0x37" identifier + number_literal)) ) (compound_statement "{\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }" { (expression_statement "puVar2 = puVar2 + 0xdc;" (assignment_expression "puVar2 = puVar2 + 0xdc" identifier = (binary_expression "puVar2 + 0xdc" identifier + number_literal)) ;) (expression_statement "param_4 = param_4 + -0x370;" (assignment_expression "param_4 = param_4 + -0x370" identifier = (binary_expression "param_4 + -0x370" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar14 + 0x10) = 0xdc;" (assignment_expression "*(undefined4 *)(puVar14 + 0x10) = 0xdc" (pointer_expression "*(undefined4 *)(puVar14 + 0x10)" * (cast_expression "(undefined4 *)(puVar14 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x10)" ( (binary_expression "puVar14 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" ( (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" * (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,puVar2,param_3,param_4)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar5 = param_1;" (assignment_expression "puVar5 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);" (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10)" (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,puVar6,iVar10)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "param_2 = puVar5;" (assignment_expression "param_2 = puVar5" identifier = identifier) ;) (if_statement "if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }" if (parenthesized_expression "(puVar9 != (uint *)0x0)" ( (binary_expression "puVar9 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }" { (expression_statement "*(uint **)(puVar14 + 0x10) = puVar9;" (assignment_expression "*(uint **)(puVar14 + 0x10) = puVar9" (pointer_expression "*(uint **)(puVar14 + 0x10)" * (cast_expression "(uint **)(puVar14 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x10)" ( (binary_expression "puVar14 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4)" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" ( (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" * (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4)" ( identifier , (binary_expression "puVar2 + 0xdc" identifier + number_literal) , (binary_expression "(int)puVar9 + unaff_s2" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , (binary_expression "param_4 + (int)puVar9 * -4" identifier + (binary_expression "(int)puVar9 * -4" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))) ;) (expression_statement "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);" (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10)" (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,puVar6,iVar10)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "param_2 = param_1;" (assignment_expression "param_2 = param_1" identifier = identifier) ;) })) }) (else_clause "else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }" else (compound_statement "{\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }" { (if_statement "if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }" if (parenthesized_expression "((int)param_5 <= (int)unaff_s1)" ( (binary_expression "(int)param_5 <= (int)unaff_s1" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }" { (expression_statement "uVar8 = ((int)param_5 * 3 + 0x20) * 4;" (assignment_expression "uVar8 = ((int)param_5 * 3 + 0x20) * 4" identifier = (binary_expression "((int)param_5 * 3 + 0x20) * 4" (parenthesized_expression "((int)param_5 * 3 + 0x20)" ( (binary_expression "(int)param_5 * 3 + 0x20" (binary_expression "(int)param_5 * 3" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) )) * number_literal)) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }" if (parenthesized_expression "(uVar8 < 0x7f01)" ( (binary_expression "uVar8 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }" { (expression_statement "iVar10 = -(uVar8 + 7 & 0xfffffff8);" (assignment_expression "iVar10 = -(uVar8 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar8 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar8 + 7 & 0xfffffff8)" ( (binary_expression "uVar8 + 7 & 0xfffffff8" (binary_expression "uVar8 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar6 = auStack_60 + iVar10;" (assignment_expression "puVar6 = auStack_60 + iVar10" identifier = (binary_expression "auStack_60 + iVar10" identifier + identifier)) ;) (expression_statement "local_34 = &stack0xffffffb8 + iVar10;" (assignment_expression "local_34 = &stack0xffffffb8 + iVar10" identifier = (binary_expression "&stack0xffffffb8 + iVar10" (pointer_expression "&stack0xffffffb8" & identifier) + identifier)) ;) }) (else_clause "else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }" else (compound_statement "{\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }" { (expression_statement "local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);" (assignment_expression "local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) }))) (expression_statement "unaff_s1 = unaff_s1 - (int)param_5;" (assignment_expression "unaff_s1 = unaff_s1 - (int)param_5" identifier = (binary_expression "unaff_s1 - (int)param_5" identifier - (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(undefined1 **)(puVar6 + 0x10) = local_34;" (assignment_expression "*(undefined1 **)(puVar6 + 0x10) = local_34" (pointer_expression "*(undefined1 **)(puVar6 + 0x10)" * (cast_expression "(undefined1 **)(puVar6 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + 0x10)" ( (binary_expression "puVar6 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2 = param_2;" (assignment_expression "puVar2 = param_2" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);" (call_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)" ( (pointer_expression "*(code *)PTR___gmpn_toom42_mulmid_000973f0" * (cast_expression "(code *)PTR___gmpn_toom42_mulmid_000973f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,param_4,param_5)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar5 = param_2;" (assignment_expression "puVar5 = param_2" identifier = identifier) ;) (for_statement "for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }" for ( ; (comma_expression "param_2 = puVar2, (int)param_5 <= (int)unaff_s1" (assignment_expression "param_2 = puVar2" identifier = identifier) , (binary_expression "(int)param_5 <= (int)unaff_s1" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier))) ; (assignment_expression "unaff_s1 = unaff_s1 - (int)param_5" identifier = (binary_expression "unaff_s1 - (int)param_5" identifier - (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier))) ) (compound_statement "{\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }" { (while_statement "while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }" { (expression_statement "param_1 = param_1 + (int)param_5;" (assignment_expression "param_1 = param_1 + (int)param_5" identifier = (binary_expression "param_1 + (int)param_5" identifier + (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar5 = puVar5 + (int)param_5;" (assignment_expression "puVar5 = puVar5 + (int)param_5" identifier = (binary_expression "puVar5 + (int)param_5" identifier + (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(undefined1 **)(puVar6 + 0x10) = local_34;" (assignment_expression "*(undefined1 **)(puVar6 + 0x10) = local_34" (pointer_expression "*(undefined1 **)(puVar6 + 0x10)" * (cast_expression "(undefined1 **)(puVar6 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + 0x10)" ( (binary_expression "puVar6 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar8 = *param_1;" (assignment_expression "uVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "unaff_s2 = param_1[1];" (assignment_expression "unaff_s2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);" (call_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)" ( (pointer_expression "*(code *)PTR___gmpn_toom42_mulmid_000973f0" * (cast_expression "(code *)PTR___gmpn_toom42_mulmid_000973f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,puVar5,param_4,param_5)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar2 = (uint *)*param_1;" (assignment_expression "puVar2 = (uint *)*param_1" identifier = (cast_expression "(uint *)*param_1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "param_2 = (uint *)(uVar8 + (int)puVar2);" (assignment_expression "param_2 = (uint *)(uVar8 + (int)puVar2)" identifier = (cast_expression "(uint *)(uVar8 + (int)puVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + (int)puVar2)" ( (binary_expression "uVar8 + (int)puVar2" identifier + (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*param_1 = (uint)param_2;" (assignment_expression "*param_1 = (uint)param_2" (pointer_expression "*param_1" * identifier) = (cast_expression "(uint)param_2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar8 = (param_2 < puVar2) + unaff_s2;" (assignment_expression "uVar8 = (param_2 < puVar2) + unaff_s2" identifier = (binary_expression "(param_2 < puVar2) + unaff_s2" (parenthesized_expression "(param_2 < puVar2)" ( (binary_expression "param_2 < puVar2" identifier < identifier) )) + identifier)) ;) (expression_statement "uVar4 = uVar8 + param_1[1];" (assignment_expression "uVar4 = uVar8 + param_1[1]" identifier = (binary_expression "uVar8 + param_1[1]" identifier + (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "param_1[1] = uVar4;" (assignment_expression "param_1[1] = uVar4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar8 <= uVar4) break;" if (parenthesized_expression "(uVar8 <= uVar4)" ( (binary_expression "uVar8 <= uVar4" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "puVar2 = param_1 + 1;" (assignment_expression "puVar2 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (do_statement "do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);" do (compound_statement "{\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            }" { (expression_statement "puVar2 = puVar2 + 1;" (assignment_expression "puVar2 = puVar2 + 1" identifier = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = *puVar2;" (assignment_expression "uVar8 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "*puVar2 = uVar8 + 1;" (assignment_expression "*puVar2 = uVar8 + 1" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 + 1 == 0)" ( (binary_expression "uVar8 + 1 == 0" (binary_expression "uVar8 + 1" identifier + number_literal) == number_literal) )) ;) (expression_statement "unaff_s1 = unaff_s1 - (int)param_5;" (assignment_expression "unaff_s1 = unaff_s1 - (int)param_5" identifier = (binary_expression "unaff_s1 - (int)param_5" identifier - (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;" if (parenthesized_expression "((int)unaff_s1 < (int)param_5)" ( (binary_expression "(int)unaff_s1 < (int)param_5" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00043988;" goto statement_identifier ;)) })) (expression_statement "puVar2 = param_2;" (assignment_expression "puVar2 = param_2" identifier = identifier) ;) })) (labeled_statement "LAB_00043988:\n        puVar2 = local_30;" statement_identifier : (expression_statement "puVar2 = local_30;" (assignment_expression "puVar2 = local_30" identifier = identifier) ;)) (if_statement "if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }" if (parenthesized_expression "(local_30 != (uint *)0x0)" ( (binary_expression "local_30 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_00097614" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_00097614" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }" if (parenthesized_expression "(unaff_s1 != 0)" ( (binary_expression "unaff_s1 != 0" identifier != number_literal) )) (compound_statement "{\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }" { (expression_statement "*(uint **)(puVar6 + 0x10) = param_5;" (assignment_expression "*(uint **)(puVar6 + 0x10) = param_5" (pointer_expression "*(uint **)(puVar6 + 0x10)" * (cast_expression "(uint **)(puVar6 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + 0x10)" ( (binary_expression "puVar6 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar9 = param_1 + (int)param_5;" (assignment_expression "puVar9 = param_1 + (int)param_5" identifier = (binary_expression "param_1 + (int)param_5" identifier + (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar10 = unaff_s1 - 1;" (assignment_expression "iVar10 = unaff_s1 - 1" identifier = (binary_expression "unaff_s1 - 1" identifier - number_literal)) ;) (expression_statement "param_2 = puVar5 + (int)param_5;" (assignment_expression "param_2 = puVar5 + (int)param_5" identifier = (binary_expression "puVar5 + (int)param_5" identifier + (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "unaff_s1 = *puVar9;" (assignment_expression "unaff_s1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "unaff_s2 = puVar9[1];" (assignment_expression "unaff_s2 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "__gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);" (call_expression "__gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4)" identifier (argument_list "(puVar9,param_2,(int)param_5 + iVar10,param_4)" ( identifier , identifier , (binary_expression "(int)param_5 + iVar10" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , identifier ))) ;) (expression_statement "puVar5 = (uint *)*puVar9;" (assignment_expression "puVar5 = (uint *)*puVar9" identifier = (cast_expression "(uint *)*puVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ;) (expression_statement "puVar2 = (uint *)(unaff_s1 + (int)puVar5);" (assignment_expression "puVar2 = (uint *)(unaff_s1 + (int)puVar5)" identifier = (cast_expression "(uint *)(unaff_s1 + (int)puVar5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + (int)puVar5)" ( (binary_expression "unaff_s1 + (int)puVar5" identifier + (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*puVar9 = (uint)puVar2;" (assignment_expression "*puVar9 = (uint)puVar2" (pointer_expression "*puVar9" * identifier) = (cast_expression "(uint)puVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar8 = (puVar2 < puVar5) + unaff_s2;" (assignment_expression "uVar8 = (puVar2 < puVar5) + unaff_s2" identifier = (binary_expression "(puVar2 < puVar5) + unaff_s2" (parenthesized_expression "(puVar2 < puVar5)" ( (binary_expression "puVar2 < puVar5" identifier < identifier) )) + identifier)) ;) (expression_statement "uVar4 = uVar8 + puVar9[1];" (assignment_expression "uVar4 = uVar8 + puVar9[1]" identifier = (binary_expression "uVar8 + puVar9[1]" identifier + (subscript_expression "puVar9[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar9[1] = uVar4;" (assignment_expression "puVar9[1] = uVar4" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }" if (parenthesized_expression "(uVar4 < uVar8)" ( (binary_expression "uVar4 < uVar8" identifier < identifier) )) (compound_statement "{\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }" { (expression_statement "puVar5 = puVar9 + 1;" (assignment_expression "puVar5 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (do_statement "do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);" do (compound_statement "{\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            }" { (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = *puVar5;" (assignment_expression "uVar8 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "*puVar5 = uVar8 + 1;" (assignment_expression "*puVar5 = uVar8 + 1" (pointer_expression "*puVar5" * identifier) = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 + 1 == 0)" ( (binary_expression "uVar8 + 1 == 0" (binary_expression "uVar8 + 1" identifier + number_literal) == number_literal) )) ;) })) })) (goto_statement "goto LAB_0004383c;" goto statement_identifier ;) })) (expression_statement "iVar10 = unaff_s2 + 3;" (assignment_expression "iVar10 = unaff_s2 + 3" identifier = (binary_expression "unaff_s2 + 3" identifier + number_literal)) ;) (expression_statement "uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;" (assignment_expression "uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4" identifier = (binary_expression "(unaff_s1 * 3 + 0x20 + iVar10) * 4" (parenthesized_expression "(unaff_s1 * 3 + 0x20 + iVar10)" ( (binary_expression "unaff_s1 * 3 + 0x20 + iVar10" (binary_expression "unaff_s1 * 3 + 0x20" (binary_expression "unaff_s1 * 3" identifier * number_literal) + number_literal) + identifier) )) * number_literal)) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }" if (parenthesized_expression "(uVar8 < 0x7f01)" ( (binary_expression "uVar8 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }" { (expression_statement "iVar1 = -(uVar8 + 7 & 0xfffffff8);" (assignment_expression "iVar1 = -(uVar8 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar8 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar8 + 7 & 0xfffffff8)" ( (binary_expression "uVar8 + 7 & 0xfffffff8" (binary_expression "uVar8 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar14 = auStack_60 + iVar1;" (assignment_expression "puVar14 = auStack_60 + iVar1" identifier = (binary_expression "auStack_60 + iVar1" identifier + identifier)) ;) (expression_statement "puVar6 = &stack0xffffffb8 + iVar1;" (assignment_expression "puVar6 = &stack0xffffffb8 + iVar1" identifier = (binary_expression "&stack0xffffffb8 + iVar1" (pointer_expression "&stack0xffffffb8" & identifier) + identifier)) ;) }) (else_clause "else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }" else (compound_statement "{\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }" { (expression_statement "puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);" (assignment_expression "puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) }))) (expression_statement "puVar9 = (uint *)((int)param_5 - unaff_s1);" (assignment_expression "puVar9 = (uint *)((int)param_5 - unaff_s1)" identifier = (cast_expression "(uint *)((int)param_5 - unaff_s1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_5 - unaff_s1)" ( (binary_expression "(int)param_5 - unaff_s1" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "param_4 = param_4 + (int)puVar9 * 4;" (assignment_expression "param_4 = param_4 + (int)puVar9 * 4" identifier = (binary_expression "param_4 + (int)puVar9 * 4" identifier + (binary_expression "(int)puVar9 * 4" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "*(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;" (assignment_expression "*(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4" (pointer_expression "*(undefined1 **)(puVar14 + 0x10)" * (cast_expression "(undefined1 **)(puVar14 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x10)" ( (binary_expression "puVar14 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar6 + iVar10 * 4" identifier + (binary_expression "iVar10 * 4" identifier * number_literal))) ;) (expression_statement "puVar5 = param_2;" (assignment_expression "puVar5 = param_2" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);" (call_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1)" (parenthesized_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)" ( (pointer_expression "*(code *)PTR___gmpn_toom42_mulmid_000973f0" * (cast_expression "(code *)PTR___gmpn_toom42_mulmid_000973f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,param_4,unaff_s1)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar2 = param_2;" (assignment_expression "puVar2 = param_2" identifier = identifier) ;) (if_statement "if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }" if (parenthesized_expression "((int)unaff_s1 <= (int)puVar9)" ( (binary_expression "(int)unaff_s1 <= (int)puVar9" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }" { (do_statement "do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);" do (compound_statement "{\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        }" { (expression_statement "*(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;" (assignment_expression "*(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4" (pointer_expression "*(undefined1 **)(puVar14 + 0x10)" * (cast_expression "(undefined1 **)(puVar14 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x10)" ( (binary_expression "puVar14 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar6 + iVar10 * 4" identifier + (binary_expression "iVar10 * 4" identifier * number_literal))) ;) (expression_statement "puVar9 = (uint *)((int)puVar9 - unaff_s1);" (assignment_expression "puVar9 = (uint *)((int)puVar9 - unaff_s1)" identifier = (cast_expression "(uint *)((int)puVar9 - unaff_s1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 - unaff_s1)" ( (binary_expression "(int)puVar9 - unaff_s1" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "puVar2 = puVar2 + unaff_s1;" (assignment_expression "puVar2 = puVar2 + unaff_s1" identifier = (binary_expression "puVar2 + unaff_s1" identifier + identifier)) ;) (expression_statement "param_4 = param_4 + unaff_s1 * -4;" (assignment_expression "param_4 = param_4 + unaff_s1 * -4" identifier = (binary_expression "param_4 + unaff_s1 * -4" identifier + (binary_expression "unaff_s1 * -4" identifier * number_literal))) ;) (expression_statement "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);" (call_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1)" (parenthesized_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)" ( (pointer_expression "*(code *)PTR___gmpn_toom42_mulmid_000973f0" * (cast_expression "(code *)PTR___gmpn_toom42_mulmid_000973f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,puVar2,param_4,unaff_s1)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar5 = param_1;" (assignment_expression "puVar5 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);" (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10)" (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,puVar6,iVar10)" ( identifier , identifier , identifier , identifier ))) ;) }) while (parenthesized_expression "((int)unaff_s1 <= (int)puVar9)" ( (binary_expression "(int)unaff_s1 <= (int)puVar9" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "param_2 = puVar5;" (assignment_expression "param_2 = puVar5" identifier = identifier) ;) (if_statement "if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }" if (parenthesized_expression "(puVar9 != (uint *)0x0)" ( (binary_expression "puVar9 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }" { (expression_statement "*(uint **)(puVar14 + 0x10) = puVar9;" (assignment_expression "*(uint **)(puVar14 + 0x10) = puVar9" (pointer_expression "*(uint **)(puVar14 + 0x10)" * (cast_expression "(uint **)(puVar14 + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x10)" ( (binary_expression "puVar14 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "__gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);" (call_expression "__gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4)" identifier (argument_list "(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4)" ( identifier , (binary_expression "puVar2 + unaff_s1" identifier + identifier) , (binary_expression "(int)puVar9 + unaff_s2" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , (binary_expression "param_4 + (int)puVar9 * -4" identifier + (binary_expression "(int)puVar9 * -4" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))) ;) (expression_statement "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);" (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10)" (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,puVar6,iVar10)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "param_2 = param_1;" (assignment_expression "param_2 = param_1" identifier = identifier) ;) })) }))) (expression_statement "unaff_s2 = unaff_s2 + 3;" (assignment_expression "unaff_s2 = unaff_s2 + 3" identifier = (binary_expression "unaff_s2 + 3" identifier + number_literal)) ;) (expression_statement "puVar2 = local_30;" (assignment_expression "puVar2 = local_30" identifier = identifier) ;) (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (if_statement "if (local_30 != (uint *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }" if (parenthesized_expression "(local_30 != (uint *)0x0)" ( (binary_expression "local_30 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_00097614" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_00097614" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) }))) (labeled_statement "LAB_0004383c:\n  if (local_2c == *(int *)puVar11) {\n    return;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar11) {\n    return;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar11)" ( (binary_expression "local_2c == *(int *)puVar11" identifier == (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "uVar15 = 0x43cd4;" (assignment_expression "uVar15 = 0x43cd4" identifier = number_literal) ;) (expression_statement "puVar11 = PTR___stack_chk_fail_000974d0;" (assignment_expression "puVar11 = PTR___stack_chk_fail_000974d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000974d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000974d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000974d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000974d0" * (cast_expression "(code *)PTR___stack_chk_fail_000974d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar13 = puVar11 + 0x5b360;" (assignment_expression "puVar13 = puVar11 + 0x5b360" identifier = (binary_expression "puVar11 + 0x5b360" identifier + number_literal)) ;) (if_statement "if (param_2 != (uint *)0x0) {\n    pcVar7 = *(char **)(puVar11 + 0x534a8);\n    *(uint *)(puVar6 + -8) = unaff_s2;\n    *(uint **)(puVar6 + -0x10) = puVar9;\n    *(undefined **)(puVar6 + -0x18) = puVar13;\n    *(undefined4 *)(puVar6 + -4) = uVar15;\n    *(uint *)(puVar6 + -0xc) = unaff_s1;\n    if (*pcVar7 == '\0') {\n      pcVar12 = *(code **)(puVar11 + 0x53920);\n      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);\n      *pcVar7 = '\x01';\n      (*pcVar12)(uVar15);\n      puVar13 = *(undefined **)(puVar6 + -0x18);\n    }\n    iVar10 = *(int *)(puVar13 + -0x7dc4);\n    (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5);\n    puVar2 = puVar2 + (int)param_2 + -1;\n    uVar8 = *puVar2;\n    while (uVar8 == 0) {\n      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);\n      uVar8 = *puVar2;\n    }\n    return;\n  }" if (parenthesized_expression "(param_2 != (uint *)0x0)" ( (binary_expression "param_2 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar7 = *(char **)(puVar11 + 0x534a8);\n    *(uint *)(puVar6 + -8) = unaff_s2;\n    *(uint **)(puVar6 + -0x10) = puVar9;\n    *(undefined **)(puVar6 + -0x18) = puVar13;\n    *(undefined4 *)(puVar6 + -4) = uVar15;\n    *(uint *)(puVar6 + -0xc) = unaff_s1;\n    if (*pcVar7 == '\0') {\n      pcVar12 = *(code **)(puVar11 + 0x53920);\n      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);\n      *pcVar7 = '\x01';\n      (*pcVar12)(uVar15);\n      puVar13 = *(undefined **)(puVar6 + -0x18);\n    }\n    iVar10 = *(int *)(puVar13 + -0x7dc4);\n    (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5);\n    puVar2 = puVar2 + (int)param_2 + -1;\n    uVar8 = *puVar2;\n    while (uVar8 == 0) {\n      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);\n      uVar8 = *puVar2;\n    }\n    return;\n  }" { (expression_statement "pcVar7 = *(char **)(puVar11 + 0x534a8);" (assignment_expression "pcVar7 = *(char **)(puVar11 + 0x534a8)" identifier = (pointer_expression "*(char **)(puVar11 + 0x534a8)" * (cast_expression "(char **)(puVar11 + 0x534a8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x534a8)" ( (binary_expression "puVar11 + 0x534a8" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar6 + -8) = unaff_s2;" (assignment_expression "*(uint *)(puVar6 + -8) = unaff_s2" (pointer_expression "*(uint *)(puVar6 + -8)" * (cast_expression "(uint *)(puVar6 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -8)" ( (binary_expression "puVar6 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar6 + -0x10) = puVar9;" (assignment_expression "*(uint **)(puVar6 + -0x10) = puVar9" (pointer_expression "*(uint **)(puVar6 + -0x10)" * (cast_expression "(uint **)(puVar6 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x10)" ( (binary_expression "puVar6 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar6 + -0x18) = puVar13;" (assignment_expression "*(undefined **)(puVar6 + -0x18) = puVar13" (pointer_expression "*(undefined **)(puVar6 + -0x18)" * (cast_expression "(undefined **)(puVar6 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x18)" ( (binary_expression "puVar6 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar6 + -4) = uVar15;" (assignment_expression "*(undefined4 *)(puVar6 + -4) = uVar15" (pointer_expression "*(undefined4 *)(puVar6 + -4)" * (cast_expression "(undefined4 *)(puVar6 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -4)" ( (binary_expression "puVar6 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar6 + -0xc) = unaff_s1;" (assignment_expression "*(uint *)(puVar6 + -0xc) = unaff_s1" (pointer_expression "*(uint *)(puVar6 + -0xc)" * (cast_expression "(uint *)(puVar6 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xc)" ( (binary_expression "puVar6 + -0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*pcVar7 == '\0') {\n      pcVar12 = *(code **)(puVar11 + 0x53920);\n      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);\n      *pcVar7 = '\x01';\n      (*pcVar12)(uVar15);\n      puVar13 = *(undefined **)(puVar6 + -0x18);\n    }" if (parenthesized_expression "(*pcVar7 == '\0')" ( (binary_expression "*pcVar7 == '\0'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar12 = *(code **)(puVar11 + 0x53920);\n      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);\n      *pcVar7 = '\x01';\n      (*pcVar12)(uVar15);\n      puVar13 = *(undefined **)(puVar6 + -0x18);\n    }" { (expression_statement "pcVar12 = *(code **)(puVar11 + 0x53920);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x53920)" identifier = (pointer_expression "*(code **)(puVar11 + 0x53920)" * (cast_expression "(code **)(puVar11 + 0x53920)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x53920)" ( (binary_expression "puVar11 + 0x53920" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = *(undefined4 *)(puVar11 + 0x5359c);" (assignment_expression "uVar15 = *(undefined4 *)(puVar11 + 0x5359c)" identifier = (pointer_expression "*(undefined4 *)(puVar11 + 0x5359c)" * (cast_expression "(undefined4 *)(puVar11 + 0x5359c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x5359c)" ( (binary_expression "puVar11 + 0x5359c" identifier + number_literal) ))))) ;) (expression_statement "*pcVar7 = '\x01';" (assignment_expression "*pcVar7 = '\x01'" (pointer_expression "*pcVar7" * identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "(*pcVar12)(uVar15);" (call_expression "(*pcVar12)(uVar15)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(uVar15)" ( identifier ))) ;) (expression_statement "puVar13 = *(undefined **)(puVar6 + -0x18);" (assignment_expression "puVar13 = *(undefined **)(puVar6 + -0x18)" identifier = (pointer_expression "*(undefined **)(puVar6 + -0x18)" * (cast_expression "(undefined **)(puVar6 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x18)" ( (binary_expression "puVar6 + -0x18" identifier + number_literal) ))))) ;) })) (expression_statement "iVar10 = *(int *)(puVar13 + -0x7dc4);" (assignment_expression "iVar10 = *(int *)(puVar13 + -0x7dc4)" identifier = (pointer_expression "*(int *)(puVar13 + -0x7dc4)" * (cast_expression "(int *)(puVar13 + -0x7dc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x7dc4)" ( (binary_expression "puVar13 + -0x7dc4" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5);" (call_expression "(**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5)" (parenthesized_expression "(**(code **)(*(int *)(iVar10 + 0x10) + 4))" ( (pointer_expression "**(code **)(*(int *)(iVar10 + 0x10) + 4)" * (pointer_expression "*(code **)(*(int *)(iVar10 + 0x10) + 4)" * (cast_expression "(code **)(*(int *)(iVar10 + 0x10) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar10 + 0x10) + 4)" ( (binary_expression "*(int *)(iVar10 + 0x10) + 4" (pointer_expression "*(int *)(iVar10 + 0x10)" * (cast_expression "(int *)(iVar10 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar10,puVar2,(int)param_2 << 5)" ( identifier , identifier , (binary_expression "(int)param_2 << 5" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) ;) (expression_statement "puVar2 = puVar2 + (int)param_2 + -1;" (assignment_expression "puVar2 = puVar2 + (int)param_2 + -1" identifier = (binary_expression "puVar2 + (int)param_2 + -1" (binary_expression "puVar2 + (int)param_2" identifier + (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal)) ;) (expression_statement "uVar8 = *puVar2;" (assignment_expression "uVar8 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (while_statement "while (uVar8 == 0) {\n      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);\n      uVar8 = *puVar2;\n    }" while (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);\n      uVar8 = *puVar2;\n    }" { (expression_statement "(**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);" (call_expression "(**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20)" (parenthesized_expression "(**(code **)(*(int *)(iVar10 + 0x10) + 4))" ( (pointer_expression "**(code **)(*(int *)(iVar10 + 0x10) + 4)" * (pointer_expression "*(code **)(*(int *)(iVar10 + 0x10) + 4)" * (cast_expression "(code **)(*(int *)(iVar10 + 0x10) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar10 + 0x10) + 4)" ( (binary_expression "*(int *)(iVar10 + 0x10) + 4" (pointer_expression "*(int *)(iVar10 + 0x10)" * (cast_expression "(int *)(iVar10 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar10,puVar2,0x20)" ( identifier , identifier , number_literal ))) ;) (expression_statement "uVar8 = *puVar2;" (assignment_expression "uVar8 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ; (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression LIT < IDENT)) ; (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) ;) })) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT * LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_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 , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( ; (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) , (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_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 , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( ; (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT))) ; (assignment_expression IDENT = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) ;) })) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + LIT) + IDENT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_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 , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) , (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (return_statement return ;) })) (return_statement return ;) })))
(function_definition "void __gmpn_mulmid(uint *param_1,uint *param_2,int param_3,int param_4,uint *param_5)\n\n{\n  int iVar1;\n  uint *puVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint *puVar5;\n  undefined1 *puVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint unaff_s1;\n  int iVar10;\n  uint unaff_s2;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined *puVar13;\n  undefined1 *puVar14;\n  undefined4 uVar15;\n  undefined1 auStack_60 [16];\n  uint *local_50;\n  undefined1 *local_34;\n  uint *local_30;\n  int local_2c;\n  \n  puVar11 = PTR___stack_chk_guard_00097540;\n  puVar14 = auStack_60;\n  puVar6 = auStack_60;\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  puVar9 = param_5;\n  if ((int)param_5 < 0x14) {\n    if (0xdb < param_3) {\n      local_50 = param_5;\n      uVar8 = 0xdd - (int)param_5;\n      puVar2 = param_1;\n      puVar3 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);\n      unaff_s1 = uVar8;\n      puVar5 = param_2;\n      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }\nLAB_00043788:\n      puVar6 = auStack_60;\n      if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }\nLAB_0004382c:\n    local_50 = param_5;\n    (*(code *)PTR___gmpn_mulmid_basecase_000974ac)();\n    puVar2 = param_1;\n    puVar6 = auStack_60;\n  }\n  else {\n    unaff_s2 = param_3 - (int)param_5;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    puVar2 = local_30;\n    puVar6 = puVar14;\n    if (local_30 != (uint *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }\n  }\nLAB_0004383c:\n  if (local_2c == *(int *)puVar11) {\n    return;\n  }\n  uVar15 = 0x43cd4;\n  puVar11 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  puVar13 = puVar11 + 0x5b360;\n  if (param_2 != (uint *)0x0) {\n    pcVar7 = *(char **)(puVar11 + 0x534a8);\n    *(uint *)(puVar6 + -8) = unaff_s2;\n    *(uint **)(puVar6 + -0x10) = puVar9;\n    *(undefined **)(puVar6 + -0x18) = puVar13;\n    *(undefined4 *)(puVar6 + -4) = uVar15;\n    *(uint *)(puVar6 + -0xc) = unaff_s1;\n    if (*pcVar7 == '\0') {\n      pcVar12 = *(code **)(puVar11 + 0x53920);\n      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);\n      *pcVar7 = '\x01';\n      (*pcVar12)(uVar15);\n      puVar13 = *(undefined **)(puVar6 + -0x18);\n    }\n    iVar10 = *(int *)(puVar13 + -0x7dc4);\n    (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5);\n    puVar2 = puVar2 + (int)param_2 + -1;\n    uVar8 = *puVar2;\n    while (uVar8 == 0) {\n      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);\n      uVar8 = *puVar2;\n    }\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "__gmpn_mulmid(uint *param_1,uint *param_2,int param_3,int param_4,uint *param_5)" (identifier "__gmpn_mulmid") (parameter_list "(uint *param_1,uint *param_2,int param_3,int param_4,uint *param_5)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint *param_2" (type_identifier "uint") (pointer_declarator "*param_2" (* "*") (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 "uint *param_5" (type_identifier "uint") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) () ")"))) (compound_statement "{\n  int iVar1;\n  uint *puVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint *puVar5;\n  undefined1 *puVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint unaff_s1;\n  int iVar10;\n  uint unaff_s2;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined *puVar13;\n  undefined1 *puVar14;\n  undefined4 uVar15;\n  undefined1 auStack_60 [16];\n  uint *local_50;\n  undefined1 *local_34;\n  uint *local_30;\n  int local_2c;\n  \n  puVar11 = PTR___stack_chk_guard_00097540;\n  puVar14 = auStack_60;\n  puVar6 = auStack_60;\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  puVar9 = param_5;\n  if ((int)param_5 < 0x14) {\n    if (0xdb < param_3) {\n      local_50 = param_5;\n      uVar8 = 0xdd - (int)param_5;\n      puVar2 = param_1;\n      puVar3 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);\n      unaff_s1 = uVar8;\n      puVar5 = param_2;\n      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }\nLAB_00043788:\n      puVar6 = auStack_60;\n      if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }\nLAB_0004382c:\n    local_50 = param_5;\n    (*(code *)PTR___gmpn_mulmid_basecase_000974ac)();\n    puVar2 = param_1;\n    puVar6 = auStack_60;\n  }\n  else {\n    unaff_s2 = param_3 - (int)param_5;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    puVar2 = local_30;\n    puVar6 = puVar14;\n    if (local_30 != (uint *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }\n  }\nLAB_0004383c:\n  if (local_2c == *(int *)puVar11) {\n    return;\n  }\n  uVar15 = 0x43cd4;\n  puVar11 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  puVar13 = puVar11 + 0x5b360;\n  if (param_2 != (uint *)0x0) {\n    pcVar7 = *(char **)(puVar11 + 0x534a8);\n    *(uint *)(puVar6 + -8) = unaff_s2;\n    *(uint **)(puVar6 + -0x10) = puVar9;\n    *(undefined **)(puVar6 + -0x18) = puVar13;\n    *(undefined4 *)(puVar6 + -4) = uVar15;\n    *(uint *)(puVar6 + -0xc) = unaff_s1;\n    if (*pcVar7 == '\0') {\n      pcVar12 = *(code **)(puVar11 + 0x53920);\n      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);\n      *pcVar7 = '\x01';\n      (*pcVar12)(uVar15);\n      puVar13 = *(undefined **)(puVar6 + -0x18);\n    }\n    iVar10 = *(int *)(puVar13 + -0x7dc4);\n    (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5);\n    puVar2 = puVar2 + (int)param_2 + -1;\n    uVar8 = *puVar2;\n    while (uVar8 == 0) {\n      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);\n      uVar8 = *puVar2;\n    }\n    return;\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint *puVar2;" (type_identifier "uint") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "uint *puVar3;" (type_identifier "uint") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint *puVar5;" (type_identifier "uint") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined1 *puVar6;" (type_identifier "undefined1") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint *puVar9;" (type_identifier "uint") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "uint unaff_s1;" (type_identifier "uint") (identifier "unaff_s1") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "uint unaff_s2;" (type_identifier "uint") (identifier "unaff_s2") (; ";")) (declaration "undefined *puVar11;" (type_identifier "undefined") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "code *pcVar12;" (type_identifier "code") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "undefined *puVar13;" (type_identifier "undefined") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined1 *puVar14;" (type_identifier "undefined1") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "undefined1 auStack_60 [16];" (type_identifier "undefined1") (array_declarator "auStack_60 [16]" (identifier "auStack_60") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "uint *local_50;" (type_identifier "uint") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "undefined1 *local_34;" (type_identifier "undefined1") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "uint *local_30;" (type_identifier "uint") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar11 = PTR___stack_chk_guard_00097540;" (assignment_expression "puVar11 = PTR___stack_chk_guard_00097540" (identifier "puVar11") (= "=") (identifier "PTR___stack_chk_guard_00097540")) (; ";")) (expression_statement "puVar14 = auStack_60;" (assignment_expression "puVar14 = auStack_60" (identifier "puVar14") (= "=") (identifier "auStack_60")) (; ";")) (expression_statement "puVar6 = auStack_60;" (assignment_expression "puVar6 = auStack_60" (identifier "puVar6") (= "=") (identifier "auStack_60")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00097540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00097540" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00097540" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00097540" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00097540")))) (; ";")) (expression_statement "puVar9 = param_5;" (assignment_expression "puVar9 = param_5" (identifier "puVar9") (= "=") (identifier "param_5")) (; ";")) (if_statement "if ((int)param_5 < 0x14) {\n    if (0xdb < param_3) {\n      local_50 = param_5;\n      uVar8 = 0xdd - (int)param_5;\n      puVar2 = param_1;\n      puVar3 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);\n      unaff_s1 = uVar8;\n      puVar5 = param_2;\n      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }\nLAB_00043788:\n      puVar6 = auStack_60;\n      if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }\nLAB_0004382c:\n    local_50 = param_5;\n    (*(code *)PTR___gmpn_mulmid_basecase_000974ac)();\n    puVar2 = param_1;\n    puVar6 = auStack_60;\n  }\n  else {\n    unaff_s2 = param_3 - (int)param_5;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    puVar2 = local_30;\n    puVar6 = puVar14;\n    if (local_30 != (uint *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }\n  }" (if "if") (parenthesized_expression "((int)param_5 < 0x14)" (( "(") (binary_expression "(int)param_5 < 0x14" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (< "<") (number_literal "0x14")) () ")")) (compound_statement "{\n    if (0xdb < param_3) {\n      local_50 = param_5;\n      uVar8 = 0xdd - (int)param_5;\n      puVar2 = param_1;\n      puVar3 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);\n      unaff_s1 = uVar8;\n      puVar5 = param_2;\n      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }\nLAB_00043788:\n      puVar6 = auStack_60;\n      if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }\nLAB_0004382c:\n    local_50 = param_5;\n    (*(code *)PTR___gmpn_mulmid_basecase_000974ac)();\n    puVar2 = param_1;\n    puVar6 = auStack_60;\n  }" ({ "{") (if_statement "if (0xdb < param_3) {\n      local_50 = param_5;\n      uVar8 = 0xdd - (int)param_5;\n      puVar2 = param_1;\n      puVar3 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);\n      unaff_s1 = uVar8;\n      puVar5 = param_2;\n      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }\nLAB_00043788:\n      puVar6 = auStack_60;\n      if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }" (if "if") (parenthesized_expression "(0xdb < param_3)" (( "(") (binary_expression "0xdb < param_3" (number_literal "0xdb") (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n      local_50 = param_5;\n      uVar8 = 0xdd - (int)param_5;\n      puVar2 = param_1;\n      puVar3 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);\n      unaff_s1 = uVar8;\n      puVar5 = param_2;\n      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }\nLAB_00043788:\n      puVar6 = auStack_60;\n      if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }\n      goto LAB_0004383c;\n    }" ({ "{") (expression_statement "local_50 = param_5;" (assignment_expression "local_50 = param_5" (identifier "local_50") (= "=") (identifier "param_5")) (; ";")) (expression_statement "uVar8 = 0xdd - (int)param_5;" (assignment_expression "uVar8 = 0xdd - (int)param_5" (identifier "uVar8") (= "=") (binary_expression "0xdd - (int)param_5" (number_literal "0xdd") (- "-") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")))) (; ";")) (expression_statement "puVar2 = param_1;" (assignment_expression "puVar2 = param_1" (identifier "puVar2") (= "=") (identifier "param_1")) (; ";")) (expression_statement "puVar3 = param_2;" (assignment_expression "puVar3 = param_2" (identifier "puVar3") (= "=") (identifier "param_2")) (; ";")) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc);" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,0xdc)" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" (* "*") (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mulmid_basecase_000974ac"))) () ")")) (argument_list "(param_1,param_2,0xdc)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0xdc") () ")"))) (; ";")) (expression_statement "unaff_s1 = uVar8;" (assignment_expression "unaff_s1 = uVar8" (identifier "unaff_s1") (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar5 = param_2;" (assignment_expression "puVar5 = param_2" (identifier "puVar5") (= "=") (identifier "param_2")) (; ";")) (for_statement "for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }" (for "for") (( "(") (assignment_expression "param_3 = param_3 - uVar8" (identifier "param_3") (= "=") (binary_expression "param_3 - uVar8" (identifier "param_3") (- "-") (identifier "uVar8"))) (; ";") (comma_expression "param_2 = puVar3, 0xdb < param_3" (assignment_expression "param_2 = puVar3" (identifier "param_2") (= "=") (identifier "puVar3")) (, ",") (binary_expression "0xdb < param_3" (number_literal "0xdb") (< "<") (identifier "param_3"))) (; ";") (assignment_expression "param_3 = param_3 - uVar8" (identifier "param_3") (= "=") (binary_expression "param_3 - uVar8" (identifier "param_3") (- "-") (identifier "uVar8"))) () ")") (compound_statement "{\n        while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }\n        puVar3 = param_2;\n      }" ({ "{") (while_statement "while( true ) {\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          param_1 = param_1 + uVar8;\n          puVar5 = puVar5 + uVar8;\n          local_50 = param_5;\n          unaff_s2 = *param_1;\n          unaff_s1 = param_1[1];\n          (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);\n          puVar2 = (uint *)*param_1;\n          param_2 = (uint *)(unaff_s2 + (int)puVar2);\n          *param_1 = (uint)param_2;\n          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);\n          puVar2 = (uint *)((int)puVar3 + param_1[1]);\n          param_1[1] = (uint)puVar2;\n          if (puVar3 <= puVar2) break;\n          puVar2 = param_1 + 1;\n          do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);\n          param_3 = param_3 - uVar8;\n          if (param_3 < 0xdc) goto LAB_00043788;\n        }" ({ "{") (expression_statement "param_1 = param_1 + uVar8;" (assignment_expression "param_1 = param_1 + uVar8" (identifier "param_1") (= "=") (binary_expression "param_1 + uVar8" (identifier "param_1") (+ "+") (identifier "uVar8"))) (; ";")) (expression_statement "puVar5 = puVar5 + uVar8;" (assignment_expression "puVar5 = puVar5 + uVar8" (identifier "puVar5") (= "=") (binary_expression "puVar5 + uVar8" (identifier "puVar5") (+ "+") (identifier "uVar8"))) (; ";")) (expression_statement "local_50 = param_5;" (assignment_expression "local_50 = param_5" (identifier "local_50") (= "=") (identifier "param_5")) (; ";")) (expression_statement "unaff_s2 = *param_1;" (assignment_expression "unaff_s2 = *param_1" (identifier "unaff_s2") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "unaff_s1 = param_1[1];" (assignment_expression "unaff_s1 = param_1[1]" (identifier "unaff_s1") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4);" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,puVar5,0xdc,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" (* "*") (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mulmid_basecase_000974ac"))) () ")")) (argument_list "(param_1,puVar5,0xdc,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "puVar5") (, ",") (number_literal "0xdc") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "puVar2 = (uint *)*param_1;" (assignment_expression "puVar2 = (uint *)*param_1" (identifier "puVar2") (= "=") (cast_expression "(uint *)*param_1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "param_2 = (uint *)(unaff_s2 + (int)puVar2);" (assignment_expression "param_2 = (uint *)(unaff_s2 + (int)puVar2)" (identifier "param_2") (= "=") (cast_expression "(uint *)(unaff_s2 + (int)puVar2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s2 + (int)puVar2)" (( "(") (binary_expression "unaff_s2 + (int)puVar2" (identifier "unaff_s2") (+ "+") (cast_expression "(int)puVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar2"))) () ")")))) (; ";")) (expression_statement "*param_1 = (uint)param_2;" (assignment_expression "*param_1 = (uint)param_2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(uint)param_2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_2"))) (; ";")) (expression_statement "puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);" (assignment_expression "puVar3 = (uint *)((param_2 < puVar2) + unaff_s1)" (identifier "puVar3") (= "=") (cast_expression "(uint *)((param_2 < puVar2) + unaff_s1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((param_2 < puVar2) + unaff_s1)" (( "(") (binary_expression "(param_2 < puVar2) + unaff_s1" (parenthesized_expression "(param_2 < puVar2)" (( "(") (binary_expression "param_2 < puVar2" (identifier "param_2") (< "<") (identifier "puVar2")) () ")")) (+ "+") (identifier "unaff_s1")) () ")")))) (; ";")) (expression_statement "puVar2 = (uint *)((int)puVar3 + param_1[1]);" (assignment_expression "puVar2 = (uint *)((int)puVar3 + param_1[1])" (identifier "puVar2") (= "=") (cast_expression "(uint *)((int)puVar3 + param_1[1])" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar3 + param_1[1])" (( "(") (binary_expression "(int)puVar3 + param_1[1]" (cast_expression "(int)puVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar3")) (+ "+") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) () ")")))) (; ";")) (expression_statement "param_1[1] = (uint)puVar2;" (assignment_expression "param_1[1] = (uint)puVar2" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint)puVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar2"))) (; ";")) (if_statement "if (puVar3 <= puVar2) break;" (if "if") (parenthesized_expression "(puVar3 <= puVar2)" (( "(") (binary_expression "puVar3 <= puVar2" (identifier "puVar3") (<= "<=") (identifier "puVar2")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar2 = param_1 + 1;" (assignment_expression "puVar2 = param_1 + 1" (identifier "puVar2") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          } while (uVar4 + 1 == 0);" (do "do") (compound_statement "{\n            puVar2 = puVar2 + 1;\n            uVar4 = *puVar2;\n            *puVar2 = uVar4 + 1;\n          }" ({ "{") (expression_statement "puVar2 = puVar2 + 1;" (assignment_expression "puVar2 = puVar2 + 1" (identifier "puVar2") (= "=") (binary_expression "puVar2 + 1" (identifier "puVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar4 = *puVar2;" (assignment_expression "uVar4 = *puVar2" (identifier "uVar4") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "*puVar2 = uVar4 + 1;" (assignment_expression "*puVar2 = uVar4 + 1" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (binary_expression "uVar4 + 1" (identifier "uVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar4 + 1 == 0)" (( "(") (binary_expression "uVar4 + 1 == 0" (binary_expression "uVar4 + 1" (identifier "uVar4") (+ "+") (number_literal "1")) (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "param_3 = param_3 - uVar8;" (assignment_expression "param_3 = param_3 - uVar8" (identifier "param_3") (= "=") (binary_expression "param_3 - uVar8" (identifier "param_3") (- "-") (identifier "uVar8"))) (; ";")) (if_statement "if (param_3 < 0xdc) goto LAB_00043788;" (if "if") (parenthesized_expression "(param_3 < 0xdc)" (( "(") (binary_expression "param_3 < 0xdc" (identifier "param_3") (< "<") (number_literal "0xdc")) () ")")) (goto_statement "goto LAB_00043788;" (goto "goto") (statement_identifier "LAB_00043788") (; ";"))) (} "}"))) (expression_statement "puVar3 = param_2;" (assignment_expression "puVar3 = param_2" (identifier "puVar3") (= "=") (identifier "param_2")) (; ";")) (} "}"))) (labeled_statement "LAB_00043788:\n      puVar6 = auStack_60;" (statement_identifier "LAB_00043788") (: ":") (expression_statement "puVar6 = auStack_60;" (assignment_expression "puVar6 = auStack_60" (identifier "puVar6") (= "=") (identifier "auStack_60")) (; ";"))) (if_statement "if ((int)param_5 <= param_3) {\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }" (if "if") (parenthesized_expression "((int)param_5 <= param_3)" (( "(") (binary_expression "(int)param_5 <= param_3" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (<= "<=") (identifier "param_3")) () ")")) (compound_statement "{\n        local_50 = param_5;\n        param_1 = param_1 + uVar8;\n        param_2 = puVar5 + uVar8;\n        unaff_s1 = *param_1;\n        unaff_s2 = param_1[1];\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n        puVar5 = (uint *)*param_1;\n        puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n        *param_1 = (uint)puVar2;\n        uVar8 = (puVar2 < puVar5) + unaff_s2;\n        uVar4 = uVar8 + param_1[1];\n        param_1[1] = uVar4;\n        puVar6 = auStack_60;\n        if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }\n      }" ({ "{") (expression_statement "local_50 = param_5;" (assignment_expression "local_50 = param_5" (identifier "local_50") (= "=") (identifier "param_5")) (; ";")) (expression_statement "param_1 = param_1 + uVar8;" (assignment_expression "param_1 = param_1 + uVar8" (identifier "param_1") (= "=") (binary_expression "param_1 + uVar8" (identifier "param_1") (+ "+") (identifier "uVar8"))) (; ";")) (expression_statement "param_2 = puVar5 + uVar8;" (assignment_expression "param_2 = puVar5 + uVar8" (identifier "param_2") (= "=") (binary_expression "puVar5 + uVar8" (identifier "puVar5") (+ "+") (identifier "uVar8"))) (; ";")) (expression_statement "unaff_s1 = *param_1;" (assignment_expression "unaff_s1 = *param_1" (identifier "unaff_s1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "unaff_s2 = param_1[1];" (assignment_expression "unaff_s2 = param_1[1]" (identifier "unaff_s2") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" (* "*") (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mulmid_basecase_000974ac"))) () ")")) (argument_list "(param_1,param_2,param_3,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "puVar5 = (uint *)*param_1;" (assignment_expression "puVar5 = (uint *)*param_1" (identifier "puVar5") (= "=") (cast_expression "(uint *)*param_1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "puVar2 = (uint *)(unaff_s1 + (int)puVar5);" (assignment_expression "puVar2 = (uint *)(unaff_s1 + (int)puVar5)" (identifier "puVar2") (= "=") (cast_expression "(uint *)(unaff_s1 + (int)puVar5)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s1 + (int)puVar5)" (( "(") (binary_expression "unaff_s1 + (int)puVar5" (identifier "unaff_s1") (+ "+") (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5"))) () ")")))) (; ";")) (expression_statement "*param_1 = (uint)puVar2;" (assignment_expression "*param_1 = (uint)puVar2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(uint)puVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar2"))) (; ";")) (expression_statement "uVar8 = (puVar2 < puVar5) + unaff_s2;" (assignment_expression "uVar8 = (puVar2 < puVar5) + unaff_s2" (identifier "uVar8") (= "=") (binary_expression "(puVar2 < puVar5) + unaff_s2" (parenthesized_expression "(puVar2 < puVar5)" (( "(") (binary_expression "puVar2 < puVar5" (identifier "puVar2") (< "<") (identifier "puVar5")) () ")")) (+ "+") (identifier "unaff_s2"))) (; ";")) (expression_statement "uVar4 = uVar8 + param_1[1];" (assignment_expression "uVar4 = uVar8 + param_1[1]" (identifier "uVar4") (= "=") (binary_expression "uVar8 + param_1[1]" (identifier "uVar8") (+ "+") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "param_1[1] = uVar4;" (assignment_expression "param_1[1] = uVar4" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar6 = auStack_60;" (assignment_expression "puVar6 = auStack_60" (identifier "puVar6") (= "=") (identifier "auStack_60")) (; ";")) (if_statement "if (uVar4 < uVar8) {\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }" (if "if") (parenthesized_expression "(uVar4 < uVar8)" (( "(") (binary_expression "uVar4 < uVar8" (identifier "uVar4") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n          param_1 = param_1 + 1;\n          do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);\n        }" ({ "{") (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          } while (uVar8 + 1 == 0);" (do "do") (compound_statement "{\n            param_1 = param_1 + 1;\n            uVar8 = *param_1;\n            *param_1 = uVar8 + 1;\n            puVar6 = auStack_60;\n          }" ({ "{") (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar8 = *param_1;" (assignment_expression "uVar8 = *param_1" (identifier "uVar8") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "*param_1 = uVar8 + 1;" (assignment_expression "*param_1 = uVar8 + 1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar6 = auStack_60;" (assignment_expression "puVar6 = auStack_60" (identifier "puVar6") (= "=") (identifier "auStack_60")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar8 + 1 == 0)" (( "(") (binary_expression "uVar8 + 1 == 0" (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1")) (== "==") (number_literal "0")) () ")")) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_0004383c;" (goto "goto") (statement_identifier "LAB_0004383c") (; ";")) (} "}"))) (labeled_statement "LAB_0004382c:\n    local_50 = param_5;" (statement_identifier "LAB_0004382c") (: ":") (expression_statement "local_50 = param_5;" (assignment_expression "local_50 = param_5" (identifier "local_50") (= "=") (identifier "param_5")) (; ";"))) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)();" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)()" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" (* "*") (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mulmid_basecase_000974ac"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar2 = param_1;" (assignment_expression "puVar2 = param_1" (identifier "puVar2") (= "=") (identifier "param_1")) (; ";")) (expression_statement "puVar6 = auStack_60;" (assignment_expression "puVar6 = auStack_60" (identifier "puVar6") (= "=") (identifier "auStack_60")) (; ";")) (} "}")) (else_clause "else {\n    unaff_s2 = param_3 - (int)param_5;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    puVar2 = local_30;\n    puVar6 = puVar14;\n    if (local_30 != (uint *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }\n  }" (else "else") (compound_statement "{\n    unaff_s2 = param_3 - (int)param_5;\n    unaff_s1 = unaff_s2 + 1;\n    if ((int)unaff_s1 < 0x14) {\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    unaff_s2 = unaff_s2 + 3;\n    puVar2 = local_30;\n    puVar6 = puVar14;\n    if (local_30 != (uint *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }\n  }" ({ "{") (expression_statement "unaff_s2 = param_3 - (int)param_5;" (assignment_expression "unaff_s2 = param_3 - (int)param_5" (identifier "unaff_s2") (= "=") (binary_expression "param_3 - (int)param_5" (identifier "param_3") (- "-") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")))) (; ";")) (expression_statement "unaff_s1 = unaff_s2 + 1;" (assignment_expression "unaff_s1 = unaff_s2 + 1" (identifier "unaff_s1") (= "=") (binary_expression "unaff_s2 + 1" (identifier "unaff_s2") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((int)unaff_s1 < 0x14) {\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }\n    else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }" (if "if") (parenthesized_expression "((int)unaff_s1 < 0x14)" (( "(") (binary_expression "(int)unaff_s1 < 0x14" (cast_expression "(int)unaff_s1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s1")) (< "<") (number_literal "0x14")) () ")")) (compound_statement "{\n      if ((int)param_5 < 0xdc) goto LAB_0004382c;\n      iVar10 = unaff_s2 + 3;\n      local_30 = (uint *)0x0;\n      if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }\n      puVar9 = param_5 + -0x37;\n      param_3 = param_3 - (int)puVar9;\n      param_4 = param_4 + (int)param_5 * 4 + -0x370;\n      *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);\n      puVar2 = param_2;\n      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }" ({ "{") (if_statement "if ((int)param_5 < 0xdc) goto LAB_0004382c;" (if "if") (parenthesized_expression "((int)param_5 < 0xdc)" (( "(") (binary_expression "(int)param_5 < 0xdc" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (< "<") (number_literal "0xdc")) () ")")) (goto_statement "goto LAB_0004382c;" (goto "goto") (statement_identifier "LAB_0004382c") (; ";"))) (expression_statement "iVar10 = unaff_s2 + 3;" (assignment_expression "iVar10 = unaff_s2 + 3" (identifier "iVar10") (= "=") (binary_expression "unaff_s2 + 3" (identifier "unaff_s2") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" (identifier "local_30") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((uint)(iVar10 * 4) < 0x7f01) {\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }" (if "if") (parenthesized_expression "((uint)(iVar10 * 4) < 0x7f01)" (( "(") (binary_expression "(uint)(iVar10 * 4) < 0x7f01" (call_expression "(uint)(iVar10 * 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar10 * 4)" (( "(") (binary_expression "iVar10 * 4" (identifier "iVar10") (* "*") (number_literal "4")) () ")"))) (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);\n        puVar6 = &stack0xffffffb8 + iVar1;\n        puVar14 = auStack_60 + iVar1;\n      }" ({ "{") (expression_statement "iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8)" (identifier "iVar1") (= "=") (unary_expression "-(iVar10 * 4 + 7U & 0xfffffff8)" (- "-") (parenthesized_expression "(iVar10 * 4 + 7U & 0xfffffff8)" (( "(") (binary_expression "iVar10 * 4 + 7U & 0xfffffff8" (binary_expression "iVar10 * 4 + 7U" (binary_expression "iVar10 * 4" (identifier "iVar10") (* "*") (number_literal "4")) (+ "+") (number_literal "7U")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar6 = &stack0xffffffb8 + iVar1;" (assignment_expression "puVar6 = &stack0xffffffb8 + iVar1" (identifier "puVar6") (= "=") (binary_expression "&stack0xffffffb8 + iVar1" (pointer_expression "&stack0xffffffb8" (& "&") (identifier "stack0xffffffb8")) (+ "+") (identifier "iVar1"))) (; ";")) (expression_statement "puVar14 = auStack_60 + iVar1;" (assignment_expression "puVar14 = auStack_60 + iVar1" (identifier "puVar14") (= "=") (binary_expression "auStack_60 + iVar1" (identifier "auStack_60") (+ "+") (identifier "iVar1"))) (; ";")) (} "}")) (else_clause "else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }" (else "else") (compound_statement "{\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        puVar14 = auStack_60;\n      }" ({ "{") (expression_statement "puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);" (assignment_expression "puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (identifier "puVar6") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_alloc_000972f0"))) () ")")) (argument_list "(&local_30)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))))) (; ";")) (expression_statement "puVar14 = auStack_60;" (assignment_expression "puVar14 = auStack_60" (identifier "puVar14") (= "=") (identifier "auStack_60")) (; ";")) (} "}")))) (expression_statement "puVar9 = param_5 + -0x37;" (assignment_expression "puVar9 = param_5 + -0x37" (identifier "puVar9") (= "=") (binary_expression "param_5 + -0x37" (identifier "param_5") (+ "+") (number_literal "-0x37"))) (; ";")) (expression_statement "param_3 = param_3 - (int)puVar9;" (assignment_expression "param_3 = param_3 - (int)puVar9" (identifier "param_3") (= "=") (binary_expression "param_3 - (int)puVar9" (identifier "param_3") (- "-") (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")))) (; ";")) (expression_statement "param_4 = param_4 + (int)param_5 * 4 + -0x370;" (assignment_expression "param_4 = param_4 + (int)param_5 * 4 + -0x370" (identifier "param_4") (= "=") (binary_expression "param_4 + (int)param_5 * 4 + -0x370" (binary_expression "param_4 + (int)param_5 * 4" (identifier "param_4") (+ "+") (binary_expression "(int)param_5 * 4" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x370"))) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + 0x10) = 0xdc;" (assignment_expression "*(undefined4 *)(puVar14 + 0x10) = 0xdc" (pointer_expression "*(undefined4 *)(puVar14 + 0x10)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x10)" (( "(") (binary_expression "puVar14 + 0x10" (identifier "puVar14") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0xdc")) (; ";")) (expression_statement "puVar5 = param_2;" (assignment_expression "puVar5 = param_2" (identifier "puVar5") (= "=") (identifier "param_2")) (; ";")) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4);" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(param_1,param_2,param_3,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" (* "*") (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mulmid_basecase_000974ac"))) () ")")) (argument_list "(param_1,param_2,param_3,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "puVar2 = param_2;" (assignment_expression "puVar2 = param_2" (identifier "puVar2") (= "=") (identifier "param_2")) (; ";")) (for_statement "for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }" (for "for") (( "(") (; ";") (binary_expression "0xdb < (int)puVar9" (number_literal "0xdb") (< "<") (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9"))) (; ";") (assignment_expression "puVar9 = puVar9 + -0x37" (identifier "puVar9") (= "=") (binary_expression "puVar9 + -0x37" (identifier "puVar9") (+ "+") (number_literal "-0x37"))) () ")") (compound_statement "{\n        puVar2 = puVar2 + 0xdc;\n        param_4 = param_4 + -0x370;\n        *(undefined4 *)(puVar14 + 0x10) = 0xdc;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);\n        puVar5 = param_1;\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n      }" ({ "{") (expression_statement "puVar2 = puVar2 + 0xdc;" (assignment_expression "puVar2 = puVar2 + 0xdc" (identifier "puVar2") (= "=") (binary_expression "puVar2 + 0xdc" (identifier "puVar2") (+ "+") (number_literal "0xdc"))) (; ";")) (expression_statement "param_4 = param_4 + -0x370;" (assignment_expression "param_4 = param_4 + -0x370" (identifier "param_4") (= "=") (binary_expression "param_4 + -0x370" (identifier "param_4") (+ "+") (number_literal "-0x370"))) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + 0x10) = 0xdc;" (assignment_expression "*(undefined4 *)(puVar14 + 0x10) = 0xdc" (pointer_expression "*(undefined4 *)(puVar14 + 0x10)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x10)" (( "(") (binary_expression "puVar14 + 0x10" (identifier "puVar14") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0xdc")) (; ";")) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4);" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)(puVar6,puVar2,param_3,param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" (* "*") (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mulmid_basecase_000974ac"))) () ")")) (argument_list "(puVar6,puVar2,param_3,param_4)" (( "(") (identifier "puVar6") (, ",") (identifier "puVar2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "puVar5 = param_1;" (assignment_expression "puVar5 = param_1" (identifier "puVar5") (= "=") (identifier "param_1")) (; ";")) (expression_statement "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);" (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10)" (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,puVar6,iVar10)" (( "(") (identifier "param_1") (, ",") (identifier "param_1") (, ",") (identifier "puVar6") (, ",") (identifier "iVar10") () ")"))) (; ";")) (} "}"))) (expression_statement "param_2 = puVar5;" (assignment_expression "param_2 = puVar5" (identifier "param_2") (= "=") (identifier "puVar5")) (; ";")) (if_statement "if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }" (if "if") (parenthesized_expression "(puVar9 != (uint *)0x0)" (( "(") (binary_expression "puVar9 != (uint *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        (*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }" ({ "{") (expression_statement "*(uint **)(puVar14 + 0x10) = puVar9;" (assignment_expression "*(uint **)(puVar14 + 0x10) = puVar9" (pointer_expression "*(uint **)(puVar14 + 0x10)" (* "*") (cast_expression "(uint **)(puVar14 + 0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0x10)" (( "(") (binary_expression "puVar14 + 0x10" (identifier "puVar14") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);" (call_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)\n                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4)" (parenthesized_expression "(*(code *)PTR___gmpn_mulmid_basecase_000974ac)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mulmid_basecase_000974ac" (* "*") (cast_expression "(code *)PTR___gmpn_mulmid_basecase_000974ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mulmid_basecase_000974ac"))) () ")")) (argument_list "(puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4)" (( "(") (identifier "puVar6") (, ",") (binary_expression "puVar2 + 0xdc" (identifier "puVar2") (+ "+") (number_literal "0xdc")) (, ",") (binary_expression "(int)puVar9 + unaff_s2" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (identifier "unaff_s2")) (, ",") (binary_expression "param_4 + (int)puVar9 * -4" (identifier "param_4") (+ "+") (binary_expression "(int)puVar9 * -4" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (* "*") (number_literal "-4"))) () ")"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);" (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10)" (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,puVar6,iVar10)" (( "(") (identifier "param_1") (, ",") (identifier "param_1") (, ",") (identifier "puVar6") (, ",") (identifier "iVar10") () ")"))) (; ";")) (expression_statement "param_2 = param_1;" (assignment_expression "param_2 = param_1" (identifier "param_2") (= "=") (identifier "param_1")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }" (else "else") (compound_statement "{\n      if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }\n      iVar10 = unaff_s2 + 3;\n      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;\n      local_30 = (uint *)0x0;\n      if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      puVar9 = (uint *)((int)param_5 - unaff_s1);\n      param_4 = param_4 + (int)puVar9 * 4;\n      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n      puVar5 = param_2;\n      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);\n      puVar2 = param_2;\n      if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }\n      param_2 = puVar5;\n      if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }\n    }" ({ "{") (if_statement "if ((int)param_5 <= (int)unaff_s1) {\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }" (if "if") (parenthesized_expression "((int)param_5 <= (int)unaff_s1)" (( "(") (binary_expression "(int)param_5 <= (int)unaff_s1" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (<= "<=") (cast_expression "(int)unaff_s1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s1"))) () ")")) (compound_statement "{\n        uVar8 = ((int)param_5 * 3 + 0x20) * 4;\n        local_30 = (uint *)0x0;\n        if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }\n        unaff_s1 = unaff_s1 - (int)param_5;\n        *(undefined1 **)(puVar6 + 0x10) = local_34;\n        puVar2 = param_2;\n        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);\n        puVar5 = param_2;\n        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }\nLAB_00043988:\n        puVar2 = local_30;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }\n        if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }\n        goto LAB_0004383c;\n      }" ({ "{") (expression_statement "uVar8 = ((int)param_5 * 3 + 0x20) * 4;" (assignment_expression "uVar8 = ((int)param_5 * 3 + 0x20) * 4" (identifier "uVar8") (= "=") (binary_expression "((int)param_5 * 3 + 0x20) * 4" (parenthesized_expression "((int)param_5 * 3 + 0x20)" (( "(") (binary_expression "(int)param_5 * 3 + 0x20" (binary_expression "(int)param_5 * 3" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (* "*") (number_literal "3")) (+ "+") (number_literal "0x20")) () ")")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" (identifier "local_30") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (uVar8 < 0x7f01) {\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }\n        else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }" (if "if") (parenthesized_expression "(uVar8 < 0x7f01)" (( "(") (binary_expression "uVar8 < 0x7f01" (identifier "uVar8") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n          iVar10 = -(uVar8 + 7 & 0xfffffff8);\n          puVar6 = auStack_60 + iVar10;\n          local_34 = &stack0xffffffb8 + iVar10;\n        }" ({ "{") (expression_statement "iVar10 = -(uVar8 + 7 & 0xfffffff8);" (assignment_expression "iVar10 = -(uVar8 + 7 & 0xfffffff8)" (identifier "iVar10") (= "=") (unary_expression "-(uVar8 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar8 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar8 + 7 & 0xfffffff8" (binary_expression "uVar8 + 7" (identifier "uVar8") (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar6 = auStack_60 + iVar10;" (assignment_expression "puVar6 = auStack_60 + iVar10" (identifier "puVar6") (= "=") (binary_expression "auStack_60 + iVar10" (identifier "auStack_60") (+ "+") (identifier "iVar10"))) (; ";")) (expression_statement "local_34 = &stack0xffffffb8 + iVar10;" (assignment_expression "local_34 = &stack0xffffffb8 + iVar10" (identifier "local_34") (= "=") (binary_expression "&stack0xffffffb8 + iVar10" (pointer_expression "&stack0xffffffb8" (& "&") (identifier "stack0xffffffb8")) (+ "+") (identifier "iVar10"))) (; ";")) (} "}")) (else_clause "else {\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }" (else "else") (compound_statement "{\n          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n        }" ({ "{") (expression_statement "local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);" (assignment_expression "local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (identifier "local_34") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_alloc_000972f0"))) () ")")) (argument_list "(&local_30)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))))) (; ";")) (} "}")))) (expression_statement "unaff_s1 = unaff_s1 - (int)param_5;" (assignment_expression "unaff_s1 = unaff_s1 - (int)param_5" (identifier "unaff_s1") (= "=") (binary_expression "unaff_s1 - (int)param_5" (identifier "unaff_s1") (- "-") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")))) (; ";")) (expression_statement "*(undefined1 **)(puVar6 + 0x10) = local_34;" (assignment_expression "*(undefined1 **)(puVar6 + 0x10) = local_34" (pointer_expression "*(undefined1 **)(puVar6 + 0x10)" (* "*") (cast_expression "(undefined1 **)(puVar6 + 0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar6 + 0x10)" (( "(") (binary_expression "puVar6 + 0x10" (identifier "puVar6") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "puVar2 = param_2;" (assignment_expression "puVar2 = param_2" (identifier "puVar2") (= "=") (identifier "param_2")) (; ";")) (expression_statement "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);" (call_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom42_mulmid_000973f0" (* "*") (cast_expression "(code *)PTR___gmpn_toom42_mulmid_000973f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom42_mulmid_000973f0"))) () ")")) (argument_list "(param_1,param_2,param_4,param_5)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "puVar5 = param_2;" (assignment_expression "puVar5 = param_2" (identifier "puVar5") (= "=") (identifier "param_2")) (; ";")) (for_statement "for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)\n        {\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }" (for "for") (( "(") (; ";") (comma_expression "param_2 = puVar2, (int)param_5 <= (int)unaff_s1" (assignment_expression "param_2 = puVar2" (identifier "param_2") (= "=") (identifier "puVar2")) (, ",") (binary_expression "(int)param_5 <= (int)unaff_s1" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (<= "<=") (cast_expression "(int)unaff_s1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s1")))) (; ";") (assignment_expression "unaff_s1 = unaff_s1 - (int)param_5" (identifier "unaff_s1") (= "=") (binary_expression "unaff_s1 - (int)param_5" (identifier "unaff_s1") (- "-") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")))) () ")") (compound_statement "{\n          while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }\n          puVar2 = param_2;\n        }" ({ "{") (while_statement "while( true ) {\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            param_1 = param_1 + (int)param_5;\n            puVar5 = puVar5 + (int)param_5;\n            *(undefined1 **)(puVar6 + 0x10) = local_34;\n            uVar8 = *param_1;\n            unaff_s2 = param_1[1];\n            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);\n            puVar2 = (uint *)*param_1;\n            param_2 = (uint *)(uVar8 + (int)puVar2);\n            *param_1 = (uint)param_2;\n            uVar8 = (param_2 < puVar2) + unaff_s2;\n            uVar4 = uVar8 + param_1[1];\n            param_1[1] = uVar4;\n            if (uVar8 <= uVar4) break;\n            puVar2 = param_1 + 1;\n            do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n            unaff_s1 = unaff_s1 - (int)param_5;\n            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;\n          }" ({ "{") (expression_statement "param_1 = param_1 + (int)param_5;" (assignment_expression "param_1 = param_1 + (int)param_5" (identifier "param_1") (= "=") (binary_expression "param_1 + (int)param_5" (identifier "param_1") (+ "+") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")))) (; ";")) (expression_statement "puVar5 = puVar5 + (int)param_5;" (assignment_expression "puVar5 = puVar5 + (int)param_5" (identifier "puVar5") (= "=") (binary_expression "puVar5 + (int)param_5" (identifier "puVar5") (+ "+") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")))) (; ";")) (expression_statement "*(undefined1 **)(puVar6 + 0x10) = local_34;" (assignment_expression "*(undefined1 **)(puVar6 + 0x10) = local_34" (pointer_expression "*(undefined1 **)(puVar6 + 0x10)" (* "*") (cast_expression "(undefined1 **)(puVar6 + 0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar6 + 0x10)" (( "(") (binary_expression "puVar6 + 0x10" (identifier "puVar6") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "uVar8 = *param_1;" (assignment_expression "uVar8 = *param_1" (identifier "uVar8") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "unaff_s2 = param_1[1];" (assignment_expression "unaff_s2 = param_1[1]" (identifier "unaff_s2") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);" (call_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom42_mulmid_000973f0" (* "*") (cast_expression "(code *)PTR___gmpn_toom42_mulmid_000973f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom42_mulmid_000973f0"))) () ")")) (argument_list "(param_1,puVar5,param_4,param_5)" (( "(") (identifier "param_1") (, ",") (identifier "puVar5") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "puVar2 = (uint *)*param_1;" (assignment_expression "puVar2 = (uint *)*param_1" (identifier "puVar2") (= "=") (cast_expression "(uint *)*param_1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "param_2 = (uint *)(uVar8 + (int)puVar2);" (assignment_expression "param_2 = (uint *)(uVar8 + (int)puVar2)" (identifier "param_2") (= "=") (cast_expression "(uint *)(uVar8 + (int)puVar2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + (int)puVar2)" (( "(") (binary_expression "uVar8 + (int)puVar2" (identifier "uVar8") (+ "+") (cast_expression "(int)puVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar2"))) () ")")))) (; ";")) (expression_statement "*param_1 = (uint)param_2;" (assignment_expression "*param_1 = (uint)param_2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(uint)param_2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_2"))) (; ";")) (expression_statement "uVar8 = (param_2 < puVar2) + unaff_s2;" (assignment_expression "uVar8 = (param_2 < puVar2) + unaff_s2" (identifier "uVar8") (= "=") (binary_expression "(param_2 < puVar2) + unaff_s2" (parenthesized_expression "(param_2 < puVar2)" (( "(") (binary_expression "param_2 < puVar2" (identifier "param_2") (< "<") (identifier "puVar2")) () ")")) (+ "+") (identifier "unaff_s2"))) (; ";")) (expression_statement "uVar4 = uVar8 + param_1[1];" (assignment_expression "uVar4 = uVar8 + param_1[1]" (identifier "uVar4") (= "=") (binary_expression "uVar8 + param_1[1]" (identifier "uVar8") (+ "+") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "param_1[1] = uVar4;" (assignment_expression "param_1[1] = uVar4" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (if_statement "if (uVar8 <= uVar4) break;" (if "if") (parenthesized_expression "(uVar8 <= uVar4)" (( "(") (binary_expression "uVar8 <= uVar4" (identifier "uVar8") (<= "<=") (identifier "uVar4")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar2 = param_1 + 1;" (assignment_expression "puVar2 = param_1 + 1" (identifier "puVar2") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);" (do "do") (compound_statement "{\n              puVar2 = puVar2 + 1;\n              uVar8 = *puVar2;\n              *puVar2 = uVar8 + 1;\n            }" ({ "{") (expression_statement "puVar2 = puVar2 + 1;" (assignment_expression "puVar2 = puVar2 + 1" (identifier "puVar2") (= "=") (binary_expression "puVar2 + 1" (identifier "puVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar8 = *puVar2;" (assignment_expression "uVar8 = *puVar2" (identifier "uVar8") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "*puVar2 = uVar8 + 1;" (assignment_expression "*puVar2 = uVar8 + 1" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar8 + 1 == 0)" (( "(") (binary_expression "uVar8 + 1 == 0" (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1")) (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "unaff_s1 = unaff_s1 - (int)param_5;" (assignment_expression "unaff_s1 = unaff_s1 - (int)param_5" (identifier "unaff_s1") (= "=") (binary_expression "unaff_s1 - (int)param_5" (identifier "unaff_s1") (- "-") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")))) (; ";")) (if_statement "if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;" (if "if") (parenthesized_expression "((int)unaff_s1 < (int)param_5)" (( "(") (binary_expression "(int)unaff_s1 < (int)param_5" (cast_expression "(int)unaff_s1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s1")) (< "<") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5"))) () ")")) (goto_statement "goto LAB_00043988;" (goto "goto") (statement_identifier "LAB_00043988") (; ";"))) (} "}"))) (expression_statement "puVar2 = param_2;" (assignment_expression "puVar2 = param_2" (identifier "puVar2") (= "=") (identifier "param_2")) (; ";")) (} "}"))) (labeled_statement "LAB_00043988:\n        puVar2 = local_30;" (statement_identifier "LAB_00043988") (: ":") (expression_statement "puVar2 = local_30;" (assignment_expression "puVar2 = local_30" (identifier "puVar2") (= "=") (identifier "local_30")) (; ";"))) (if_statement "if (local_30 != (uint *)0x0) {\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }" (if "if") (parenthesized_expression "(local_30 != (uint *)0x0)" (( "(") (binary_expression "local_30 != (uint *)0x0" (identifier "local_30") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n        }" ({ "{") (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_00097614" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_00097614" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_free_00097614"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (unaff_s1 != 0) {\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }" (if "if") (parenthesized_expression "(unaff_s1 != 0)" (( "(") (binary_expression "unaff_s1 != 0" (identifier "unaff_s1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *(uint **)(puVar6 + 0x10) = param_5;\n          puVar9 = param_1 + (int)param_5;\n          iVar10 = unaff_s1 - 1;\n          param_2 = puVar5 + (int)param_5;\n          unaff_s1 = *puVar9;\n          unaff_s2 = puVar9[1];\n          __gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);\n          puVar5 = (uint *)*puVar9;\n          puVar2 = (uint *)(unaff_s1 + (int)puVar5);\n          *puVar9 = (uint)puVar2;\n          uVar8 = (puVar2 < puVar5) + unaff_s2;\n          uVar4 = uVar8 + puVar9[1];\n          puVar9[1] = uVar4;\n          if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }\n        }" ({ "{") (expression_statement "*(uint **)(puVar6 + 0x10) = param_5;" (assignment_expression "*(uint **)(puVar6 + 0x10) = param_5" (pointer_expression "*(uint **)(puVar6 + 0x10)" (* "*") (cast_expression "(uint **)(puVar6 + 0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar6 + 0x10)" (( "(") (binary_expression "puVar6 + 0x10" (identifier "puVar6") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (expression_statement "puVar9 = param_1 + (int)param_5;" (assignment_expression "puVar9 = param_1 + (int)param_5" (identifier "puVar9") (= "=") (binary_expression "param_1 + (int)param_5" (identifier "param_1") (+ "+") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")))) (; ";")) (expression_statement "iVar10 = unaff_s1 - 1;" (assignment_expression "iVar10 = unaff_s1 - 1" (identifier "iVar10") (= "=") (binary_expression "unaff_s1 - 1" (identifier "unaff_s1") (- "-") (number_literal "1"))) (; ";")) (expression_statement "param_2 = puVar5 + (int)param_5;" (assignment_expression "param_2 = puVar5 + (int)param_5" (identifier "param_2") (= "=") (binary_expression "puVar5 + (int)param_5" (identifier "puVar5") (+ "+") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")))) (; ";")) (expression_statement "unaff_s1 = *puVar9;" (assignment_expression "unaff_s1 = *puVar9" (identifier "unaff_s1") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "unaff_s2 = puVar9[1];" (assignment_expression "unaff_s2 = puVar9[1]" (identifier "unaff_s2") (= "=") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "__gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4);" (call_expression "__gmpn_mulmid(puVar9,param_2,(int)param_5 + iVar10,param_4)" (identifier "__gmpn_mulmid") (argument_list "(puVar9,param_2,(int)param_5 + iVar10,param_4)" (( "(") (identifier "puVar9") (, ",") (identifier "param_2") (, ",") (binary_expression "(int)param_5 + iVar10" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (+ "+") (identifier "iVar10")) (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "puVar5 = (uint *)*puVar9;" (assignment_expression "puVar5 = (uint *)*puVar9" (identifier "puVar5") (= "=") (cast_expression "(uint *)*puVar9" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar9" (* "*") (identifier "puVar9")))) (; ";")) (expression_statement "puVar2 = (uint *)(unaff_s1 + (int)puVar5);" (assignment_expression "puVar2 = (uint *)(unaff_s1 + (int)puVar5)" (identifier "puVar2") (= "=") (cast_expression "(uint *)(unaff_s1 + (int)puVar5)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s1 + (int)puVar5)" (( "(") (binary_expression "unaff_s1 + (int)puVar5" (identifier "unaff_s1") (+ "+") (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5"))) () ")")))) (; ";")) (expression_statement "*puVar9 = (uint)puVar2;" (assignment_expression "*puVar9 = (uint)puVar2" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (cast_expression "(uint)puVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar2"))) (; ";")) (expression_statement "uVar8 = (puVar2 < puVar5) + unaff_s2;" (assignment_expression "uVar8 = (puVar2 < puVar5) + unaff_s2" (identifier "uVar8") (= "=") (binary_expression "(puVar2 < puVar5) + unaff_s2" (parenthesized_expression "(puVar2 < puVar5)" (( "(") (binary_expression "puVar2 < puVar5" (identifier "puVar2") (< "<") (identifier "puVar5")) () ")")) (+ "+") (identifier "unaff_s2"))) (; ";")) (expression_statement "uVar4 = uVar8 + puVar9[1];" (assignment_expression "uVar4 = uVar8 + puVar9[1]" (identifier "uVar4") (= "=") (binary_expression "uVar8 + puVar9[1]" (identifier "uVar8") (+ "+") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar9[1] = uVar4;" (assignment_expression "puVar9[1] = uVar4" (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (if_statement "if (uVar4 < uVar8) {\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }" (if "if") (parenthesized_expression "(uVar4 < uVar8)" (( "(") (binary_expression "uVar4 < uVar8" (identifier "uVar4") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n            puVar5 = puVar9 + 1;\n            do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);\n          }" ({ "{") (expression_statement "puVar5 = puVar9 + 1;" (assignment_expression "puVar5 = puVar9 + 1" (identifier "puVar5") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            } while (uVar8 + 1 == 0);" (do "do") (compound_statement "{\n              puVar5 = puVar5 + 1;\n              uVar8 = *puVar5;\n              *puVar5 = uVar8 + 1;\n            }" ({ "{") (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" (identifier "puVar5") (= "=") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar8 = *puVar5;" (assignment_expression "uVar8 = *puVar5" (identifier "uVar8") (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "*puVar5 = uVar8 + 1;" (assignment_expression "*puVar5 = uVar8 + 1" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar8 + 1 == 0)" (( "(") (binary_expression "uVar8 + 1 == 0" (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1")) (== "==") (number_literal "0")) () ")")) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_0004383c;" (goto "goto") (statement_identifier "LAB_0004383c") (; ";")) (} "}"))) (expression_statement "iVar10 = unaff_s2 + 3;" (assignment_expression "iVar10 = unaff_s2 + 3" (identifier "iVar10") (= "=") (binary_expression "unaff_s2 + 3" (identifier "unaff_s2") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;" (assignment_expression "uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4" (identifier "uVar8") (= "=") (binary_expression "(unaff_s1 * 3 + 0x20 + iVar10) * 4" (parenthesized_expression "(unaff_s1 * 3 + 0x20 + iVar10)" (( "(") (binary_expression "unaff_s1 * 3 + 0x20 + iVar10" (binary_expression "unaff_s1 * 3 + 0x20" (binary_expression "unaff_s1 * 3" (identifier "unaff_s1") (* "*") (number_literal "3")) (+ "+") (number_literal "0x20")) (+ "+") (identifier "iVar10")) () ")")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" (identifier "local_30") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (uVar8 < 0x7f01) {\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }\n      else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }" (if "if") (parenthesized_expression "(uVar8 < 0x7f01)" (( "(") (binary_expression "uVar8 < 0x7f01" (identifier "uVar8") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n        iVar1 = -(uVar8 + 7 & 0xfffffff8);\n        puVar14 = auStack_60 + iVar1;\n        puVar6 = &stack0xffffffb8 + iVar1;\n      }" ({ "{") (expression_statement "iVar1 = -(uVar8 + 7 & 0xfffffff8);" (assignment_expression "iVar1 = -(uVar8 + 7 & 0xfffffff8)" (identifier "iVar1") (= "=") (unary_expression "-(uVar8 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar8 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar8 + 7 & 0xfffffff8" (binary_expression "uVar8 + 7" (identifier "uVar8") (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar14 = auStack_60 + iVar1;" (assignment_expression "puVar14 = auStack_60 + iVar1" (identifier "puVar14") (= "=") (binary_expression "auStack_60 + iVar1" (identifier "auStack_60") (+ "+") (identifier "iVar1"))) (; ";")) (expression_statement "puVar6 = &stack0xffffffb8 + iVar1;" (assignment_expression "puVar6 = &stack0xffffffb8 + iVar1" (identifier "puVar6") (= "=") (binary_expression "&stack0xffffffb8 + iVar1" (pointer_expression "&stack0xffffffb8" (& "&") (identifier "stack0xffffffb8")) (+ "+") (identifier "iVar1"))) (; ";")) (} "}")) (else_clause "else {\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }" (else "else") (compound_statement "{\n        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }" ({ "{") (expression_statement "puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);" (assignment_expression "puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (identifier "puVar6") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_alloc_000972f0"))) () ")")) (argument_list "(&local_30)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))))) (; ";")) (} "}")))) (expression_statement "puVar9 = (uint *)((int)param_5 - unaff_s1);" (assignment_expression "puVar9 = (uint *)((int)param_5 - unaff_s1)" (identifier "puVar9") (= "=") (cast_expression "(uint *)((int)param_5 - unaff_s1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_5 - unaff_s1)" (( "(") (binary_expression "(int)param_5 - unaff_s1" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (- "-") (identifier "unaff_s1")) () ")")))) (; ";")) (expression_statement "param_4 = param_4 + (int)puVar9 * 4;" (assignment_expression "param_4 = param_4 + (int)puVar9 * 4" (identifier "param_4") (= "=") (binary_expression "param_4 + (int)puVar9 * 4" (identifier "param_4") (+ "+") (binary_expression "(int)puVar9 * 4" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (* "*") (number_literal "4")))) (; ";")) (expression_statement "*(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;" (assignment_expression "*(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4" (pointer_expression "*(undefined1 **)(puVar14 + 0x10)" (* "*") (cast_expression "(undefined1 **)(puVar14 + 0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0x10)" (( "(") (binary_expression "puVar14 + 0x10" (identifier "puVar14") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "puVar6 + iVar10 * 4" (identifier "puVar6") (+ "+") (binary_expression "iVar10 * 4" (identifier "iVar10") (* "*") (number_literal "4")))) (; ";")) (expression_statement "puVar5 = param_2;" (assignment_expression "puVar5 = param_2" (identifier "puVar5") (= "=") (identifier "param_2")) (; ";")) (expression_statement "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);" (call_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1)" (parenthesized_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom42_mulmid_000973f0" (* "*") (cast_expression "(code *)PTR___gmpn_toom42_mulmid_000973f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom42_mulmid_000973f0"))) () ")")) (argument_list "(param_1,param_2,param_4,unaff_s1)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_4") (, ",") (identifier "unaff_s1") () ")"))) (; ";")) (expression_statement "puVar2 = param_2;" (assignment_expression "puVar2 = param_2" (identifier "puVar2") (= "=") (identifier "param_2")) (; ";")) (if_statement "if ((int)unaff_s1 <= (int)puVar9) {\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }" (if "if") (parenthesized_expression "((int)unaff_s1 <= (int)puVar9)" (( "(") (binary_expression "(int)unaff_s1 <= (int)puVar9" (cast_expression "(int)unaff_s1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s1")) (<= "<=") (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9"))) () ")")) (compound_statement "{\n        do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);\n      }" ({ "{") (do_statement "do {\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        } while ((int)unaff_s1 <= (int)puVar9);" (do "do") (compound_statement "{\n          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;\n          puVar9 = (uint *)((int)puVar9 - unaff_s1);\n          puVar2 = puVar2 + unaff_s1;\n          param_4 = param_4 + unaff_s1 * -4;\n          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);\n          puVar5 = param_1;\n          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        }" ({ "{") (expression_statement "*(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;" (assignment_expression "*(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4" (pointer_expression "*(undefined1 **)(puVar14 + 0x10)" (* "*") (cast_expression "(undefined1 **)(puVar14 + 0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0x10)" (( "(") (binary_expression "puVar14 + 0x10" (identifier "puVar14") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "puVar6 + iVar10 * 4" (identifier "puVar6") (+ "+") (binary_expression "iVar10 * 4" (identifier "iVar10") (* "*") (number_literal "4")))) (; ";")) (expression_statement "puVar9 = (uint *)((int)puVar9 - unaff_s1);" (assignment_expression "puVar9 = (uint *)((int)puVar9 - unaff_s1)" (identifier "puVar9") (= "=") (cast_expression "(uint *)((int)puVar9 - unaff_s1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 - unaff_s1)" (( "(") (binary_expression "(int)puVar9 - unaff_s1" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (- "-") (identifier "unaff_s1")) () ")")))) (; ";")) (expression_statement "puVar2 = puVar2 + unaff_s1;" (assignment_expression "puVar2 = puVar2 + unaff_s1" (identifier "puVar2") (= "=") (binary_expression "puVar2 + unaff_s1" (identifier "puVar2") (+ "+") (identifier "unaff_s1"))) (; ";")) (expression_statement "param_4 = param_4 + unaff_s1 * -4;" (assignment_expression "param_4 = param_4 + unaff_s1 * -4" (identifier "param_4") (= "=") (binary_expression "param_4 + unaff_s1 * -4" (identifier "param_4") (+ "+") (binary_expression "unaff_s1 * -4" (identifier "unaff_s1") (* "*") (number_literal "-4")))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);" (call_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1)" (parenthesized_expression "(*(code *)PTR___gmpn_toom42_mulmid_000973f0)" (( "(") (pointer_expression "*(code *)PTR___gmpn_toom42_mulmid_000973f0" (* "*") (cast_expression "(code *)PTR___gmpn_toom42_mulmid_000973f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_toom42_mulmid_000973f0"))) () ")")) (argument_list "(puVar6,puVar2,param_4,unaff_s1)" (( "(") (identifier "puVar6") (, ",") (identifier "puVar2") (, ",") (identifier "param_4") (, ",") (identifier "unaff_s1") () ")"))) (; ";")) (expression_statement "puVar5 = param_1;" (assignment_expression "puVar5 = param_1" (identifier "puVar5") (= "=") (identifier "param_1")) (; ";")) (expression_statement "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);" (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10)" (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,puVar6,iVar10)" (( "(") (identifier "param_1") (, ",") (identifier "param_1") (, ",") (identifier "puVar6") (, ",") (identifier "iVar10") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)unaff_s1 <= (int)puVar9)" (( "(") (binary_expression "(int)unaff_s1 <= (int)puVar9" (cast_expression "(int)unaff_s1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s1")) (<= "<=") (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9"))) () ")")) (; ";")) (} "}"))) (expression_statement "param_2 = puVar5;" (assignment_expression "param_2 = puVar5" (identifier "param_2") (= "=") (identifier "puVar5")) (; ";")) (if_statement "if (puVar9 != (uint *)0x0) {\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }" (if "if") (parenthesized_expression "(puVar9 != (uint *)0x0)" (( "(") (binary_expression "puVar9 != (uint *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *(uint **)(puVar14 + 0x10) = puVar9;\n        __gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);\n        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);\n        param_2 = param_1;\n      }" ({ "{") (expression_statement "*(uint **)(puVar14 + 0x10) = puVar9;" (assignment_expression "*(uint **)(puVar14 + 0x10) = puVar9" (pointer_expression "*(uint **)(puVar14 + 0x10)" (* "*") (cast_expression "(uint **)(puVar14 + 0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0x10)" (( "(") (binary_expression "puVar14 + 0x10" (identifier "puVar14") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "__gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);" (call_expression "__gmpn_mulmid(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4)" (identifier "__gmpn_mulmid") (argument_list "(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4)" (( "(") (identifier "puVar6") (, ",") (binary_expression "puVar2 + unaff_s1" (identifier "puVar2") (+ "+") (identifier "unaff_s1")) (, ",") (binary_expression "(int)puVar9 + unaff_s2" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (identifier "unaff_s2")) (, ",") (binary_expression "param_4 + (int)puVar9 * -4" (identifier "param_4") (+ "+") (binary_expression "(int)puVar9 * -4" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (* "*") (number_literal "-4"))) () ")"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);" (call_expression "(*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10)" (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,puVar6,iVar10)" (( "(") (identifier "param_1") (, ",") (identifier "param_1") (, ",") (identifier "puVar6") (, ",") (identifier "iVar10") () ")"))) (; ";")) (expression_statement "param_2 = param_1;" (assignment_expression "param_2 = param_1" (identifier "param_2") (= "=") (identifier "param_1")) (; ";")) (} "}"))) (} "}")))) (expression_statement "unaff_s2 = unaff_s2 + 3;" (assignment_expression "unaff_s2 = unaff_s2 + 3" (identifier "unaff_s2") (= "=") (binary_expression "unaff_s2 + 3" (identifier "unaff_s2") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "puVar2 = local_30;" (assignment_expression "puVar2 = local_30" (identifier "puVar2") (= "=") (identifier "local_30")) (; ";")) (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" (identifier "puVar6") (= "=") (identifier "puVar14")) (; ";")) (if_statement "if (local_30 != (uint *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }" (if "if") (parenthesized_expression "(local_30 != (uint *)0x0)" (( "(") (binary_expression "local_30 != (uint *)0x0" (identifier "local_30") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    }" ({ "{") (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_00097614" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_00097614" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_free_00097614"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0004383c:\n  if (local_2c == *(int *)puVar11) {\n    return;\n  }" (statement_identifier "LAB_0004383c") (: ":") (if_statement "if (local_2c == *(int *)puVar11) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar11)" (( "(") (binary_expression "local_2c == *(int *)puVar11" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar11" (* "*") (cast_expression "(int *)puVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11")))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "uVar15 = 0x43cd4;" (assignment_expression "uVar15 = 0x43cd4" (identifier "uVar15") (= "=") (number_literal "0x43cd4")) (; ";")) (expression_statement "puVar11 = PTR___stack_chk_fail_000974d0;" (assignment_expression "puVar11 = PTR___stack_chk_fail_000974d0" (identifier "puVar11") (= "=") (identifier "PTR___stack_chk_fail_000974d0")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000974d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000974d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000974d0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000974d0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000974d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000974d0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar13 = puVar11 + 0x5b360;" (assignment_expression "puVar13 = puVar11 + 0x5b360" (identifier "puVar13") (= "=") (binary_expression "puVar11 + 0x5b360" (identifier "puVar11") (+ "+") (number_literal "0x5b360"))) (; ";")) (if_statement "if (param_2 != (uint *)0x0) {\n    pcVar7 = *(char **)(puVar11 + 0x534a8);\n    *(uint *)(puVar6 + -8) = unaff_s2;\n    *(uint **)(puVar6 + -0x10) = puVar9;\n    *(undefined **)(puVar6 + -0x18) = puVar13;\n    *(undefined4 *)(puVar6 + -4) = uVar15;\n    *(uint *)(puVar6 + -0xc) = unaff_s1;\n    if (*pcVar7 == '\0') {\n      pcVar12 = *(code **)(puVar11 + 0x53920);\n      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);\n      *pcVar7 = '\x01';\n      (*pcVar12)(uVar15);\n      puVar13 = *(undefined **)(puVar6 + -0x18);\n    }\n    iVar10 = *(int *)(puVar13 + -0x7dc4);\n    (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5);\n    puVar2 = puVar2 + (int)param_2 + -1;\n    uVar8 = *puVar2;\n    while (uVar8 == 0) {\n      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);\n      uVar8 = *puVar2;\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(param_2 != (uint *)0x0)" (( "(") (binary_expression "param_2 != (uint *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar7 = *(char **)(puVar11 + 0x534a8);\n    *(uint *)(puVar6 + -8) = unaff_s2;\n    *(uint **)(puVar6 + -0x10) = puVar9;\n    *(undefined **)(puVar6 + -0x18) = puVar13;\n    *(undefined4 *)(puVar6 + -4) = uVar15;\n    *(uint *)(puVar6 + -0xc) = unaff_s1;\n    if (*pcVar7 == '\0') {\n      pcVar12 = *(code **)(puVar11 + 0x53920);\n      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);\n      *pcVar7 = '\x01';\n      (*pcVar12)(uVar15);\n      puVar13 = *(undefined **)(puVar6 + -0x18);\n    }\n    iVar10 = *(int *)(puVar13 + -0x7dc4);\n    (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5);\n    puVar2 = puVar2 + (int)param_2 + -1;\n    uVar8 = *puVar2;\n    while (uVar8 == 0) {\n      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);\n      uVar8 = *puVar2;\n    }\n    return;\n  }" ({ "{") (expression_statement "pcVar7 = *(char **)(puVar11 + 0x534a8);" (assignment_expression "pcVar7 = *(char **)(puVar11 + 0x534a8)" (identifier "pcVar7") (= "=") (pointer_expression "*(char **)(puVar11 + 0x534a8)" (* "*") (cast_expression "(char **)(puVar11 + 0x534a8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x534a8)" (( "(") (binary_expression "puVar11 + 0x534a8" (identifier "puVar11") (+ "+") (number_literal "0x534a8")) () ")"))))) (; ";")) (expression_statement "*(uint *)(puVar6 + -8) = unaff_s2;" (assignment_expression "*(uint *)(puVar6 + -8) = unaff_s2" (pointer_expression "*(uint *)(puVar6 + -8)" (* "*") (cast_expression "(uint *)(puVar6 + -8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + -8)" (( "(") (binary_expression "puVar6 + -8" (identifier "puVar6") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "*(uint **)(puVar6 + -0x10) = puVar9;" (assignment_expression "*(uint **)(puVar6 + -0x10) = puVar9" (pointer_expression "*(uint **)(puVar6 + -0x10)" (* "*") (cast_expression "(uint **)(puVar6 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar6 + -0x10)" (( "(") (binary_expression "puVar6 + -0x10" (identifier "puVar6") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "*(undefined **)(puVar6 + -0x18) = puVar13;" (assignment_expression "*(undefined **)(puVar6 + -0x18) = puVar13" (pointer_expression "*(undefined **)(puVar6 + -0x18)" (* "*") (cast_expression "(undefined **)(puVar6 + -0x18)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar6 + -0x18)" (( "(") (binary_expression "puVar6 + -0x18" (identifier "puVar6") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "puVar13")) (; ";")) (expression_statement "*(undefined4 *)(puVar6 + -4) = uVar15;" (assignment_expression "*(undefined4 *)(puVar6 + -4) = uVar15" (pointer_expression "*(undefined4 *)(puVar6 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar6 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + -4)" (( "(") (binary_expression "puVar6 + -4" (identifier "puVar6") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "*(uint *)(puVar6 + -0xc) = unaff_s1;" (assignment_expression "*(uint *)(puVar6 + -0xc) = unaff_s1" (pointer_expression "*(uint *)(puVar6 + -0xc)" (* "*") (cast_expression "(uint *)(puVar6 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + -0xc)" (( "(") (binary_expression "puVar6 + -0xc" (identifier "puVar6") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "unaff_s1")) (; ";")) (if_statement "if (*pcVar7 == '\0') {\n      pcVar12 = *(code **)(puVar11 + 0x53920);\n      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);\n      *pcVar7 = '\x01';\n      (*pcVar12)(uVar15);\n      puVar13 = *(undefined **)(puVar6 + -0x18);\n    }" (if "if") (parenthesized_expression "(*pcVar7 == '\0')" (( "(") (binary_expression "*pcVar7 == '\0'" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      pcVar12 = *(code **)(puVar11 + 0x53920);\n      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);\n      *pcVar7 = '\x01';\n      (*pcVar12)(uVar15);\n      puVar13 = *(undefined **)(puVar6 + -0x18);\n    }" ({ "{") (expression_statement "pcVar12 = *(code **)(puVar11 + 0x53920);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x53920)" (identifier "pcVar12") (= "=") (pointer_expression "*(code **)(puVar11 + 0x53920)" (* "*") (cast_expression "(code **)(puVar11 + 0x53920)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x53920)" (( "(") (binary_expression "puVar11 + 0x53920" (identifier "puVar11") (+ "+") (number_literal "0x53920")) () ")"))))) (; ";")) (expression_statement "uVar15 = *(undefined4 *)(puVar11 + 0x5359c);" (assignment_expression "uVar15 = *(undefined4 *)(puVar11 + 0x5359c)" (identifier "uVar15") (= "=") (pointer_expression "*(undefined4 *)(puVar11 + 0x5359c)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x5359c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x5359c)" (( "(") (binary_expression "puVar11 + 0x5359c" (identifier "puVar11") (+ "+") (number_literal "0x5359c")) () ")"))))) (; ";")) (expression_statement "*pcVar7 = '\x01';" (assignment_expression "*pcVar7 = '\x01'" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "(*pcVar12)(uVar15);" (call_expression "(*pcVar12)(uVar15)" (parenthesized_expression "(*pcVar12)" (( "(") (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) () ")")) (argument_list "(uVar15)" (( "(") (identifier "uVar15") () ")"))) (; ";")) (expression_statement "puVar13 = *(undefined **)(puVar6 + -0x18);" (assignment_expression "puVar13 = *(undefined **)(puVar6 + -0x18)" (identifier "puVar13") (= "=") (pointer_expression "*(undefined **)(puVar6 + -0x18)" (* "*") (cast_expression "(undefined **)(puVar6 + -0x18)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar6 + -0x18)" (( "(") (binary_expression "puVar6 + -0x18" (identifier "puVar6") (+ "+") (number_literal "-0x18")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar10 = *(int *)(puVar13 + -0x7dc4);" (assignment_expression "iVar10 = *(int *)(puVar13 + -0x7dc4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(puVar13 + -0x7dc4)" (* "*") (cast_expression "(int *)(puVar13 + -0x7dc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x7dc4)" (( "(") (binary_expression "puVar13 + -0x7dc4" (identifier "puVar13") (+ "+") (number_literal "-0x7dc4")) () ")"))))) (; ";")) (expression_statement "(**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5);" (call_expression "(**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5)" (parenthesized_expression "(**(code **)(*(int *)(iVar10 + 0x10) + 4))" (( "(") (pointer_expression "**(code **)(*(int *)(iVar10 + 0x10) + 4)" (* "*") (pointer_expression "*(code **)(*(int *)(iVar10 + 0x10) + 4)" (* "*") (cast_expression "(code **)(*(int *)(iVar10 + 0x10) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(iVar10 + 0x10) + 4)" (( "(") (binary_expression "*(int *)(iVar10 + 0x10) + 4" (pointer_expression "*(int *)(iVar10 + 0x10)" (* "*") (cast_expression "(int *)(iVar10 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "(iVar10,puVar2,(int)param_2 << 5)" (( "(") (identifier "iVar10") (, ",") (identifier "puVar2") (, ",") (binary_expression "(int)param_2 << 5" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (<< "<<") (number_literal "5")) () ")"))) (; ";")) (expression_statement "puVar2 = puVar2 + (int)param_2 + -1;" (assignment_expression "puVar2 = puVar2 + (int)param_2 + -1" (identifier "puVar2") (= "=") (binary_expression "puVar2 + (int)param_2 + -1" (binary_expression "puVar2 + (int)param_2" (identifier "puVar2") (+ "+") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar8 = *puVar2;" (assignment_expression "uVar8 = *puVar2" (identifier "uVar8") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (while_statement "while (uVar8 == 0) {\n      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);\n      uVar8 = *puVar2;\n    }" (while "while") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);\n      uVar8 = *puVar2;\n    }" ({ "{") (expression_statement "(**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);" (call_expression "(**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20)" (parenthesized_expression "(**(code **)(*(int *)(iVar10 + 0x10) + 4))" (( "(") (pointer_expression "**(code **)(*(int *)(iVar10 + 0x10) + 4)" (* "*") (pointer_expression "*(code **)(*(int *)(iVar10 + 0x10) + 4)" (* "*") (cast_expression "(code **)(*(int *)(iVar10 + 0x10) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(iVar10 + 0x10) + 4)" (( "(") (binary_expression "*(int *)(iVar10 + 0x10) + 4" (pointer_expression "*(int *)(iVar10 + 0x10)" (* "*") (cast_expression "(int *)(iVar10 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "(iVar10,puVar2,0x20)" (( "(") (identifier "iVar10") (, ",") (identifier "puVar2") (, ",") (number_literal "0x20") () ")"))) (; ";")) (expression_statement "uVar8 = *puVar2;" (assignment_expression "uVar8 = *puVar2" (identifier "uVar8") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (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) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (for_statement initializer: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))) condition: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (number_literal) right: (identifier))) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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) (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (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: (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (pointer_expression argument: (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: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (for_statement condition: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (pointer_expression argument: (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (for_statement condition: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))))) (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: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)) right: (identifier))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (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))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (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: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) (return_statement))) (return_statement))))

void MASKED(uint *param_1,uint *param_2,int param_3,int param_4,uint *param_5)

{
  int iVar1;
  uint *puVar2;
  uint *puVar3;
  uint uVar4;
  uint *puVar5;
  undefined1 *puVar6;
  char *pcVar7;
  uint uVar8;
  uint *puVar9;
  uint unaff_s1;
  int iVar10;
  uint unaff_s2;
  undefined *puVar11;
  code *pcVar12;
  undefined *puVar13;
  undefined1 *puVar14;
  undefined4 uVar15;
  undefined1 auStack_60 [16];
  uint *local_50;
  undefined1 *local_34;
  uint *local_30;
  int local_2c;
  
  puVar11 = PTR___stack_chk_guard_00097540;
  puVar14 = auStack_60;
  puVar6 = auStack_60;
  local_2c = *(int *)PTR___stack_chk_guard_00097540;
  puVar9 = param_5;
  if ((int)param_5 < 0x14) {
    if (0xdb < param_3) {
      local_50 = param_5;
      uVar8 = 0xdd - (int)param_5;
      puVar2 = param_1;
      puVar3 = param_2;
      (*(code *)PTR_MASKED_basecase_000974ac)(param_1,param_2,0xdc);
      unaff_s1 = uVar8;
      puVar5 = param_2;
      for (param_3 = param_3 - uVar8; param_2 = puVar3, 0xdb < param_3; param_3 = param_3 - uVar8) {
        while( true ) {
          param_1 = param_1 + uVar8;
          puVar5 = puVar5 + uVar8;
          local_50 = param_5;
          unaff_s2 = *param_1;
          unaff_s1 = param_1[1];
          (*(code *)PTR_MASKED_basecase_000974ac)(param_1,puVar5,0xdc,param_4);
          puVar2 = (uint *)*param_1;
          param_2 = (uint *)(unaff_s2 + (int)puVar2);
          *param_1 = (uint)param_2;
          puVar3 = (uint *)((param_2 < puVar2) + unaff_s1);
          puVar2 = (uint *)((int)puVar3 + param_1[1]);
          param_1[1] = (uint)puVar2;
          if (puVar3 <= puVar2) break;
          puVar2 = param_1 + 1;
          do {
            puVar2 = puVar2 + 1;
            uVar4 = *puVar2;
            *puVar2 = uVar4 + 1;
          } while (uVar4 + 1 == 0);
          param_3 = param_3 - uVar8;
          if (param_3 < 0xdc) goto LAB_00043788;
        }
        puVar3 = param_2;
      }
LAB_00043788:
      puVar6 = auStack_60;
      if ((int)param_5 <= param_3) {
        local_50 = param_5;
        param_1 = param_1 + uVar8;
        param_2 = puVar5 + uVar8;
        unaff_s1 = *param_1;
        unaff_s2 = param_1[1];
        (*(code *)PTR_MASKED_basecase_000974ac)(param_1,param_2,param_3,param_4);
        puVar5 = (uint *)*param_1;
        puVar2 = (uint *)(unaff_s1 + (int)puVar5);
        *param_1 = (uint)puVar2;
        uVar8 = (puVar2 < puVar5) + unaff_s2;
        uVar4 = uVar8 + param_1[1];
        param_1[1] = uVar4;
        puVar6 = auStack_60;
        if (uVar4 < uVar8) {
          param_1 = param_1 + 1;
          do {
            param_1 = param_1 + 1;
            uVar8 = *param_1;
            *param_1 = uVar8 + 1;
            puVar6 = auStack_60;
          } while (uVar8 + 1 == 0);
        }
      }
      goto LAB_0004383c;
    }
LAB_0004382c:
    local_50 = param_5;
    (*(code *)PTR_MASKED_basecase_000974ac)();
    puVar2 = param_1;
    puVar6 = auStack_60;
  }
  else {
    unaff_s2 = param_3 - (int)param_5;
    unaff_s1 = unaff_s2 + 1;
    if ((int)unaff_s1 < 0x14) {
      if ((int)param_5 < 0xdc) goto LAB_0004382c;
      iVar10 = unaff_s2 + 3;
      local_30 = (uint *)0x0;
      if ((uint)(iVar10 * 4) < 0x7f01) {
        iVar1 = -(iVar10 * 4 + 7U & 0xfffffff8);
        puVar6 = &stack0xffffffb8 + iVar1;
        puVar14 = auStack_60 + iVar1;
      }
      else {
        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);
        puVar14 = auStack_60;
      }
      puVar9 = param_5 + -0x37;
      param_3 = param_3 - (int)puVar9;
      param_4 = param_4 + (int)param_5 * 4 + -0x370;
      *(undefined4 *)(puVar14 + 0x10) = 0xdc;
      puVar5 = param_2;
      (*(code *)PTR_MASKED_basecase_000974ac)(param_1,param_2,param_3,param_4);
      puVar2 = param_2;
      for (; 0xdb < (int)puVar9; puVar9 = puVar9 + -0x37) {
        puVar2 = puVar2 + 0xdc;
        param_4 = param_4 + -0x370;
        *(undefined4 *)(puVar14 + 0x10) = 0xdc;
        (*(code *)PTR_MASKED_basecase_000974ac)(puVar6,puVar2,param_3,param_4);
        puVar5 = param_1;
        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);
      }
      param_2 = puVar5;
      if (puVar9 != (uint *)0x0) {
        *(uint **)(puVar14 + 0x10) = puVar9;
        (*(code *)PTR_MASKED_basecase_000974ac)
                  (puVar6,puVar2 + 0xdc,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);
        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);
        param_2 = param_1;
      }
    }
    else {
      if ((int)param_5 <= (int)unaff_s1) {
        uVar8 = ((int)param_5 * 3 + 0x20) * 4;
        local_30 = (uint *)0x0;
        if (uVar8 < 0x7f01) {
          iVar10 = -(uVar8 + 7 & 0xfffffff8);
          puVar6 = auStack_60 + iVar10;
          local_34 = &stack0xffffffb8 + iVar10;
        }
        else {
          local_34 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);
        }
        unaff_s1 = unaff_s1 - (int)param_5;
        *(undefined1 **)(puVar6 + 0x10) = local_34;
        puVar2 = param_2;
        (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,param_5);
        puVar5 = param_2;
        for (; param_2 = puVar2, (int)param_5 <= (int)unaff_s1; unaff_s1 = unaff_s1 - (int)param_5)
        {
          while( true ) {
            param_1 = param_1 + (int)param_5;
            puVar5 = puVar5 + (int)param_5;
            *(undefined1 **)(puVar6 + 0x10) = local_34;
            uVar8 = *param_1;
            unaff_s2 = param_1[1];
            (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,puVar5,param_4,param_5);
            puVar2 = (uint *)*param_1;
            param_2 = (uint *)(uVar8 + (int)puVar2);
            *param_1 = (uint)param_2;
            uVar8 = (param_2 < puVar2) + unaff_s2;
            uVar4 = uVar8 + param_1[1];
            param_1[1] = uVar4;
            if (uVar8 <= uVar4) break;
            puVar2 = param_1 + 1;
            do {
              puVar2 = puVar2 + 1;
              uVar8 = *puVar2;
              *puVar2 = uVar8 + 1;
            } while (uVar8 + 1 == 0);
            unaff_s1 = unaff_s1 - (int)param_5;
            if ((int)unaff_s1 < (int)param_5) goto LAB_00043988;
          }
          puVar2 = param_2;
        }
LAB_00043988:
        puVar2 = local_30;
        if (local_30 != (uint *)0x0) {
          (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();
        }
        if (unaff_s1 != 0) {
          *(uint **)(puVar6 + 0x10) = param_5;
          puVar9 = param_1 + (int)param_5;
          iVar10 = unaff_s1 - 1;
          param_2 = puVar5 + (int)param_5;
          unaff_s1 = *puVar9;
          unaff_s2 = puVar9[1];
          MASKED(puVar9,param_2,(int)param_5 + iVar10,param_4);
          puVar5 = (uint *)*puVar9;
          puVar2 = (uint *)(unaff_s1 + (int)puVar5);
          *puVar9 = (uint)puVar2;
          uVar8 = (puVar2 < puVar5) + unaff_s2;
          uVar4 = uVar8 + puVar9[1];
          puVar9[1] = uVar4;
          if (uVar4 < uVar8) {
            puVar5 = puVar9 + 1;
            do {
              puVar5 = puVar5 + 1;
              uVar8 = *puVar5;
              *puVar5 = uVar8 + 1;
            } while (uVar8 + 1 == 0);
          }
        }
        goto LAB_0004383c;
      }
      iVar10 = unaff_s2 + 3;
      uVar8 = (unaff_s1 * 3 + 0x20 + iVar10) * 4;
      local_30 = (uint *)0x0;
      if (uVar8 < 0x7f01) {
        iVar1 = -(uVar8 + 7 & 0xfffffff8);
        puVar14 = auStack_60 + iVar1;
        puVar6 = &stack0xffffffb8 + iVar1;
      }
      else {
        puVar6 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);
      }
      puVar9 = (uint *)((int)param_5 - unaff_s1);
      param_4 = param_4 + (int)puVar9 * 4;
      *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;
      puVar5 = param_2;
      (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(param_1,param_2,param_4,unaff_s1);
      puVar2 = param_2;
      if ((int)unaff_s1 <= (int)puVar9) {
        do {
          *(undefined1 **)(puVar14 + 0x10) = puVar6 + iVar10 * 4;
          puVar9 = (uint *)((int)puVar9 - unaff_s1);
          puVar2 = puVar2 + unaff_s1;
          param_4 = param_4 + unaff_s1 * -4;
          (*(code *)PTR___gmpn_toom42_mulmid_000973f0)(puVar6,puVar2,param_4,unaff_s1);
          puVar5 = param_1;
          (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);
        } while ((int)unaff_s1 <= (int)puVar9);
      }
      param_2 = puVar5;
      if (puVar9 != (uint *)0x0) {
        *(uint **)(puVar14 + 0x10) = puVar9;
        MASKED(puVar6,puVar2 + unaff_s1,(int)puVar9 + unaff_s2,param_4 + (int)puVar9 * -4);
        (*(code *)PTR___gmpn_add_n_00097334)(param_1,param_1,puVar6,iVar10);
        param_2 = param_1;
      }
    }
    unaff_s2 = unaff_s2 + 3;
    puVar2 = local_30;
    puVar6 = puVar14;
    if (local_30 != (uint *)0x0) {
      (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();
    }
  }
LAB_0004383c:
  if (local_2c == *(int *)puVar11) {
    return;
  }
  uVar15 = 0x43cd4;
  puVar11 = PTR___stack_chk_fail_000974d0;
  (*(code *)PTR___stack_chk_fail_000974d0)();
  puVar13 = puVar11 + 0x5b360;
  if (param_2 != (uint *)0x0) {
    pcVar7 = *(char **)(puVar11 + 0x534a8);
    *(uint *)(puVar6 + -8) = unaff_s2;
    *(uint **)(puVar6 + -0x10) = puVar9;
    *(undefined **)(puVar6 + -0x18) = puVar13;
    *(undefined4 *)(puVar6 + -4) = uVar15;
    *(uint *)(puVar6 + -0xc) = unaff_s1;
    if (*pcVar7 == '\0') {
      pcVar12 = *(code **)(puVar11 + 0x53920);
      uVar15 = *(undefined4 *)(puVar11 + 0x5359c);
      *pcVar7 = '\x01';
      (*pcVar12)(uVar15);
      puVar13 = *(undefined **)(puVar6 + -0x18);
    }
    iVar10 = *(int *)(puVar13 + -0x7dc4);
    (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,(int)param_2 << 5);
    puVar2 = puVar2 + (int)param_2 + -1;
    uVar8 = *puVar2;
    while (uVar8 == 0) {
      (**(code **)(*(int *)(iVar10 + 0x10) + 4))(iVar10,puVar2,0x20);
      uVar8 = *puVar2;
    }
    return;
  }
  return;
}

